TCheckBox Marcar e desmarcar todas as opções

Olá Pessoal, alguém sabe como posso limpar as seleções do CheckBox?, tenho um botão 'Limpar seleções', estou procurando exemplos e validações usando a classe TCheckBox mas não achei nada basicamente.

Se alguém tiver algum fonte usando TCheckBox, com alguma função que faça uma validação dependo da opção selecionada.

Agradeço!


User Function FiltInt()
    Local cCSS      := "QPushButton { background-color: #f4f4f4}"
    Local oFont     := TFont():New("Arial",,-13,,.F.)
    Local oModal    As Object 
    Local oPanel,oCheck1,oCheck2,oCheck3,oCheck4,oCheck5    As Object 
    Local lCheck     As logical
    Local bConf     := {|| U_ConfRad(oModal)}
    Local bLimp     := {|| lCheck:= .F.}
    Local bSair     := {|| oModal:DeActivate(),NIL,oBtnFil:SetCSS(cCSS) }

    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 o painel.
    oPanel := oModal:getPanelMain()


   oCheck1 := TCheckBox():New(02,01,'item 1',{||lCheck},oPanel,180,210,,,oFont,,,,,.T.,,,{oCheck1:Refresh()})
   oCheck2 := TCheckBox():New(13,01,'item 2',{||lCheck},oPanel,180,210,,,oFont,,,,,.T.,,,{oCheck2:Refresh()})
   oCheck3 := TCheckBox():New(23,01,'Item 3',{||lCheck},oPanel,180,210,,,oFont,,,,,.T.,,,{oCheck3:Refresh()})
   oCheck4 := TCheckBox():New(33,01,'Item 4',{||lCheck},oPanel,180,210,,,oFont,,,,,.T.,,,{oCheck4:Refresh()})
   oCheck5 := TCheckBox():New(43,01,'Item 5',{||lCheck},oPanel,180,250,,,oFont,,,,,.T.,,,{oCheck5:Refresh()})

    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

Eduarda,

Para desmarcar o CheckBox, basta alterar a variável enviado ao bSetGet do TCheckBox. Se você deseja validar a seleção do CheckBox, você também vai trabalhar com base nessa variável enviada ao bloco e bSetGet.

Exemplo:


#include "protheus.ch"

//-------------------------------------------------------------------
/*/{Protheus.doc} DesmarcChkBox
Exemplo de desmarcar o checkbox sem clicar no mesmo

@author Daniel Mendes
@since 05/12/2022
@version 1.0
/*/
//-------------------------------------------------------------------
user Function DesmarcChkBox()
local lCheck as logical
local oCheck as object
local oButton as object
local oDlg as object

oDlg := TDialog():New(0, 0, 100, 300, "Exemplo TCheckBox, desmarcando via botão",,,.F.,,,,,,.T.)

lCheck := .T.
oCheck := TCheckBox():New(05, 55, "CheckBox", {||lCheck}, oDlg, 100, 210,,,,,,,,.T.)

oButton := TButton():New( 30, 40, "Desmarca CheckBox", oDlg, {|| lCheck := .F. }, 75, 10,,,.F.,.T.,.F.,,.F.,,,.F. )   

oDlg:Activate(,,,.T.)

if lCheck
    MsgInfo("O checkbox terminou marcado", "Teste CheckBox")
Else
    MsgInfo("O checkbox terminou desmarcado", "Teste CheckBox")
EndIf

return

Olá Daniel, obrigada pela resposta, estou com um problema logo depois que limpo as seleções. as caixa de seleção (CheckBox) logo depois de limpar, ficam com seleção única ela não volta a ser seleção múltipla. vou colocar o meu fonte na pergunta.