Also, wenn das so ist, dann last doch
a: das Programm in einer Schleife laufen, oder
b: stellt den Timer auf 20 ms ein (ist so das Kleinste, was TTimer kann)
(b ist dabei ja auch sowas wie eine Schleife ^^)
Delphi-Quellcode:
var MerkeZeit: irgendeinIntegertyp := 0;
Repeat // die Schleife ... oder Begin der Timerprozedur
If MerkeZeit = AktuelleZeit Then Countinue; // oder Exit, bei der Prozedure
MerkeZeit := AktuelleZeit;
... was auch immer (etwa Sekündlich)
Until ; // die Schleife ... oder End der Timerprozedur
Wenn Zeiten ni´ch in Sekunden vorhanden sind, dann muß halt entsprechend scaliert werden
z.B. Zeiten in Millisekunden:
Delphi-Quellcode:
If MerkeZeit = AktuelleZeit div 1000 Then Countinue; // oder Exit, bei der Prozedure
MerkeZeit := AktuelleZeit div 1000;
Wenn die Schleife also oftgenug aufgerufen wird, dann ist die Chance geringer, dass etwas verpasst wird.
Oder ihr macht es so, wie bisher, aber merkt euch die letzte Zeit, als euer Code ausgeführt wurde, wenn ihr dann das mit der aktuellen Zeit vergleicht, wisst ihr ja, wieviele der "letzten" Sekunden noch bearbeitet werden müssen, somit wird auch nichts vergessen.
Wie gesagt, Echtzeit gibt es bei Windows nicht und ihr müßt immer mal damit rechnen, dass mal euer Programm ein bissl ins stocken kommt.
[edit]
wieso ist der Beitrag nicht das 1. Mal eingefügt wurde? (zum Glück war alles nochim Speicher -.-'' )
[]
Bitte bitte ... manchmal sieht man halt den Wald vor Bäumen nicht