Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Schleife für eine bestimmte Zeit anhalten


schitho - So 04.04.04 20:42
Titel: Schleife für eine bestimmte Zeit anhalten
Hi,

ich verwende in einem Programm eine repeat/until-Schleife, die verlassen wird sobald eine bestimmte Schaltfläche angeklickt wurde.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
repeat
// Nun kommen diverse Befehle, die ich mir hier spare
:
:
:
:
:
// hier sollte nun eine Pause eingefügrt werden
:
until abbrechen=true;


Nun möchte ich die Schleife eine bestimmte Zeit (z.B. 30 Sekunden) anhalten lassen. Trotzdem soll das Porgramm auf den Schaltflächen-Klick reagieren.

Wie kann ich das machen?

Gruß
Thomas


Pascal - So 04.04.04 20:56


Delphi-Quelltext
1:
2:
zeit:=gettickcount+30000;
while gettickcount<zeit do application.processmessages;


schitho - So 04.04.04 21:51

Thanx!

Code funktioniert. Allerdings wir durch die Schleife die CPU ganz schön (unnötig) beschäftigt.

Gibt es noch eine andere Möglichkeit, ohne dass dabei der PC so beschäftigt wird?

Danke

Gruß
Thomas


Delete - Mo 05.04.04 09:23


Delphi-Quelltext
1:
while gettickcount<zeit do begin application.processmessages; Sleep(25); end;                    


iGoA - Mo 05.04.04 09:47

Willst Du nich lieber einen Timer benutzen? Is vielleicht "sauberer".


Motzi - Mo 05.04.04 12:41

Ich hab letztens einen neuen Tipp für ein resourcenschonendes Delay zum FAQ hinzugefügt: http://www.delphi-forum.de/viewtopic.php?t=23225