Zitat:
weil es in dem Buch mit dem ich Delphi gelernt hab so drin steht
Ja, leider wird diese globale Variable zu oft verwendet.
Bei anderen/eigenen Klassen kommt man auf soeine Idee fast nie und arbeitet direkt mit Self.
Es wäre besser gewesen, wenn es diese Variable erst garnicht gäbe.
Delphi-Quellcode:
var MyLabels: array of TLabel;
procedure TForm1.Timer1Timer(Sender: TObject);
var i: Integer;
begin
i := length(MyLabels);
SetLength(MyLabels, i + 1);
MyLabels[i] := TLabel.Create(Self);
MyLabels[i].Parent := Self;
MyLabels[i].Color := clLime;
MyLabels[i].Top := 200 + Random(279);
MyLabels[i].Left := 200 + Random(279);
MyLabels[i].Show; // vielleicht besser erstmal alles zu setzt
end;
oder eben
Delphi-Quellcode:
var MyLabels: TObjectList;
// MyLabels := TObjectList.Create;
// und am Ende
// MyLabels.Free; nicht vergessen
procedure TForm1.Timer1Timer(Sender: TObject);
var Label: TLabel;
begin
Label := TLabel.Create(Self);
Label.Parent := Self;
Label.Color := clLime;
Label.Top := 200 + Random(279);
Label.Left := 200 + Random(279);
Label.Show;
MyLabels.Add(Label);
end;
So brauchst du dich nicht um die Verwaltung der Liste zu kümmern.