Desmarcar Vários CheckBox dentro de GroupBox
Pessoal tenho uns 4 GroupBox e dentro de cada GroupBox tem uns 30 CheckBox, então queria que ao selecionar vários CheckBox de diferentes GroupBox. No Onclick do botão Limpar desmarcasse os ChexBox que estiverem selecionados. Sem ter que dar "CheckBox1.Checked := False;" para cada ChexBox.
Valeu abraço!
Valeu abraço!
Jawa-informática
Curtidas 0
Respostas
Thiago Irrazabal
29/10/2013
Boa tarde, eu faria com TCheckListaBox...
no evento OnClick de algum botão qualquer:
Att,
Thiago Irrazabal de Oliveira.
no evento OnClick de algum botão qualquer:
var
I: Integer;
begin
for I := 0 to CheckListBox.Items.Count - 1 do
if CheckListBox.Checked then
CheckListaBox.Checked[I] := not CheckListaBox.Checked[I];
end;
Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Thiago Irrazabal
29/10/2013
Pessoal tenho uns 4 GroupBox e dentro de cada GroupBox tem uns 30 CheckBox, então queria que ao selecionar vários CheckBox de diferentes GroupBox. No Onclick do botão Limpar desmarcasse os ChexBox que estiverem selecionados. Sem ter que dar "CheckBox1.Checked := False;" para cada ChexBox.
Valeu abraço!
Valeu abraço!
Se tu quiser com o GroupBox e os CheckBox... eu faria assim:
no evento OnClick de algum botão qualquer.
var
I: Integer;
begin
inherited;
for I := 0 to ComponentCount - 1 do
if (Components[I] is TCheckBox) and (Components[I].GetParentComponent.Name = 'GroupBox1') then
TCheckBox(Components[I]).Checked := False;
end;
No caso só substituir o GroupBox1 pelo nome do teu GroupBox, para testar os outros GroupBox é só por elses para todos os teus GroupBox's.
Se por acaso tu quiser desmarcar todos checkbox do teu formulário sem testar os GroupBox é só tirar isso "and (Components[I].GetParentComponent.Name = 'GroupBox1')" do if.
espero ter ajudado abraço.
Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Jawa-informática
29/10/2013
Opa, blz Thiago! Vou testar a função e ver se resolve meu problema e posto aqui valeu! Obrigado por responder o post.
GOSTEI 0
Jawa-informática
29/10/2013
Thiago funcionou para todos os ChekBox retirando o que você citou anteriormente.
Só que coloquei no OnClick de cada CheckBox para mudar a cor do fonte ao selecioná-lo.
Queria alem de limpar os ChekBox, alguns edits também e coloquei além do if:
TCheckBox(Components[I]).Font.Color := clWindowText;
Para voltar a cor normal do CheckBox e veja o que mostrou:
Só que coloquei no OnClick de cada CheckBox para mudar a cor do fonte ao selecioná-lo.
TCheckBox(sender).Font.Color := clWindowText; TCheckBox(sender).Font.Color := clRed;
inherited; for I := 0 to ComponentCount - 1 do
if (Components[I] is TCheckBox) then
TCheckBox(Components[I]).Checked := False;
TCheckBox(Components[I]).Font.Color := clWindowText;Queria alem de limpar os ChekBox, alguns edits também e coloquei além do if:
TCheckBox(Components[I]).Font.Color := clWindowText;
Para voltar a cor normal do CheckBox e veja o que mostrou:
FOR-Loop variable 'i' may be undefined after loop
GOSTEI 0
Marcos Saffran
29/10/2013
isso ocorreu pois o segundo comando do if acabou ficando fora do comando for, coloque o programa dessa forma:
var
I: Integer;
begin
inherited;
for I := 0 to ComponentCount - 1 do
begin
if (Components[I] is TCheckBox) then
begin
TCheckBox(Components[I]).Checked := False;
TCheckBox(Components[I]).Font.Color := clWindowText;
end;
end;
end;GOSTEI 0
Jawa-informática
29/10/2013
Marcos Alfredo valeu meu irmão pela dica! Funcionou. Tava fora do Loop mesmo rsrs é que sou iniciante mas estou estudando Lógica de programação e queria agradecer pela ajuda sua e de Thiago. Esse projeto é um sisteminha que estou desenvolvendo para meu TCC. Abração e obrigado a vocês pela ajuda!
Apropósito como colocar "RESOLVIDO" no post?
Apropósito como colocar "RESOLVIDO" no post?
GOSTEI 0