Willkommen
Delphi-Quellcode:
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].Show;
MyLabels[i].Color := clLime;
MyLabels[i].Top := 200 + random(279);
MyLabels[i].Left := 200 + random(279);
end;
Wozu die Schleife, wenn auch etwas Mathe ausreicht?
Warum nutzt du einmal Form1 und dann wieder Self? (ist in diesem Fall doch wohl die selbe Form)
Zitat von
peacook94:
Dann tritt allerdings der Fall ein, dass " i " auf 2 erhöht wird. Zu der Zeit sind allerdings noch nicht 2 Objekte vorhanden. Dort kommt er dann durcheinander und produziert Fehlermeldungen ( "Zugrifffsverletzung in Adresse ..." ).
Eventuell änderst du das globale "i" noch irgendwo anders?
PS: Entfernst du die Labels auch wieder aus dem Array, wenn sie angeklickt/freigegeben wurden?
PSS: Eine TObjektList macht sich bestimmt besser, statt des Arrays.