AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Timer läuft ab Mitternacht rückwärts
Thema durchsuchen
Ansicht
Themen-Optionen

Timer läuft ab Mitternacht rückwärts

Ein Thema von MisterIXI · begonnen am 1. Sep 2015 · letzter Beitrag vom 2. Sep 2015
 
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

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

  Alt 1. Sep 2015, 15:00
Ich weiß nicht wie genau du es brauchst. Ist die Regelmäßigkeit wichtig? Dann ist ein Timer (bzw. GetTickCount() ) nicht grade die beste Wahl, denn das ist, glaube ich, nur auf eine 64stel-Sekunde genau. Daher würde ich auch auf den Interval des Timers aufpassen, sodass es am besten glatt aufgeht.

Oder ist dir die Erfassung der genauen Zeitspanne wichtig? Dann würde ich nicht mit TDateTime arbeiten, da treten ja schon Rundungsfehler bei Millisekunden auf. Für die Erfassung eines Zeitbereichs gibt es TTimeSpan, da kannst du bequem bis auf Ticks heruntergehen:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
   tickCount:   DWORD;
   ticksPassed: Int64;
begin
   tickCount := WinApi.Windows.GetTickCount();
   ticksPassed := (tickCount - lastTickCount) * TTimeSpan.TicksPerMillisecond;
   timePassed := timePassed.Add( TTimeSpan.Create(ticksPassed) );

   Caption := String.Format(
      'Time passed: %.2d:%.2d:%.2d (%d ms, %d ticks)', [
      timePassed.Hours,
      timePassed.Minutes,
      timePassed.Seconds,
      timePassed.MilliSeconds,
      timePassed.Ticks
   ]);
   lastTickCount := tickCount;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   timePassed := TTimeSpan.Zero;
   lastTickCount := Winapi.Windows.GetTickCount();
end;
Da sieht man auch ganz gut wie es mit einem Timer-Intervall von 750ms immer glautt aufgeht, mit 700 allerdings krumm wird. Kurz nachrechnen, eine 64stel-Sekunde sind 15,625 ms, jepp, geht bei 750 glatt auf, bei 700 nicht.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 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