Hallo liebe Delphi-Praxis Community.
Habe mir schon länger auf dieser Seite geholfen und mir auch mal einen Account erstellt, denn ich komme bei einem Problemchen einfach nicht weiter. (Bin auch noch ganz schöner Anfänger)
Und zwar ist mein Problem folgendes.
Ich möchte ein Objekt, in diesem Falle ein einfaches Label zum Test, mit Buttons über das Bild laufen lassen, während der Button gedrückt wird.
Ich habe das jetzt so umgesetzt, dass während das Knöpflein gedrückt wird, ein anderes Label (nicht Sichtbar für den nutzer) einen Wert annimmt und während dieser Wert besteht, bewegt sich das Objekt. Beim loslassen des Buttons geht der Wert des zweiten Labels wieder zurück, sodass die Bedinnung für die Schleife nicht mehr bestehen sollte.
Delphi-Quellcode:
procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label2.Caption := '2';
Wert := StrToInt(Label2.Caption);
while wert>=1 do
begin
Label1.Top := Label1.Top - 1;
form1.refresh;
sleep(100);
end;
end;
procedure TForm1.Button2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label2.Caption := '0';
end;
Dass das zweite Label seinen Wert verändert, also von 0 auf 2 und zurück klappt wunderbar. Aber die Schleife läuft ja bis in die unendlichkeit, weil sie nicht unterbrochen werden kann. (Button kann auch nicht mehr losgelassen werden).
Da wollte ich mal fragen, ob man mir hier evt. ein paar Tipps geben könnte, wie ich es richtig oder sogar anders/besser umsetzten könnte. Kenne mich nämlich noch nicht so in der Vielfalt an Möglichkeiten aus
Mit freundlichen Grüßen, der Eme
Ps.: Hoffe, ich hab alles halbwechs verständlich beschrieben. Also meine Idee und Situation ^^