Announcement

Collapse
No announcement yet.

DateTimePicker Date auf MaxDate setzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DateTimePicker Date auf MaxDate setzen

    Hallo an alle,

    Ich habe folgendes Problem. Ich will eigentlich nur folgende Funktionalität implementieren:
    "Wenn ZielDate größer MaxDate dann Date gleich MaxDate, ansonsten Date gleich ZielDate"

    Das Problem entsteht im Fall, dass ich Date auf MaxDate setzen will:
    Code:
    DTP_Date->Date = DTP_Date->MaxDate;
    Eigentlich ganz simpel, nur leider funktioniert es nicht. Er setzt den Wert "Date" zwar richtig, aber zeigt im DateTimePicker trotzdem noch das gleiche Datum an, was er zuvor hatte.

    Der Anzeigefehler entsteht nur, wenn Date und MaxDate den gleichen Tag enthalten:
    Code:
    DTP_Date->Date = DTP_Date->MaxDate + 1;
    wirft ein Exception und
    Code:
    DTP_Date->Date = DTP_Date->MaxDate - 1;
    funtioniert ohne Probleme.

    Ich will aber wirklich genau das Datum auf das höchstmögliche Datum setzen und nicht einen Tag davor...

    Gibt es dafür eine Lösung? Ich habe bereits versuch Repaint() und Refresh() aufzurufen, hat aber nichts gebracht.

  • #2
    procedure TCommonCalendar.SetMaxDate(Value: TDate);
    begin
    if (FMinDate <> 0.0) and (Value < FMinDate) then
    raise CalExceptionClass.CreateFmt(SDateTimeMin, [DateToStr(FMinDate)]);
    if FMaxDate <> Value then
    begin
    SetRange(FMinDate, Value);
    FMaxDate := Value;
    end;
    end;

    Hier siehst Du das dein Wert kleiner als MaxDate sein muß.
    Immer mal in den Sourcen nachschauen wenn einem was nicht klar ist.
    Leite eine eigene Klasse ab und ändere SetMaxDate auf <=.

    gruß Fred

    Comment

    Working...
    X