Autor Beitrag
Ice
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114



BeitragVerfasst: Do 30.01.03 10:18 
Hallo Leute,

ich habe da ein Problem und zwar versuche ich aus einer repeat until Schleife mit diesem Quelltext:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
var
 stop : boolean;

implementation

procedure Button1.Click(Sender:TObject);
begin
 stop := false;
 repeat
  <Anweisungen>
 until stop; 
end;

procedure Button2.Click(Sender:TObject);
begin
 stop := true;
end;

herauszukommen. Wenn ich Button1 drücke soll die Schleife solange durchlaufen werden bis ich Button2 drücke. Kann mir da jemand helfen?
Danke schonmal im voraus!

Ice

Moderiert von user profile iconTino: Code-Tags hinzugefügt.
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Do 30.01.03 10:48 
Du mußt abfragen in Deiner Repeat Until-schleife ob der Button 2 gedrückt wird. Denn so wie Du jetzt den Code geschreiben hast, bekommt Deine Variable nie den Wert true.
Ice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114



BeitragVerfasst: Do 30.01.03 11:14 
Danke für den Tip aber wie kann ich das machen? Ich meine welches Event frage ich da ab? Button2.click?

mfg Ice
Tom
Gast
Erhaltene Danke: 1



BeitragVerfasst: Do 30.01.03 11:15 
Schreibe mal in Deiner Schleife:
ausblenden Quelltext
1:
Application.ProcessMessages;					

Dann kannst Du auch auf Button2 klicken und stoppen. Du kannst natürlich auch nochmal auf Button1 (oder sonst wohin) klicken, dieses wird dann ebenfalls ausgeführt.
Du müsstest also noch alles bis auf den Stop-Button sperren.

Gruß Tom
Ice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114



BeitragVerfasst: Do 30.01.03 11:25 
Vielen Dank!!
Hat super funtioniert!

:D

mfg Ice
Sharky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 20



BeitragVerfasst: Do 30.01.03 11:39 
Ice hat folgendes geschrieben:
Vielen Dank!!
Hat super funtioniert!


Hai,

nur mal so als ergänzung zu Toms Beitrag.

Bei deiner ersten Version hat es nicht funktioniert weil dein Programm nicht "mitbekommen" hat das Du den Butten gedrückt hast. Jeder Mausklick wird von Windows "verarbeitet" und von diesem an das zuständige Fenster weitergeleitet. Durch Application.ProcessMessages sagst Du deinem Programm: "Hole" dir alle Messages die für dich in der Warteschlange stehen.

*Das ist jetzt nur ganz grob beschrieben. Aber es hilft sicher weiter wenn man weiss warum man etas in den Code schreibt*

Moderiert von user profile iconTino: Leerzeilen entfernt.
Ice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114



BeitragVerfasst: Do 30.01.03 12:34 
ja danke, sicher ist es besser wenn man weiss warum etwas funktioniert als nur zu wissen das es funktioniert.

vielen Dank. :)

mfg Ice