![]() |
Fehler "Kalenderzeit oder -datum konnte nicht gesetzt werden"
Moin,
mich plagt ein Problem mit einem TDateTimePicker. Ich verwende die Properties "MinDate" und "MaxDate". Möchte ich dann aber per Code den Wert "Date" auf "MaxDate" setzen, dann erhalte ich eine Exception "Kalenderzeit oder -datum konnte nicht gesetzt werden". Ich verstehe nicht ganz wie es zu diesem Fehler kommen kann. Schließlich will ich das "Date" ja lediglich auf den maximalen Wert einstellen. Was soll daran falsch sein? Kann mir bitte jemand sagen, ob ich hier etwas falsch mache und wenn ja was, oder ob die Komponente einen Bug hat.
Delphi-Quellcode:
Vielen Dank im Voraus für eine Erleuchtung.
procedure TForm1.Button1Click(Sender: TObject);
begin DateTimePicker1.MinDate := EncodeDate(2015, 11, 01); DateTimePicker1.MaxDate := EncodeDate(2015, 11, 30); DateTimePicker1.Date := DateTimePicker1.MinDate; // <- Das klappt DateTimePicker1.Date := DateTimePicker1.MaxDate; // <- Peng: Exception "Kalenderzeit oder -datum konnte nicht gesetzt werden" end; |
AW: Fehler "Kalenderzeit oder -datum konnte nicht gesetzt werden"
Tja, deshalb verwende ich nicht .date...
Der DateTimePicker verwendet IMMER TDateTime, also Datum + Uhrzeit, auch wenn nur Datum angezeigt wird. Wenn Du den TDateTimePicker beinhaltet der DateTime-Wert aktuelles Datum UND Uhrzeit. Beim Setzen von MinDate wird da nur das ganzzahlige Datum hinein geschrieben. Das gleiche bei MaxDate. Wenn Du nun .date das MinDate zuweist, dann wird im DateTime nur das Datum ausgetauscht, die Uhrzeit bleibt. -> Kein Problem, da MaxDate eh größer ist. Wenn Du aber .date das MaxDate zuweist, dann ist das DateTime durch die Uhrhzeit > wie MaxDate.. -> Peng ^^ Geh einfach hin und setzte .DateTime := .MaxDate und gut ist. Dann ist in DateTime das Maxdate mit 00:00:00, sprich kein Nachkommaanteil und somit dann DateTime nicht größer wie MaxDate. (Meine Vermutung, nicht im Source gesucht, da bei Delphi 6 kein 'Peng' kommt, es passiert einfach nicht.. ^^) |
AW: Fehler "Kalenderzeit oder -datum konnte nicht gesetzt werden"
Danke für die schnelle Antwort. Ja in der Tat, man muss "DateTime" nehmen. Ich hatte mich durch den Objektinspector in die Irre führen lassen, der zeigt nur "Date" an und da ich nur ein Datum handhabe, habe ich die Uhrzeit völlig vergessen. Vielen Dank noch mal.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz