Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit DATETIMEPICKER (https://www.delphipraxis.net/120883-problem-mit-datetimepicker.html)

hgiel 18. Sep 2008 09:30


Problem mit DATETIMEPICKER
 
Hallo,

ich möchte eine Datumeingabe überprüfen - sie soll über einen Datetimepicker oder direkt geändert werden und soll NICHT in der Vergangenheit (in Bezug auf das aktuelle Datum liegen):

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
if datetimepicker1.DateTime<now then
begin
showmessage('Datum liegt in der Vergangenheit!!!');
datetimepicker1.DateTime:=now;
end;
end;

Die Routine erkennt korrekt, ob das geänderte Datum in der Vergangenheit liegt und meldet dies auch!

2 Fragen:
Ich muss die showmessage 2 mal mit ENTER oder OK-klick bestätigen - warum???
Ich wollte das Datum dann auf das aktuelle Datum korrigieren - klappt aber nicht: das falsche Datum wird weiterhin angezeigt!

Gruss

HGIEL

Billa 18. Sep 2008 09:41

Re: Problem mit DATETIMEPICKER
 
Warum nutzt Du nicht die property "MinDate" ?

toms 18. Sep 2008 09:45

Re: Problem mit DATETIMEPICKER
 
Hallo hgiel

Ich kann das Verhalten sowohl unter D6 als auch D2009 nicht reproduzieren.
Könntest du eine kleines Demo-Projekt hochladen?

Davon abgesehen gibt es eine MinDate Eigenschaft.

hgiel 18. Sep 2008 09:46

Re: Problem mit DATETIMEPICKER
 
MINDATE ist die Lösung!

Danke!

DelphiKlaus 18. Sep 2008 10:02

Re: Problem mit DATETIMEPICKER
 
Hallo hgiel,

dass Du zweimal auf die Enter-Taste drücken musstest, lag daran, dass Du in der Change-Methode das Datum korrigierst hast. Und da wurde das Ereignis erneut ausgelöst. Mittlerweile war etwas Zeit vergangen und da Du mit der kompletten Zeit und nicht nur mit dem Datum verglichen hast, erschien die Meldung ein zweites Mal

MfG

Klaus

toms 18. Sep 2008 10:14

Re: Problem mit DATETIMEPICKER
 
Zitat:

Zitat von DelphiKlaus
dass Du zweimal auf die Enter-Taste drücken musstest, lag daran, dass Du in der Change-Methode das Datum korrigierst hast. Und da wurde das Ereignis erneut ausgelöst.

Hallo Klaus, OnChange wird nicht ausgelöst, wenn das Datum per Code zugewiesen wird. (zumindest bei mir nicht)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz