Varrer CheckBox, não encontra nenhum
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:
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?
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
Curtidas 0
Respostas
Marcos Oliveira
29/08/2013
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:
Espero que funcione.
Boa sorte.
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.
GOSTEI 0
Rafael Brendolan
29/08/2013
Marcos. Assim também não estava dando certo.
Vi minha falha. Na hora de criar os componentes estava colocando
Eu tinha que passar (Self).
Por isso não encontrava o componente no Form.
Obrigado.
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.
GOSTEI 0
Deivison Melo
29/08/2013
Resolvido!
GOSTEI 0