AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Fehler "Kalenderzeit oder -datum konnte nicht gesetzt werden"

Fehler "Kalenderzeit oder -datum konnte nicht gesetzt werden"

Ein Thema von Zwirbel · begonnen am 11. Nov 2015 · letzter Beitrag vom 11. Nov 2015
Antwort Antwort
Zwirbel

Registriert seit: 17. Aug 2009
66 Beiträge
 
Delphi 11 Alexandria
 
#1

Fehler "Kalenderzeit oder -datum konnte nicht gesetzt werden"

  Alt 11. Nov 2015, 17:51
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:
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;
Vielen Dank im Voraus für eine Erleuchtung.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
971 Beiträge
 
Delphi 6 Professional
 
#2

AW: Fehler "Kalenderzeit oder -datum konnte nicht gesetzt werden"

  Alt 11. Nov 2015, 19:19
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.. ^^)
  Mit Zitat antworten Zitat
Zwirbel

Registriert seit: 17. Aug 2009
66 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Fehler "Kalenderzeit oder -datum konnte nicht gesetzt werden"

  Alt 11. Nov 2015, 19:31
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.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 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