![]() |
Maxdate beim DateTimePicker wieder entfernen
Hallo,
Wenn ich einen DateTimePicker durch das MaxDate eingeschränkt habe, wie kann ich ihm wieder sagen das er das MaxDate ignorieren soll bzw. wie muß ich das Maxdate setzten damit er nach oben hin wieder offen ist?? schon mal vielen Dank im vorraus. mfg Lordcroc |
Re: Maxdate beim DateTimePicker wieder entfernen
Hallo,
folgendermassen:
Delphi-Quellcode:
uses
Variants; ... DateTimePicker1.MaxDate:=null; ... |
Re: Maxdate beim DateTimePicker wieder entfernen
funktioniert leider nicht.
Er sagt mir dann "ungültige Variant-Typenumwandlung" |
Re: Maxdate beim DateTimePicker wieder entfernen
Hallo,
komisch, bei mir kommt keine Fehlermeldung. Ansonsten hilft dann nur noch das maximal mögliche Datum einzustellen: 31.12.9999 |
Re: Maxdate beim DateTimePicker wieder entfernen
Delphi-Quellcode:
// TDateTime, TDate und TTime wird intern als DOUBLE gespeichert
// deshalb: DateTimePicker1.MaxDate:=0.0; |
Re: Maxdate beim DateTimePicker wieder entfernen
Zitat:
das mit dem soweit wie möglich in die Zukunft setzten funktioniert, nur leider finde ich ist es nicht die sauberste lösung. Falls jemand noch ne Idee hat, dann einfach Posten. mfg lordcroc |
Re: Maxdate beim DateTimePicker wieder entfernen
Hallo,
auch wenn Du bei MaxDate kein Datum einsetzt, ist das maximal mögliche Datum mit dem Typ TDateTime der 31.12.9999. Also macht es in diesem Fall keinen Unterschied, ob MaxDate ein Datum zugewiesen wird oder nicht. |
Re: Maxdate beim DateTimePicker wieder entfernen
Zitat:
Delphi-Quellcode:
procedure TCommonCalendar.SetRange(MinVal, MaxVal: TDate);
var STA: packed array[1..2] of TSystemTime; Flags: DWORD; TruncDate, TruncEnd, TruncMin, TruncMax: Int64; begin Flags := 0; TruncMin := Trunc(MinVal); TruncMax := Trunc(MaxVal); TruncDate := Trunc(FDateTime); TruncEnd := Trunc(FEndDate); if TruncMin <> 0 then begin if TruncDate < TruncMin then SetDate(MinVal); if TruncEnd < TruncMin then SetEndDate(MinVal); Flags := Flags or GDTR_MIN; DateTimeToSystemTime(TruncMin, STA[1]); end; // das MaxDate ist in Variable TruncMax // da beim "Löschen" von MaxDate der Wert = 0 ist, // wird folgende IF-Abfrage nicht ausgeführt // also hat das Setzen von MaxDate auf 0 keine Auswirkung if TruncMax <> 0 then begin if TruncDate > TruncMax then SetDate(MaxVal); if TruncEnd > TruncMax then SetEndDate(MaxVal); Flags := Flags or GDTR_MAX; DateTimeToSystemTime(TruncMax, STA[2]); end; if HandleAllocated then if not MsgSetRange(Flags, @STA[1]) then raise ECommonCalendarError.CreateRes(@sFailSetCalMinMaxRange); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 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