Hola,
Alguien sabe cual es la forma correcta de definir un array de controles. Algo asi como:
Código Delphi
[-]LabD: array[1..8] of TLabel
Esa definición esta presente en protected de una clase X que deriva de TPanel. Ahora bien, en Create y Destroy tengo el siguiente codigo:
Create:
Código Delphi
[-]inherited Create(AOwner);
SetBounds(0, 0, cMCW, cMCH);
CreateObjects;
Destroy:
Código Delphi
[-]RemoveObjects;
inherited Destroy;
como podran notar en Create llamo a un procedimiento CreateObject que se encuentra declarado en Private dentro de la clase. El unico objectivo es crear los controles adiciones, que en este caso en particular son 8 etiquetas (TLabel). El codigo es el siguiente :
Código Delphi
[-]
x:=5;
y:=21;
for i:=1 to 8 do
begin
LabD[i]:=TLabel.Create(Self);
with LabD[i] do
begin
Parent:=Self;
AutoSize:=True;
Caption:=CA_D[i];
Alignment:=taCenter;
Transparent:=True;
ParentFont:=True;
Width:=21;
Height:=13;
Top:=y;
Left:=x;
Inc(x, Width + 2);
end;
end;
En Destroy llamo a otro procedimiento RemoveObjects declarado tambien el Private que lo unico que hace es destruir los objectos que han sido creados.
Código Delphi
[-]var
i: Integer;
begin
for i:=8 downto 1 do
begin
LabD[i].Free;
LabD[i]:=nil;
end;
end;
Ahora bien...Cual es mi problema. Cuando intento pegar el componente dentro de la Form, delphito me lanza un cuadro de dialogo con lo siguiente :
Control has no parent window
El objetivo de usar array es unicamente para poder tratarlos por lotes los controles TLabel.
¿Alguien sabe a que se debe este problema?
Saludos desde Chile.
