AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps

TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps

Ein Thema von NicoleWagner · begonnen am 25. Feb 2020 · letzter Beitrag vom 25. Feb 2020
Antwort Antwort
NicoleWagner

Registriert seit: 6. Jul 2010
89 Beiträge
 
Delphi XE3 Professional
 
#1

TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps

  Alt 25. Feb 2020, 16:33
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!
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.220 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps

  Alt 25. Feb 2020, 16:47
Entweder verstehe ich das Problem nicht ganz oder du machst es zu kompliziert.
  • Einen Picker fürs Datum, einen für die Zeit
  • Gib beiden den gleichen OnChange -Handler (hier "handlePickerChange")
  • Speichere dir das vom Benutzer ausgewählte TDateTime in einer eigenen Variable:

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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.840 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps

  Alt 25. Feb 2020, 16:50
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.
Delphi-Referenz durchsuchenDateOf und Delphi-Referenz durchsuchenTimeOf

Delphi-Quellcode:
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);
Ebenso wenn es nur einen Value-Property gibt, wo die Daten nicht eindeutig getrennt sind, dann sowieso das DateOf/TimeOf drumrum.

@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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (25. Feb 2020 um 16:55 Uhr)
  Mit Zitat antworten Zitat
NicoleWagner

Registriert seit: 6. Jul 2010
89 Beiträge
 
Delphi XE3 Professional
 
#4

AW: TDateTimePicker - TDate und oder TTime? - bitte um Arbeitstipps

  Alt 25. Feb 2020, 17:19
Danke für die Antworten! Insb. Günter, der eine ganze Methode stiftete.
So werde ich es machen!

Cheryll
  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 09:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf