Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TDateTime auf null bzw. invalid setzen (https://www.delphipraxis.net/204781-tdatetime-auf-null-bzw-invalid-setzen.html)

kagi3624 29. Jun 2020 07:09

Delphi-Version: 6

TDateTime auf null bzw. invalid setzen
 
Hallo, ich möchte meine TDateTime Variable bei einer ungültigen Eingabe auf Null, ungültig, was auch immer setzen, so dass wenn man diese variable ausgibt, der Bediener dann auch sieht, dass da was nicht stimmt. Wenn ich sie einfach auf 0 setze, habe ich 30.12.1899 mit der Uhrzeit 00:00:00,

KodeZwerg 29. Jun 2020 07:28

AW: TDateTime auf null bzw. invalid setzen
 
Nutz doch einfach einen anderen Datentyp, sagen wir mal String. Bei korrekter Eingabe wird das TDateTime erzeugt und bei falschen halt einen String.
Oder nutz einen DatePicker, damit lässt Du eh nur korrekten krams zu, den kann man ja so einstellen das halt das aktuelle Datum voreingestellt ist.
Nur so eine Idee.

hoika 29. Jun 2020 07:41

AW: TDateTime auf null bzw. invalid setzen
 
Hallo,
Zitat:

auf Null, ungültig, was auch immer setzen
Dann nimm doch einfach an, das 0 ungültig st,
schreib eine eigene DateToStr-Funktion, wo du das abprüfst.

kagi3624 29. Jun 2020 07:44

AW: TDateTime auf null bzw. invalid setzen
 
Ja, da ich eine Funktion habe, setze ich das auf Null und mache es über eine IF abfrage. Kann man so machen, habe ich grad gesehen. Danke!

Uwe Raabe 29. Jun 2020 08:37

AW: TDateTime auf null bzw. invalid setzen
 
Als NULL-Wert für ein TDateTime, der mit sehr hoher Wahrscheinlichkeit nicht mit einem realen Datumswert kollidiert, bietet sich
Delphi-Quellcode:
-DateDelta
an.
Delphi-Quellcode:
{ Days between 1/1/0001 and 12/31/1899 }

  DateDelta = 693594;
Das wäre dann auch der kleinste Wert, den ein TDateTime annehmen kann und noch als gültig durchgeht.

mkinzler 29. Jun 2020 08:46

AW: TDateTime auf null bzw. invalid setzen
 
Zitat:

Nutz doch einfach einen anderen Datentyp, sagen wir mal String.
Ganz schlechte Alternative.

Rollo62 29. Jun 2020 11:09

AW: TDateTime auf null bzw. invalid setzen
 
Ich (mis)brauche TDateTime für allerlei Dinge.
Auch z.B. für Stopuhr, Debounce, speziell formatierte Timestamps, etc.

Dafür habe ich mir einfach einen Helper geschrieben der das so umsetzt wie ich es brauche.
Der Vorteil ist das es intern und beim Speichern immer nur ein TDateTime ist und bleibt.


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