1) wenn Du die Componenten eh in einen Array verwaltest würde ich die Zuweisung des Komponentennamens weglassen, ist nur fehleranfällig
2) das führt in etwa zu folgenden, ungetesteten Codeschnippsel:
Delphi-Quellcode:
arrCtrl: array[1..3] of TControl
procedure TForm1.CompCreate(CompClass: TControlClass; CompArray: array of TControl; settParent: TWinControl; settWidth: integer; settLeft: integer; settHeight: integer; settTop: integer; settText: string; i: integer);
begin
CompArray[i] :=CompClass.Create(self);
with CompArray[i] do
begin
Parent := settParent;
Width := settWidth;
Left := settLeft;
Height := settHeight;
Top := settTop;
if CompClass.ClassNameIs('TEdit') Then TEdit(CompArray[i]).Text := settText;
if CompClass.ClassNameIs('TLabel') Then TLabel(CompArray[i]).Caption := settText;
... [weitergehende Eigenschaften müssen entsprechend auf der gecasteten Komp. zugewíesen werden]
end;
...
Aufruf sollte dann so gehen
CompCreate(TEdit, arrCtrl, Panel1,10,10,21,10,'Text',1);
God is real unless declared as integer.