Hallo zusammen,
ich habe hier ein seltsames Problem. In einer TDateTimePicker-Komponente möchte ich die Eingabe auf den folgenden Tag als kleinstes Datum beschränken. Dafür verwende ich MinDate. So weit funktioniert das auch. Zusätzlich möchte ich aber eine Warnmeldung ausgeben, sobald das eingegebene Datum innerhalb der nächsten Woche liegt. Dies habe ich versucht in der OnChange() unterzubringen:
<PRE>
DataChanged = true;
if (dtpKdTermin->Date <= TDateTime(TDateTime::CurrentDate().Val + 7))
{
ShowMessage("xxx");
}
ButtonEnabler();
</PRE>
Soweit funktioniert das auch noch. Aber sobald man auf den Monat-zurück-Button klickt (und NUR dann) wird die OnChange() immer und immer wieder aufgerufen, in einer Rekursion, wie es scheint. So lange, bis ein Stacküberlauf stattfindet...
Das Problem scheint der Zugriff auf dtpKdTermin->Date zu sein, der anscheinend den sofortigen Neuaufruf von OnChange zu Folge hat... Wenn ich die if(..)-Abfrage rauslasse, funktioniert's auch einwandfrei. Ich möchte die Meldung aber bereits bei der Eingabe ausgeben. Wie kann ich das realisieren?
Danke Jochen
ich habe hier ein seltsames Problem. In einer TDateTimePicker-Komponente möchte ich die Eingabe auf den folgenden Tag als kleinstes Datum beschränken. Dafür verwende ich MinDate. So weit funktioniert das auch. Zusätzlich möchte ich aber eine Warnmeldung ausgeben, sobald das eingegebene Datum innerhalb der nächsten Woche liegt. Dies habe ich versucht in der OnChange() unterzubringen:
<PRE>
DataChanged = true;
if (dtpKdTermin->Date <= TDateTime(TDateTime::CurrentDate().Val + 7))
{
ShowMessage("xxx");
}
ButtonEnabler();
</PRE>
Soweit funktioniert das auch noch. Aber sobald man auf den Monat-zurück-Button klickt (und NUR dann) wird die OnChange() immer und immer wieder aufgerufen, in einer Rekursion, wie es scheint. So lange, bis ein Stacküberlauf stattfindet...
Das Problem scheint der Zugriff auf dtpKdTermin->Date zu sein, der anscheinend den sofortigen Neuaufruf von OnChange zu Folge hat... Wenn ich die if(..)-Abfrage rauslasse, funktioniert's auch einwandfrei. Ich möchte die Meldung aber bereits bei der Eingabe ausgeben. Wie kann ich das realisieren?
Danke Jochen
Comment