Moin...
Wenn dieser Code im OnChange, wenn es so wäre, ausgeführt würde, hättest du eine Endlosschleife.
Delphi-Quellcode:
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
if datetimepicker1.DateTime < now then
begin
showmessage('Datum liegt in der Vergangenheit!!!');
datetimepicker1.DateTime := now; // hier würde wieder OnChange aufgerufen...macht der aber nicht.
end;