Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem mit sleep()
Waldkauz - Fr 27.03.09 18:15
Titel: Problem mit sleep()
Hallo!
Also, ich bastle gerade an einem StadtLandFluss-Spiel (ist keine Hausaufgabe sondern eine Art Projekt, wo Schüler ihre eigenen Programme entwerfen).
Während eine Uhr in einem Edit-Feld 120 Sekunden herunterzählt, hat kann man in die Edit-Felder wo man Stadt, Land, Fluss etc. reinschreibt, etwas reinschreiben - das funktioniert schonmal.
Ich möchte aber einen zusätzlichen Button machen, auf den man klicken kann, während die Zeit läuft, und der dann den Countdown sozusagen anhält.
Mit sleep ist das ja aber problematisch, weil man da ja, während der sleepfunktion keine Buttons betätigen kann.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button1Click(Sender: TObject); var I: Integer; begin for I := 12000 downto 20 do begin sleep(10); Application.ProcessMessages; Edit7.Text:=intToStr(Round(I/100)); end; end; |
Gibt es andere Zeit-Funktionen?
JayEff - Fr 27.03.09 18:25
:puke: Sleep :mrgreen:
Sleep ist für so ein Anwendungsgebiet gänzlich ungeeignet.
Schau dir mal TTimer an, such auch im Forum ein bisschen danach. Diese Komponente löst ihr Ereignis onTimer immer wieder auf, mit *myTimer.Interval* Milisekunden Abstand. Für dein Anwendungsgebiet: Interval auf 1000 ms stellen (=1 Sekunde) und im onTimer Ereignis herunterzählen. Mit myTimer.Enabled := True/False kannst du entscheiden, ob der Countdown laufen soll oder nicht.
Delete - Fr 27.03.09 18:25
Bnutze einen Timer und eine globale Variable für die vergangenen Sekunden.
Waldkauz - Fr 27.03.09 19:54
Hey danke!
Is genau das, was ich brauchte.
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!