Hallo ich habe folgendes Problem:
ich wollte ne procedure schreiben, mit der ich verschiedene Komponenten zur Laufzeit (quasi dynamisch) erstelle. Die Komponenten, die ich erstellen will liegen in mehreren Arrays, der form
EditsLK: array[1..3] of TEdit;
vor.
Meine Procedure sieht folgendermaßen aus:
Delphi-Quellcode:
procedure TForm1.CompCreate(Comp: string; settParent: TWinControl; settWidth: integer; settLeft: integer; settHeight: integer; settName: string; settText: string; settTop: integer; i: integer);
begin
if Comp = 'EditsLK' then
begin
EditsLK[i] := TEdit.Create(self);
with EditsLK[i] do
begin
Parent := settParent;
Width := settWidth;
Left := settLeft;
Height := settHeight;
Name := settName;
Text := settText;
Top := settTop;
end;
end;
{....usw.}
Mein Problem ist jetz, dass ich nicht weiss, wie ich die Variablen setzten soll. Weil so muss ich für jedes Komponentenarray, die ich eigentlich bequem per Procedure erstellen wollte, den selben Ablauf wie oben nochmal schreiben. Ich hab ein wenig rumprobiert und versucht ein array aus TControlClass zu machen:
Delphi-Quellcode:
procedure TForm1.CompCreate(Comp: TControl; CompArray: array of TControlClass; settParent: TWinControl; settWidth: integer; settLeft: integer; settHeight: integer; settName: string; settText: string; settTop: integer; i: integer);
begin
CompArray[i] := Comp.Create(self);
with CompArray[i] do
begin
Parent := settParent;
Width := settWidth;
Left := settLeft;
Height := settHeight;
Name := settName;
Caption := settText;
Top := settTop;
end;
end;
Leider gibt der Compiler jetzt nur "Inkompatible Typen" aus...
Hat vielleicht jemand ne Idee? Bin ich komplett aufm "Holzweg"? Kann mir jemand helfen?
Danke im Vorraus