Einzelnen Beitrag anzeigen

zack0r

Registriert seit: 5. Jan 2005
Ort: Rosenheim
25 Beiträge
 
#1

Array aus TComponents/TControl ?

  Alt 5. Jan 2005, 00:57
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 = 'EditsLKthen
  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
  Mit Zitat antworten Zitat