Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auf Datumswechsel reagieren (https://www.delphipraxis.net/148852-auf-datumswechsel-reagieren.html)

Reinhard Kern 10. Mär 2010 09:31

Re: Auf Datumswechsel reagieren
 
Zitat:

Zitat von Jens Hartmann
Du legst beim Start den Interval bis zum nächsten Datumswechsel (24:00:00 Uhr) fest. Dann im TimerOn Ereignis den Interval auf 24 Stunden später.

Hallo,

das hat allerdings den Nachteil, dass nur reguläre Datumswechsel erkannt werden, aber keine manuelle Verstellung oder Umstellung auf die bescheuerte Sommer/Winterzeit. Daher würde ich doch etwa jede Minute mal nachschauen, die Belastung für das System durch einen Aufruf von GetTime ist verschwindend.

Gruss Reinhard

Luckie 10. Mär 2010 10:02

Re: Auf Datumswechsel reagieren
 
Zitat:

Zitat von maximus Caesar
Zitat:

Zitat von Luckie
Das ist ja auch in Ordnung. Was mich nur stört ist, dass so was immer ohne Begründung da steht.

Jup, hätt ich dazu schreiben sollen.

Ja und was ist jetzt die Begründung?

maximus Caesar 10. Mär 2010 10:33

Re: Auf Datumswechsel reagieren
 
Das ich wenn möglich lieber auf eine Meldung des Systems reagire als einen Timer zu benutzen, wie bereits vermutet.
Kannte zwar den Begriff Polling noch nicht, aber genau das wollte ich vermeiden.

DeddyH 10. Mär 2010 10:36

Re: Auf Datumswechsel reagieren
 
Aber welche Message sollte das sein? Angenommen, Windows würde per Broadcast alle Fenster informieren, wenn sich die Zeit geändert hat, dann käme es ja zu nix anderem mehr, denn die Zeit ändert sich ja ständig.

maximus Caesar 10. Mär 2010 10:43

Re: Auf Datumswechsel reagieren
 
Mit der Zeit hab ich ja auch nicht gerechnet. Mir war nur das Datum wichtig, und habe gehofft das Windows beim Datumswechsel eine entsprechende Information sendet.

DeddyH 10. Mär 2010 10:50

Re: Auf Datumswechsel reagieren
 
Versteh mich nicht falsch, ich kann Dein Ansinnen ja nachvollziehen, aber wenn es dafür eine Message geben sollte (ich kenne keine, aber das muss ja nichts heißen), dann müsste es konsequenterweise auch eine für Monats-/Jahreswechsel geben. Spinnt man das etwas weiter, komme ich auf Stunden, dann Minuten, dann Sekunden usw., denn es gibt immer jemanden, der das gerne auswerten würde ;)

Sharky 10. Mär 2010 10:54

Re: Auf Datumswechsel reagieren
 
Hai,


bekomme ich das nicht über DTN_DATETIMECHANGE in einem WM_NOTIFY mit?

DeddyH 10. Mär 2010 10:57

Re: Auf Datumswechsel reagieren
 
Zitat:

DTN_DATETIMECHANGE
This message is sent by a date and time picker (DTP) control whenever a change occurs. It is sent in the form of a WM_NOTIFY message.
Sieht nicht so aus, oder ich hab einen Artikel überlesen.

Jens Hartmann 10. Mär 2010 12:16

Re: Auf Datumswechsel reagieren
 
Zitat:

Zitat von Reinhard
Zitat:

Zitat von Jens Hartmann hat folgendes geschrieben:
Du legst beim Start den Interval bis zum nächsten Datumswechsel (24:00:00 Uhr) fest. Dann im TimerOn Ereignis den Interval auf 24 Stunden später.

Hallo,

das hat allerdings den Nachteil, dass nur reguläre Datumswechsel erkannt werden, aber keine manuelle Verstellung oder Umstellung auf die bescheuerte Sommer/Winterzeit. Daher würde ich doch etwa jede Minute mal nachschauen, die Belastung für das System durch einen Aufruf von GetTime ist verschwindend.

Gruss Reinhard

Da gebe ich Dir recht. Nur wie gesagt, es kommt immer auf die Genauigkeit an. Wenn ich zweimal im Jahr darauf verzichten kann, das eine Stunde Zeitverschiebung OK ist, dann gut. Ich würde ja die Berechnung auch jeden Tag neu ausführen lassen. Ansonsten habe ich das Problem, das der Timer gegebüber der Rechnerzeit verläuft.

Gruß Jens

s.h.a.r.k 10. Mär 2010 12:20

Re: Auf Datumswechsel reagieren
 
Bau dir halt eine Polling-Klasse, die dir dann eine Message schickt (oder eine Callback-Möglichkeit bereitstellt), wenn ein neuer Tag anbricht, oder wenn der User die Zeit geändert hat. Diese Klasse kommt dann in die Codelib und jedem ist geholfen :mrgreen:

BTW: Wie ist das eigentlich wenn Windows die Zeit synchronisiert? Wird da auch eine Message geschickt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:18 Uhr.
Seite 2 von 3     12 3      

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