TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps
Ich habe 2 TDateTimePicker. Gerade fand ich heraus, dass die Dinger nur ENTWEDER die Zeit ODER das Datum anzeigen können.
Lästig, doch was soll's. Ich habe eben zwei, eines fürs Datum, das andere für die Zeit. War mir nicht klar ist: Wie funktionieren die intern? Ich habe fast den Eindruck, dass sie zwar nur eines anzeigen können, doch intern wohl Datum UND Uhrzeit speichern? Sie haben auch ein TDateTimePicker.DateTime neben .Date und .Time. Was sie tun sollen: Sie stehen bereit, auf dass sie entweder "now" enthalten oder der User eigene Werte eingeben kann. Auf ein ButtonClick Event rechnen sie dann diverse Perioden in die Zukunft. Kann mir jemand einen Rat geben, wie ich mit den beiden TDateTimePicker sauber und effizient arbeite? Wie gehe ich etwa damit um, wenn jemand EINES der Picker-Felder ändert? Muss ich die jeweils sofort synchronisieren? OnChange? Oder addiere ich nur einfah .Date und .Time? Wird das nicht für die Anzeige gesetzte automatisch zero? Danke! |
AW: TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps
Entweder verstehe ich das Problem nicht ganz oder du machst es zu kompliziert.
Delphi-Quellcode:
type
TForm1 = class(TForm) datePicker: TDateTimePicker; timePicker: TDateTimePicker; procedure handlePickerChange(Sender: TObject); private var selectedDateTime: TDateTime; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.handlePickerChange(Sender: TObject); begin if(Sender = datePicker) then ReplaceDate(selectedDateTime, datePicker.Date) else if(Sender = timePicker) then ReplaceTime(selectedDateTime, timePicker.Time); Caption := DateTimeToStr(selectedDateTime); end; |
AW: TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps
Bei den Property .Date und .Time einiger Komponenten mußt du aufpassen, da dort intern vergessen wurde das zu trennen und dann in Wirklichkeit TDateTime dort rein/raus geht.
Bei den DB-Komponenten hast du Glück, da sie sich über das gemeinsame TField gegenseitig synchronisieren, wenn Einer nen Teil ändert, dann läd der Andere den neuen Wert und nix geht verloren. Falls aus .Date bzw. .Time doch alles raus kommt, dann kannst beide Werte nicht einfach zusammenrechnen und musst selbst nochmal die Trennung vornehmen. DateOf und TimeOf
Delphi-Quellcode:
Ebenso wenn es nur einen Value-Property gibt, wo die Daten nicht eindeutig getrennt sind, dann sowieso das DateOf/TimeOf drumrum.
DateEdit.Date := Eingabe; // :=DateOf(Eingabe) wird nicht nötig sein
TimeEdit.Time := Eingabe; // :=TimeOf(Eingabe) wird nicht nötig sein ... bearbeiten, onchange oder sonstwie Ausgabe := DateOf(DateEdit.Date) + TimeOf(TimeEdit.Time); @Der schöne Günther: Wenn ich mich recht erinnere, dann speichert die Komponente intern das komplette Datum, inkl. Zeit. Beim Auslesen kann man .Date und .Time verwenden, aber da war "früher" die Trennung vergessen wurden und diese Property gaben immer das komplette DateTime raus. (k.A. ob das inzwischen repariert wurde) |
AW: TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps
Danke für die Antworten! Insb. Günter, der eine ganze Methode stiftete.
So werde ich es machen! Cheryll |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 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