Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Komme nicht weiter mit Zeitvergleichen? (https://www.delphipraxis.net/141933-komme-nicht-weiter-mit-zeitvergleichen.html)

Sharky 19. Okt 2009 13:44

Re: Komme nicht weiter mit Zeitvergleichen?
 
Zitat:

Zitat von AlexII
Ich muss das leider genau haben, also = :gruebel: Dann muss ich wohl die Sekunden streichen.

Nicht die Sekunden! Die Millisekunden.
Einfacher Ablauf:

* Speichere in Einer Variablen (TDateTime) wann der "Termin" ist.
* Lasse alle 250 ms deinen Timer Event starten
* Extrahiere Dir aus Now Stunden: Minuten: Sekunden.
* Vergleiche das mit deiner Variable.

Frankfurtoder 19. Okt 2009 13:47

Re: Komme nicht weiter mit Zeitvergleichen?
 
Zitat:

Zitat von AlexII
Wo kriegt man sie her? :shock:

Ist seit D6 dabei und vorher waren solche Funktionen in System meine ich. Du hast leider keine Delphi Version angegeben.

Sir Rufo 19. Okt 2009 13:47

Re: Komme nicht weiter mit Zeitvergleichen?
 
Zitat:

Zitat von AlexII
Zitat:

Zitat von DeddyH
Wirf doch einfach mal einen Blick in die Unit DateUtils, da steht viel Nützliches für Deine Zwecke drin.

Wo kriegt man sie her? :shock:

also ich geb hier jetzt auf ... :roll:

Medium 19. Okt 2009 13:50

Re: Komme nicht weiter mit Zeitvergleichen?
 
Ich brech echt zusammen... so schwierig ist des doch nu echt nicht. Du wirst wohl kaum einen Wecker auf die Millisekunde genau brauchen!? Lass einen Timer halt jede Sekunde prüfen ob "now" größer-gleich dem Weckzeitpunkt ist, und im Timer dann klingeln an, und Timer aus. Bams. Spätestens mit einer Sekunde und ner Hand voll Millisekunden Verspätung klingelt dein Wecker, und zwar genau ein Mal bis er wieder eingeschaltet wird.

Wenn du es nicht verstehen WILLST, nimm doch bitte einfach erstmal hin, dass Gleichheit bei Fließkommawerten fast immer ein Glücksspiel ist, dass man gerade beim Arbeiten mit Zeitwerten praktisch nicht gewinnen kann. Du wirst in der Praxis nie genau die eine Millisekunde mit deinem Timer treffen, völlig egal wie kurz du das Intervall stellst. Das liegt in der "Natur" der Sache.

Und falls noch nicht ganz klar ist warum Datums-/Zeitwerte Fließkommawerte sind: TDateTime = Double; So ist es definiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:39 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz