Fórum ComponentCount #335176

23/12/2006

0

Olá Pessoal,

Estou tentando utilizar a propriedade ComponentCount de um Groupbox e ele só retorna 0, sendo que dentro do Groupbox tem 10 edits, e um groupbox com mais 2 edits.

Estou tentando fazer algo assim

[b:ec1587df6e] for I := 0 to GroupBox1.ComponentCount -1 do
begin
if (GroupBox1.Components[I] is TEdit) then
begin
TEdit(GroupBox1.Components[I]).ReadOnly := True;
end;
end;[/b:ec1587df6e]

Será um bug ????

Marcelo


Mrangel

Mrangel

Responder

Posts

24/12/2006

Marcelo Saviski

é que os componentes que ficam visualmente dentro de outros ficam em Controls[n]
n >=0 e n < ControlCount

no seu exemplo, se você usar GroupBox1.Controls[i] ao invés de components[i] funciona.

no GroupBox1.Components[i] ficam só os componentes cujo ´owner´ é o GroupBox1, neste caso, nenhum, porque o form é o owner de todos os componentes que estão nele.

um componentes se torna owner de outro quando esse componente é criado e é owner é passado como parametro, por exemplo:
EditNovo := TEdit.Create(GroupBox1);
dai, GroupBox.components[0] = EditNovo;


Responder

Gostei + 0

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

Aceitar