Einzelnen Beitrag anzeigen

Michael II
Online

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
732 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: auf Datumsänderung reagieren

  Alt 23. Apr 2017, 16:09
Ja Helmi

die Windowsmessage WM_TIMECHANGE wird immer dann gefeuert, wenn an der Systemzeit geschraubt wird.

Du kannst es auch leicht testen. Knall ein TApplicationEvents auf ein Form, wähle ApplicationEvents1.OnMessage und ergänze:

Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if Msg.message = WM_TIMECHANGE then
  begin
    ShowMessage( 'Aber Hallo' );
    Handled := true;
  end;
end;
...und nun änderst du die Zeit auf deinem Compi. Dein Programm meldet sich mit "Aber Hallo".

WM_TIMECHANGE hilft dir also nix.

Wie erwähnt: In Extremis könntest du einen Timer mit Intervall round((1-frac(now))*24*60*60*1000) starten und würdest so benachrichtigt, wenn ein neuer Tag beginnt. Problem gelöst mit einem Einzeiler. [Wenn du dem Zeitmesser auf deiner Kiste nicht traust, dann kannst du ja häufiger checken .]
Michael Gasser

Geändert von Michael II (23. Apr 2017 um 16:12 Uhr)
  Mit Zitat antworten Zitat