Einzelnen Beitrag anzeigen

Emerold

Registriert seit: 29. Mär 2013
9 Beiträge
 
FreePascal / Lazarus
 
#1

Dauerschleife während Button

  Alt 29. Mär 2013, 17:50
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 ^^
  Mit Zitat antworten Zitat