Erzeuge ein Label und setze es auf die Form.
Dieses Label hängst du auch in eine Liste.
Ein Timer arbeitet beim OnTimer Event diese Liste ab und verändert die Position.
Wenn ein Label diese (100) Schritte hinter sich hat, dann entferne es aus der Liste und zerstöre es.
Eine Möglichkeit diese Anzahl an verbleibenden Schritten zu speichern wäre die Tag-Eigenschaft von TLabel.
Delphi-Quellcode:
procedure TMyForm.AddNewLabel( const ACaption : string );
var
LLabel : TLabel;
begin
LLabel := TLabel.Create( nil );
LLabel.Caption := ACaption;
LLabel.Top := Random( Self.ClientHeight - 100 ) + 100;
LLabel.Left := 50;
LLabel.Parent := Self;
LabelList.Add( LLabel );
end;
procedure TMyForm.LabelTimerTimer( Sender : TObject );
var
LIdx : Integer;
LLabel : TLabel;
begin
LIdx := 0;
while Lidx < LabelList.Count do
begin
LLabel := LabelList.Items[LIdx] as TLabel;
if LLabel.Tag = 0 then
begin
LabelList.Delete( LIdx );
end
else
begin
LLabel.Top := LLabel.Top - 1;
LLabel.Tag := LLabel.Tag - 1;
Inc( LIdx );
end;
end;
end;
Ich brauche nicht mehr als 2 Sekunden, um das zu realisieren.
Warum gibt es Leute, die wirklich für Alles fremde Hilfe brauchen!?
Und warum kannst du das so schnell?
Konntest du das schon immer so schnell?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)