Puedes usar la estructura
TList o
TObjectList para lograr lo que deseas.
Sobre el error de incompatibilidad, este se da por la forma como quieres crear el objeto TLabel, lo correcto sería:
Código Delphi
[-]
a[i] := TLabel.Create(nil);
Aquí tienes un pequeño ejemplo usando un
TList:
Código Delphi
[-]
procedure TForm1.CrearCavidades(ALabelList: TList; NoCavs: Integer);
var
I: Integer;
ALabel: TLabel;
begin
for I := 1 to NoCavs do
begin
ALabel := TLabel.Create(Self);
ALabel.Caption := Format('Cavidad %d', [i]);
ALabel.Parent := Self; ALabelList.Add(ALabel)
end
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FLabelList := TList.Create;
CrearCavidades(FLabelList, 5) end;
Espero que con esto te des una idea de como puedes lograr lo que necesitas...
Saludos...