Hi,
ich stehe gerade vor folgendem Problem. Ich möchte mehrere Komponenten, um genau zu sein 2 Tedits, 1 TLable und 1 Tspeedbutton jeweils dynamisch zur Laufzeit erzeugen. Dazu habe ich jeweils ein Dynamisches Array erzeugt und lass mit die Teile per Parent auf ein Panel Mappen.
Irgendwie schein mein Delphi aber ein Problem damit zu haben wenn ich mehr als 3 Komponenten zur Laufzeit einbinden möchte. 2 gehen Problemlos, sobald ich die 3. Hinzunehmen spinnt mein Delphi und hängt sich auf. Kennt ihr das verhalten?
Anbei mal die 3 Prozeduren.
Delphi-Quellcode:
private
TabellenCombo : array of TComboBox;
FeldCombo : array of TComboBox;
dynDelBtn : Array of TSpeedbutton;
procedure TForm1.CreateNewDynDelButton;
begin
inherited;
SetLength(dynDelBtn, length(dynDelBtn)+1);
dynDelBtn[length(dynDelBtn)] := TSpeedbutton.Create(self);
dynDelBtn[length(dynDelBtn)].Parent := self.DokExpPanel;
dynDelBtn[length(dynDelBtn)].Name := 'DynBtn'+inttostr(length(dynDelBtn));
dynDelBtn[length(dynDelBtn)].Visible := True;
dynDelBtn[length(dynDelBtn)].Left := 5;
dynDelBtn[length(dynDelBtn)].Top := (dynDelBtn[length(dynDelBtn)].Height + 10) * length(dynDelBtn);
dynDelBtn[length(dynDelBtn)].Width := 20;
dynDelBtn[length(dynDelBtn)].Height := 15;
dynDelBtn[length(dynDelBtn)].Glyph := nil;
ImageList1.GetBitmap(0, dynDelBtn[length(dynDelBtn)].Glyph);
dynDelBtn[length(dynDelBtn)].OnClick:=DeleteMeBtn;
end;
procedure TForm1.CreateNewTableCombo;
begin
SetLength(TabellenCombo, length(TabellenCombo)+1);
TabellenCombo[length(TabellenCombo)]:=TComboBox.Create(self);
TabellenCombo[length(TabellenCombo)].Parent := self.DokExpPanel;
TabellenCombo[length(TabellenCombo)].Name := 'Tabellen'+inttostr(length(TabellenCombo));
TabellenCombo[length(TabellenCombo)].Left := 30;
TabellenCombo[length(TabellenCombo)].Top := (TabellenCombo[length(TabellenCombo)].Height + 10) * length(TabellenCombo);
end;
procedure TForm1.CreateNewFieldCombo;
begin
SetLength(FeldCombo, length(FeldCombo)+1);
FeldCombo[length(FeldCombo)]:=TComboBox.Create(self);
FeldCombo[length(FeldCombo)].Parent := Self.DokExpPanel;
FeldCombo[length(FeldCombo)].Name := 'Felder'+inttostr(length(FeldCombo));
FeldCombo[length(FeldCombo)].Left := 200;
FeldCombo[length(FeldCombo)].Top := (FeldCombo[length(FeldCombo)].Height + 10) * length(FeldCombo);
end;
Danke im Voraus für die Hilfe