Hi,
Ich brauche für ein programm sehr viele Buttons auf meinem Formular, deswegen hab ich mir überlegt das es das einfachste wäre die Buttons dynamishc zu erstellen. Schön und gut innen bischen in Klassen in Delphi eingelesen, und schnell herausgefunden wie man Komponenten dynamisch erstellt, dachte ich.
Mit dem dynamischen erstellen von Formularen klappt es so ja auch problemlos:
Delphi-Quellcode:
var
Form1: TForm1;
forms: array[0..20] of TForm;
[......]
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i:Integer;
begin
for i:=0 to 20 do
begin
forms[i]:=TForm.create(form1);
forms[i].Visible:=true;
forms[i].Left:=i*40;
end;
end;
Das funktioniert ohne Probleme.
Nun stelle icha ber diesen code auf Buttons um:
Delphi-Quellcode:
var
Form1: TForm1;
buttons: array[0..20] of TButton;
[......]
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i:Integer;
begin
for i:=0 to 20 do
begin
buttons[i]:=TButton.create(form1);
buttons[i].Visible:=true;
buttons[i].Left:=i*40;
end;
end;
Wenn ich nun das nun Compeliere sagt er mir zunächst:
Zitat:
[Fehler] Unit1.pas(19): Undefinierter Bezeichner: 'TButton'
Das lässt sich aber beheben in dem ich einen button auf dem Formular erstelle un ihn wieder lösche.
Nun gibt es zwar keine Fehlermeldungen mehr, aber es passiert aber auch nciht das gewünschte.
Es passiert nämlich genau garnichts, außer das nach realtiv langer Compelier Zeit für ein so kleines Programm ein leeres Fenster erscheint.
Woran liegt das?
Und wie funktioniert es?
pelzi