Ich habe es über eine Globalvariable gelöst:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls;
type TForm1 = class(TForm) DateTimePicker1: TDateTimePicker; procedure DateTimePicker1Enter(Sender: TObject); procedure DateTimePicker1Change(Sender: TObject); private public end;
var Form1: TForm1; GlobalDate : TDateTime; implementation
{$R *.DFM}
procedure TForm1.DateTimePicker1Enter(Sender: TObject); begin GlobalDate := DatetimePicker1.Date; end;
procedure TForm1.DateTimePicker1Change(Sender: TObject); begin
if DateTimePicker1.Date-GlobalDate<-25 then DateTimePicker1.Date := GlobalDate+1 else if DatetimePicker1.Date-GlobalDate>25 then DatetimePicker1.Date := GlobalDate-1;
GlobalDate := DateTimePicker1.Date; end;
end. |
Ein Problem ist dabei die Behandlung, wenn ich mit den +/- - Tasten Monat oder Jahr ändern will. Das geht nicht. Komischerweise geht er nicht zur OnKeypress Routine. Muss mal schauen, was man da machen kann, ist aber wohl eher eine Krücke. Interessanterweise ist das +/- bei Tagen in Ordnung. Dann läuft der Tag auch weiter, wenn ich + drücke. Nur bei Monat und Tag kommt Müll raus.
Toleranz ist eine Grundvoraussetzung für das Leben.