![]() |
Timer löst nicht regelmäßig aus
Hallo,
das ist mein 1. Beitrag in diesem Forum :) Nun zu meiner Frage: Ich möchte eine Art Doppeltimer realisieren. D.h. das Programm soll 2 Zeiten entgegennehmen und soll dann einen Timer starten, der bis zur 1. Zeit zählt. Sobald diese erreicht ist, soll ein Sound ausgegeben und der 2. Timer gestartet werden. Ist dieser fertig, so soll ebenfalls ein Sound ausgegeben werden und wieder Timer 1 gestartet werden. Bisher bin ich erstmal daran überhaupt einen Timer zu programmieren, der Zehntelsekunden, Sekunden und Minuten zählt. Dazu verwende ich einen Timer mit 100 ms Intervall. In der OnTimer Prozedur mache ich folgendes:
Delphi-Quellcode:
Ein Test des Codes brachte allerdings ein ernüchterndes Ergebnis.
zehntelsek := zehntelsek + 1;
if(zehntelsek = 10) then begin zehntelsek := 0; sekunden := sekunden + 1; if(sekunden = 60) then begin sekunden := 0; minuten := minuten + 1; end; end; Form1.LZehntelsek.Caption := inttostr(zehntelsek); Form1.LSekunden.Caption := inttostr(sekunden); Form1.LMinuten.Caption := inttostr(minuten); Eine Minute in realer Zeit entspricht nur 55 Sekunden in meinem Timer. Woran liegt das? Und ist das überhaupt der richtige Ansatz für einen Doppeltimer? Vielen Dank schonmal TheTommynator |
Re: Timer löst nicht regelmäßig aus
Setze mal das Timer-Intervall nach oben.
|
Re: Timer löst nicht regelmäßig aus
Dann lassen sich aber die Zehntelsekunden nicht mehr darstellen?!
|
Re: Timer löst nicht regelmäßig aus
Das musst du beim TTimer in Kauf nehmen. Es gibt bessere Timer, aber diese verbrauchen auch mehr Ressourcen.
|
Re: Timer löst nicht regelmäßig aus
Das wäre mir ja prinzipiell egal, da ich es nur für mich verwenden will.
Kannst du mir vielleicht einen solchen Timer sagen, der besser funktioniert? |
Re: Timer löst nicht regelmäßig aus
Suche mal nach dem Stichwort Multimedia-Timer. Davor solltest du allerdings etwas anderes überprüfen: Wie sieht die Zeit-Diskrepanz aus, wenn du nicht auf die Labels zugreifst, sondern lediglich das Ende der Minute mit einem ShowMessage signalisierst?
|
Re: Timer löst nicht regelmäßig aus
Du kannst ohne Probleme die 1/10tel Sekunden darstellen. Du darfst nur nicht davon ausgehen, das der Timer wirklich genau geht. Muss er ja auch nicht. Stell doch einfach die Differenz zwischen dem Start der Messung und der aktuellen Uhrzeit dar. DAS ist ja genau. Diese Zeit wird dann eben mehr oder weniger alle Schiessmichtotzehntelsekunden dargestellt.
|
Re: Timer löst nicht regelmäßig aus
Das klingt auch nach einem interessanten Lösungsansatz.
Im übrigen gibt es die Zeitdiskrepanz auch dann, wenn die Label nicht aktualisiert werden. |
Re: Timer löst nicht regelmäßig aus
Ich hab's jetzt mit folgender Komponente gelöst:
![]() Diese löst deutlich zuverlässiger aus, als TTimer. Vielen Dank an Alle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz