Fórum Varrer CheckBox, não encontra nenhum #453528

29/08/2013

0

Não estou conseguindo fazer o Delphi ler os CheckBox que estão com a propriedade Checked = True.

Eu tenho um ScrollBox e dependendo do que eu tenho em uma tabela no banco eu crio um Panel com Parent no ScrollBox e um CheckBox com Parent no Panel para cada registro.
Até ai tudo bem.
O problema é quando vou varrer os componentes com este código:

var
  i: integer;
begin
  for i := 0 to ComponentCount-1 do
    if (Components[i] is TCheckBox) then
      if (Components[i] as TCheckBox).Checked then
        ShowMessage('Checkado');
end;


Ele não encontra nenhum CheckBox no formulário.
Mesmo criando os CheckBox dentro do ScrollBox sem o Panel não da certo.

Alguém tem alguma ideia do que pode ser ou como posso fazer isso?
Rafael Brendolan

Rafael Brendolan

Responder

Posts

29/08/2013

Marcos Oliveira

Rafael, fiz o seu código exatamente como falou, colocando os componentes diretamente no form, e criando-os em tempo de execução e em ambos os casos, seu código funcionou.
Tente trocar uma linha do seu código pra ver se vai dar certo:

var
  i: integer;
begin
  for i := 0 to ComponentCount-1 do
    if (Components[i].ClassType = TCheckBox) then // Esta linha aqui...
      if (Components[i] as TCheckBox).Checked then
        ShowMessage('Checkado');
end;


Espero que funcione.

Boa sorte.
Responder

Gostei + 0

29/08/2013

Rafael Brendolan

Marcos. Assim também não estava dando certo.
Vi minha falha. Na hora de criar os componentes estava colocando

Panel := TPanel.Create(nil);


Eu tinha que passar (Self).

Por isso não encontrava o componente no Form.

Obrigado.
Responder

Gostei + 0

29/08/2013

Deivison Melo

Resolvido!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar