ComponentCount
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
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
Curtidas 0
Respostas
Marcelo Saviski
23/12/2006
é 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;
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;
GOSTEI 0