Seite 1 von 1

Problem mit DateTimePicker

Verfasst: Mo Nov 18, 2019 4:50 pm
von volumeman_viersen
Hallo zusammen,

ich habe mir ein Formular erstellt, in dem ich einen TDateTimePicker verbaut habe... ich würde gerne jetzt das Datum in einer Variable gespeichert haben, da ich dieses Variable in eine E-Mail einbauen möchte.

Ich habe am DateTimePicker nicht groß geändert, außer den Name in datetimefeld.

Im Code habe ich dann folgendes verwendet:

Code: Alles auswählen

  SetVarContent('INPUT_NEUER_MA_STARTDATUM', datetimefeld.Date) 
Beim absetzen des Befehls wie im Code-Tag kommt folgendes heraus: 43787,3973733218

Laut ObjectInspector soll dieses Feld (Date) eigentlich den 18.11.2019 ausgeben... tuts aber nicht...

Lasse ich das .Date im SetVarContent weg kommt lediglich "871273456" heraus...

Code: Alles auswählen

  SetVarContent('INPUT_NEUER_MA_STARTDATUM', datetimefeld) 


Was muss ich tun, damit ich jetzt tatsächlich den 18.11.2019 angezeigt bekomme???

Vielen dank im voraus!

Re: Problem mit DateTimePicker

Verfasst: Mo Nov 18, 2019 6:43 pm
von ngottschalk
Hi Volumeman,

das hat alles seine Richtigkeit, intern wird hier der DateTime Typ verwendet, der auf Gleitkommazahlen basiert (http://docs.embarcadero.com/products/ra ... eTime.html). Um die Zahl in ein Datum umzuwandeln reicht es, ein Typecasting mittels "DateToStr" durchzuführen. Folgender Beispielcode hat problemlos funktioniert:

setvarcontent('EXAMPLE',DateTimePicker1.Date);
showmessage(DateToStr(getvarcontent('EXAMPLE')));

Das Format kann hierbei nach Belieben vorher angepasst werden.

Re: Problem mit DateTimePicker

Verfasst: Di Nov 19, 2019 8:51 am
von FBiehn
Wieso wurde das Format so gewählt? Ganzzahl steht für Tage seit 30.12.1899 und Nachkommastellen für die Uhrzeit. Ganz einfach: Microsoft hat das so gewählt. Und wieso Microsoft das so gemacht hat, kann man schön hier nachlesen.

Re: Problem mit DateTimePicker

Verfasst: Di Nov 19, 2019 9:01 am
von volumeman_viersen
Guten Morgen zusammen,

hat super funktioniert... danke für präzise Auskunft... :D

Noch ein weitere Frage im Zusammenhang mit DateTimePicker.
Beim Start das heutige Datum als "Startdatum" festlegen? Im Moment nimmt er das gestrige Datum...
In den Eigenschaften des DateTimePickers habe ich dazu nix gefunden (bzw. ich bin einfach nur unwissend)...
Kann oder muss ich es im Code einstellen oder wie und wo mache ich das?

Re: Problem mit DateTimePicker

Verfasst: Di Nov 19, 2019 9:04 am
von FBiehn
DateTimePicker1.Date := Now(); oder wenn man gleich die Nachkommastellen wegen der Uhrzeit entfernt haben will, dann nimmt man Trunc(Now()); - Trunc wirft alle Nachkommastellen weg, sodass man tatsächlich nur noch den Datumsanteil hat.

Re: Problem mit DateTimePicker

Verfasst: Di Nov 19, 2019 11:13 am
von volumeman_viersen

Code: Alles auswählen

datetimefeld.Date:= Trunc(Now()); 
Der läuft bei mir in einen Syntaxfehler... Beim wegklicken der Meldung (bin noch im Editor und haben einen Syntax-Check drüber laufen lassen) springt er mir dann in den MainUnit und markiert mir da die uses in rot?

Muss da noch etwas hinzugefügt werden?

EDIT:
nachdem ich es in einem OKButtonClick nach dem begin eingefügt hatte, war der Syntax ok. ABER nach dem Klick auf OK ist ja zu spät... er soll es direkt beim "Starten des Forms" laden. Wo muss ich das plazieren?

Gibts irgendwo noch Anleitungen die man sich mal als Bettlektüre ansehen kann?

EDIT2:
Habe es mit einem "On Create"-Event gelöst... jetzt funktioniert es wie gewünscht :D
Thx an alle