Programm für x Sekunden warten lassen?
-
HI
ich will folgendes machen:
ich will bei FormCreate eine Endlosschleife machen die 16 mal pro sekunde eine variable prüft und gegebenenfalls etwas macht.
Dafür muß ich ja immer x millisekunden zwischen jedem schleifendurchlauf warten sonst crashe ich ja den rechner.dabei muß der rest des Programms aber weiterlaufen da die variable ja gesetzt werden muß!
Was ich suche ist also eigentlich eine möglichkeit alle x miliisekunden etwas zu machen zum Beispiel mit einer schleife die nach jeden durchlaufen 50 MS wartet!
THX
Dagsta
-
Sleep(50);
-
dann wird aber das ganze programm für die 50 MS angehalten!
das will ich ja auch nicht!
also es ist so der user kann eingaben machen!
und die werden alle 50 MS geprüft! das Programm muß also auch in den 50MS weiterlaufen!
THXDagsta
-
Siehe FAQ unter 'Verzögerungsfunktion'.
-
Das wird wohl am einfachsten mit einer Timeroutine gehen. Schau Dir dazu mal die Klasse TTimer und das dazugehörige Event TTimer:OnTimer an.
-
Original erstellt von dagsta:
also es ist so der user kann eingaben machen!
und die werden alle 50 MS geprüft!Wozu das denn? Es reicht doch, die Prüfung nur bei einer Änderung der Eingabe vorzunehmen (Stichwort 'OnChange').
-
Also ich habe ein autorennspiel!!!
und alle 16 Msekunden soll das bild aktualisiert werden.
und der speed geht durch drücken der Pfeiltaste immer höher also speed = 100 zum beispiel!
Wie sonst soll ich das auto jetzt auch ohne erneutes drücken einer taste fahren lassen?
Auch dieses OnTimer hält das programm an bzw es reagiert nichtmehr auf tastendrücken
-
Thema kann geschlossen werden habe es mit Times hinbekommen
-
Nö. Vorher sagst du noch, WIE du das gemacht hast.
-
mit einem TTimer
und dem ereigniss onTimerin dem habe ich dann wieder Timer1->Interval = 50;
also ne endlosschleife und dabei werden andere ereignisse uach verarbeitet!THX an alle die geholfen haben
Dagsta