Página 1 de 1

Propriedade aControls de TForm

Publicado: Jue Feb 28, 2013 12:49 pm
por Sommus
Pessoal,
Procurei aqui no fórum e não encontrei a solução...
Preciso acessar todos os controles de um TForm. Vi que tem a propriedade "aControls"... Seria a solução, porém precisava da relação de TODOS os controles que estão no formulário, mas, essa propriedade somente me retorna o que está diretamente em TForm. Se tem um TBevel, por exemplo, eu teria que ver a propriedade "aControls" de TBevel. O que eu preciso é de todos os controles que estão no formulário, mesmo que esteja DENTRO de outros controles...
í‰ possí­vel isso?
Obrigado pela atenção,
Reginaldo

Propriedade aControls de TForm

Publicado: Jue Feb 28, 2013 1:14 pm
por Cassiano de Oliveira
Assim resolveria?
aObjetos := Application:oMainForm:aControls
[]´s
"Sommus - Reginaldo" wrote in message news:512f4434$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Pessoal,
Procurei aqui no fórum e não encontrei a solução...
Preciso acessar todos os controles de um TForm. Vi que tem a
propriedade "aControls"... Seria a solução, porém
precisava da relação de TODOS os controles que estão no
formulário, mas, essa propriedade somente me retorna o que
está diretamente em TForm. Se tem um TBevel, por exemplo,
eu teria que ver a propriedade "aControls" de TBevel. O que
eu preciso é de todos os controles que estão no
formulário, mesmo que esteja DENTRO de outros controles...
í‰ possí­vel isso?
Obrigado pela atenção,
Reginaldo

Propriedade aControls de TForm

Publicado: Jue Feb 28, 2013 3:47 pm
por Roberto
Sim, é possí­vel, mas vocíª precisa usar recursividade.
Tente algo assim:
// obter todos os controles de um form
aLista := ObterControles( oForm )
// bla, bla, bla...
// procedure para obter lista de controles de um TWinControl ou descendente
Procedure ObterControles( oParent, aControles )
LOCAL oControl
IF aControles = Nil
aControles := {}
ENDIF
FOR EACH oControl IN oParent:aControls
IF oControl:IsKindOf("TWinControl")
ObterControles( oControl, aControles )
ENDIF
NEXT
RETURN aControles
Não testei, mas deve ser mais ou menos isso.
Regards,