Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.065 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: DateTimePicker OnChange wird nicht ausgelöst

  Alt 26. Sep 2017, 08:39
Wenn du im DateTimePicker die Werte änderst, dann wird die Methode TDateTimePicker.CNNotify aufgerufen.
Hier drin wird je nach Windows-Message Datum und Uhrzeit gesetzt (TCommonCalendar.SetDate von der übergeordneten Klasse und TDateTimePicker.SetTime).
Anschließend wird TDateTimePicker.Change aufgerufen. In dieser Methode wird dein Event-Handler angesprochen, insofern du einen angefügt hast.

Wenn du bspw. DateTimePicker1.Date := Date; im Code schreibst, rufst du intern direkt SetDate auf und umgehst die Benachrichtigung durch den Event-Handler.
Du kannst dir Abhilfe schaffen, in dem du es folgendermaßen schreibst:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  DateTimePicker1.Date := Date;
  DateTimePicker1.OnChange(nil);
end;
  Mit Zitat antworten Zitat