Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probleme mit DateTimePicker (https://www.delphipraxis.net/128158-probleme-mit-datetimepicker.html)

torf160 25. Jan 2009 11:56


Probleme mit DateTimePicker
 
Hallo,

ich komme mit dem DateTimePicker (Delphi 3) nicht zurecht.

In folgendem Beispiel ist immer ein doppelter Klick
auf den OK-Button nötig und ich hab keine Idee warum das so ist.

Delphi-Quellcode:
procedure TForm2.DateTimePicker1Change(Sender: TObject);
var d1, d2 : TDateTime;
    i     : real;
begin
 d1 := Date;
 d2 := DateTimePicker1.Date;
 i := d2 - d1;
 if i < 2 then
 begin
   showmessage('Der Liefertermin muss mind. 2 Tage in der Zukunft liegen');
   DateTimePicker1.Date := LieferTermin;
 end
 else begin
   LieferTermin := DateTimePicker1.Date;
 end;
end;
Wenn ich versuche der Eigenschaft MinDate einen Wert zuzuweisen, bekomme ich immer die Fehlermeldung, dass das Datum das Minimum von "30.12.1899" unterschreitet.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var d :TDateTime;

begin
  d := Date + 2;
  DateTimePicker1.Date := d;  // funktioniert wie erwartet
  DateTimePicker1.MinDate := d;  // führt zu der Fehlermeldung
end;
Was mache ich da falsch???

Ich hoffe, Ihr könnt mir weoterhelfen.

torf160

mkinzler 25. Jan 2009 12:02

Re: Probleme mit DateTimePicker
 
Besser
Delphi-Quellcode:
var d1, d2 : TDate;
...
d2 := Trunc(DateTimePicker1.Date);
Delphi-Quellcode:
var d :TDate;

torf160 26. Jan 2009 06:58

Re: Probleme mit DateTimePicker
 
Zitat:

Besser
Delphi-Quellcode: markieren
var d1, d2 : TDate;
...
d2 := Trunc(DateTimePicker1.Date);


Delphi-Quellcode: markieren
var d :TDate;

Das ist aber eher kosmetischer Natur.
An den Problemen ändert sich dadurch nichts.

Ich konnte mir nun erstmal helfen, indem ich die Prüfung
in das OnCloseUp (?) Ereignis verschoben habe.
Nun funktioniert es wie gewünscht.

Es würde mich aber schon inetressieren, wie die MinDate-Eigenschaft
mit einem Wert belegt werden kann, ohne dass es zu dem Fehler kommt.

himitsu 26. Jan 2009 07:09

Re: Probleme mit DateTimePicker
 
Wie/Wo ist denn LieferTermin definiert? (vorallem mit welchem Wert)

wenn ich die Zeilen mit LieferTermin auskommentier, dann bekomm ich keine Fehlermeldungen.

quendolineDD 26. Jan 2009 13:30

Re: Probleme mit DateTimePicker
 
Ich weiß das ich den Fehler schon einmal selber erhalten habe, aber leider nicht, wie ich ihn entfernen konnte. Weder in Delphi 2007 noch in Delphi 7 hab ich Probleme, die Zeilen Quelltext zu komplieren. Es klappt im OnCreate der Form sowie durch Zuweisung über einen Button.

torf160 1. Feb 2009 16:44

Re: Probleme mit DateTimePicker
 
@himitsu:

Der Liefertermin ist als Globale Variable in einer anderen Unit definiert
Delphi-Quellcode:
LieferTermin : TDateTime;
Initialisiert wird die Variable beim Programmstart
Delphi-Quellcode:
 
LieferTermin := Date + 2;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 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