Einzelnen Beitrag anzeigen

MisterIXI

Registriert seit: 4. Jun 2015
15 Beiträge
 
Delphi 7 Personal
 
#8

AW: Timer läuft ab Mitternacht rückwärts

  Alt 1. Sep 2015, 16:30
Also das Ganze program ist ein sogenannter "Splitter" für Speedruns eines speziellen Spiels.
Im Prinzip eine Stopuhr...
Allerdings ist es nicht nur um eine einzelne zeitspanne zu messen sondern auch um einzelne Abschnitte mit früheren Rekorden zu Vergleichen (Beispiel: das Programm ist Für ein altes Mario Kart Spiel und wenn man eine Strecke fertig gefahren hat, drückt man einen Button. Dieser ermittelt erst die Zeit die zwischen dem letzten und diesem Drücken vergangen ist. Dann Vergleicht er diesen Wert (momentan ist die Variable die zeit in MS) mit dem in einer .ini gespeicherten Rekord. der Timer läuft in der zwischenzeit allerdings noch weiter)

Ich würde es gerne auf die Millisekunde genau und auch in Echtzeit updaten, also dass man den ganzen Timer hochticken sieht.
Ich hatte ganz am anfang das Problem, dass ich einfach einen Timer immer den TickCount hab auslesen lassen für die berechnungen. Da die zeit aber wenn möglich auf Millisekunden genau (mindestens auf sekunden genau) gemessen werden soll, waren die extrem abweichenden Werte Schwachsinn. Dass der Timer ungenau ist, war halt dadurch egal, dass die Systemzeit komplett unabhängig von der Abfragehäufigkeit/Regelmäßigkeit des Timers gearbeitet hat. Und wird auch nicht von der Auslastung von Grafikkarte,CPU, etc... beeinflusst.
Die Lösung von naphets scheint auch wunderbar zu funktionieren, ich hab zwar keinen stresstest ausgeführt, aber nach dem wechsel auf 00:00 lief die TDateTime variante weiter wie sie sollte.

Es lief bis jetzt auch stabil mit der Time variante, und schien auch ziemlich genau. Da war ja nur das Problem mit Mitternacht. Das hätte sich mit der TDateTime variante wohl erledigt...
Und selbst wenn es nicht auf die Millisekunde genau funktioniert, ist es nicht allzu schlimm, da die schlussendlich durch die Menschliche eingabe ohnehin ungenau ist. ^^

Ich hau das ganze gleich mal von meinem kleinen Testprogramm in das eigentlich und teste ob es funktioniert.
  Mit Zitat antworten Zitat