Du könntest es vielleicht mit einer Interceptor Class erreichen, die das CN_NOTIFY abfängt:
Delphi-Quellcode:
type
TDateTimePicker =
class(
Vcl.ComCtrls.TDateTimePicker)
private
procedure CNNotify(
var Message: TWMNotifyDT);
message CN_NOTIFY;
end;
procedure TDateTimePicker.CNNotify(
var Message: TWMNotifyDT);
var
DT: TDateTime;
begin
DT := DateTime;
if (
Message.NMHdr^.code = DTN_DATETIMECHANGE)
and (
Message.NMDateTimeChange^.dwFlags = GDT_VALID)
then begin
DT := SystemTimeToDateTime(
Message.NMDateTimeChange^.st);
end;
inherited;
DateTime := DT;
end;