Mudar Cor do TButton depois que for clicado

Acho interessante compartilhar, a nova necessidade para esse Botão que altera de Cor. Basicamente esse Botão abre uma telinha de Filtros onde mostra opções com TRadMenu, quando o usuário confirmar essa telinha selecionando um dos filtros, o Botão deve mudar de cor indicando que o filtro está ativo .


//Cria o Botão
User Function BtnGrid(oPanel)
Private oBtnFil := Nil

    oBtnFil   := TButton():Create(oPanel, 012,  002,"Filtros Inteligentes",{||U_FiltInt()}, 65,21,,oFontBtn,,.T.,,"Filtrar por situações",,,,,)

Return Nil
//Função que Cria a Telinha de Filtros
User Function FiltInt()
    Local aItems      := {}
    Local cCSS       := "QPushButton { background-color: #f4f4f4}"
    Local cRadCss     := "QRadioButton {font: normal 14px Arial;color: #000000;}"
    Local oModal    := Nil
    Local oPal    := Nil
    Local bConf     := {|| oRadio:bValid := ConfRad(aItems,nRadio)}
    Local bLimp     := {|| oRadio:aItems := aClone(oRadio:aItems), nRadio := 0,oBtnFil:SetCSS(cCSS) }
    Local bSair    := {|| oModal:DeActivate(),NIL,oBtnFil:SetCSS(cCSS) }
    Local nRadio   

    oModal  := FWDialogModal():New()
    oModal:setEscClose(.T.)
    oModal:setTitle("Filtros Inteligentes ")
    //Seta a largura e altura da janela em pixel
    oModal:setSize(180, 190)
    oModal:createDialog()//responsável por criar a janela e montar os paineis.

    // Capturar o objeto do FwDialogModal para alocar outros objetos se necessário.
    oPal := oModal:getPanelMain()

    nRadio := 0
    aItems := {'Filtro 1','Filtro 2,;
        'Filtro 3,'Filtro 4'}


    oRadio := TRadMenu():New(02,02,aItems,,oPal,,,,,,,,200,53,,,,.T.,,)
    oRadio:bSetGet := {|u|Iif (PCount()==0,nRadio,nRadio:=u)}
    oRadio:SetCss(cRadCss)

    oModal:AddButton( 'Confirmar'     , bConf  , 'Confirmar'      , , .T., .F., .T., )
    oModal:AddButton( 'Limpar Filtro' , bLimp  , 'Limpar filtros' , , .T., .F., .T., )
    oModal:AddButton( 'Cancelar'      , bSair  , 'Cancelar'       , , .T., .F., .T., )


    oModal:Activate()
Return

Executa a Ação de Filtrar os campos na Grid Principal, ao Confirma a opção de Filtro.
Static Function ConfRad(aItems,nRadio)
    Local cCSS   := "QPushButton { background-color: #90EE90}"
        If nradio == 1

            MsgAlert("Primeiro Filtro")


        ElseIf nRadio == 2

            MsgAlert("Segundo Filtro")

        Endif
        oBtnFil:SetCSS(cCSS) 
Return()