Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Timer löst nicht regelmäßig aus (https://www.delphipraxis.net/121735-timer-loest-nicht-regelmaessig-aus.html)

TheTommynator 3. Okt 2008 13:50


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:
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);
Ein Test des Codes brachte allerdings ein ernüchterndes Ergebnis.

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

Apollonius 3. Okt 2008 13:54

Re: Timer löst nicht regelmäßig aus
 
Setze mal das Timer-Intervall nach oben.

TheTommynator 3. Okt 2008 13:56

Re: Timer löst nicht regelmäßig aus
 
Dann lassen sich aber die Zehntelsekunden nicht mehr darstellen?!

Apollonius 3. Okt 2008 14:00

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.

TheTommynator 3. Okt 2008 14:02

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?

Apollonius 3. Okt 2008 14:05

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?

alzaimar 3. Okt 2008 14:18

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.

TheTommynator 3. Okt 2008 14:33

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.

TheTommynator 3. Okt 2008 15:04

Re: Timer löst nicht regelmäßig aus
 
Ich hab's jetzt mit folgender Komponente gelöst:

http://www.delphipraxis.net/internal...t.php?t=103162

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