erro ao contar o numero de checkbox

Delphi

12/03/2014

Pessoal,

segui a dica de um colega do forum para contar o numero de checkbox selecionados, conforme codigo abaixo, mas nao entra no FOR!!
le a linha do for e vai direto para o final!

Alguem pode me ajudar?

begin
//verificando na tabsheet quantos checkbox foram selecionados
count := 0;
for i := 0 to tbshtRandomNumbers.ComponentCount - 1 do
begin
o:=components[i];
if (o is TCheckBox) and ((o as TCheckBox).Checked) then
begin
count := count+1;
showmessage(inttostr(count));
end;
end;
end;
Cristina Silva

Cristina Silva

Curtidas 0

Respostas

Marcos Oliveira

Marcos Oliveira

12/03/2014

Cristina,

Segue abaixo um modo que uso para fazer essa contagem. A programação é um pouco diferente, mas a lógica é a mesma.

var
   i, iCheck: Integer;
begin
     iCheck := 0;

     for i := 0 to Form1.ComponentCount - 1 do
     begin
          if (Components[i].ClassType = TCheckBox) and ((Components[i] as TCheckBox).Checked) then
             Inc(iCheck);
     end;

     ShowMessage(IntToStr(iCheck));


Att,

Marcos
GOSTEI 0
Luiz

Luiz

12/03/2014

Boa tarde,

Por que não utilizar um CheckListBox, dessa forma é só percorrer a lista, e somar, por exemplo:

procedure TFrmLogin.Button5Click(Sender: TObject);
var
  i, count : integer;
begin

  count := 0;
  for I := 0 to CheckListBox1.Count - 1 do
  begin
  if CheckListBox1.Checked[I] then
     count := count + 1;
  end;

  ShowMessage(IntToStr(count));

end;

GOSTEI 0
Cristina Silva

Cristina Silva

12/03/2014

Obrigada Marcao. Deu Certo
GOSTEI 0
Cristina Silva

Cristina Silva

12/03/2014

Luiz Coelho, obrigada pela dica.
Mas inicialmente eu tinha feito desta forma, mas nao sei o motivo, mas eu clicava em uma mesma box seguidas vezes, parava e funcionar!
Por isso resolvi fazer separado
GOSTEI 0
Luiz

Luiz

12/03/2014

Ué, que estranho!

Mas que bom que já consegui resolver seu problema!

Abraços.
GOSTEI 0
POSTAR