Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Ausweg aus Schleife
Ice - Do 30.01.03 10:18
Titel: Ausweg aus Schleife
Hallo Leute,
ich habe da ein Problem und zwar versuche ich aus einer repeat until Schleife mit diesem Quelltext:
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
Tino: Code-Tags hinzugefügt.
bis11 - 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 - 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
Anonymous - Do 30.01.03 11:15
Titel: Re: Ausweg aus Schleife
Schreibe mal in Deiner Schleife:
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 - Do 30.01.03 11:25
Vielen Dank!!
Hat super funtioniert!
:D
mfg Ice
Sharky - 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
Tino: Leerzeilen entfernt.
Ice - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!