Frage zu DateTimePicker->Time



  • Hi,

    muss bei der Verwendung von DateTimePicker irgendetwas spezielles beachtet werden?

    Hab eine Form mit MonthCalendar und DateTimePicker. Im MonthCalendar wird das Datum eingestellt, im DateTimePicker die Zeit( Kind = dtkTime ). Macht ja auch Sinn so 🕶 .
    Jetzt aber folgendes: Nachdem im DateTimePicker eine Zeit eingestellt wurde, und die Form geschlossen wird, speichere ich mir den Wert. Beim nächsten öffnen der Form ist der Wert noch da, aber eine Zuweisung der Zeit zum DateTimePicker bewirkt die Anzeige 00:00( 07:00 bei FormClose ).

    Habs auch schon mit ...Time.TimeString() versucht, auch nix 😮

    Muss 'Time' hier noch formatiert werden? Oder woran könnte es liegen

    😕 😕 😕

    grüssle 🙂



  • zeig mal den Quellcode für das speichern des Wertes und das wieder zuweisen

    folgendes funktioniert bei mir ohne Probleme:

    DateTimePicker1->Time = TDateTime(8,0,0,0); //08:00:00 wird im DateTimePicker angezeigt
    


  • Quellcode( vereinfacht ):

    TDateTime dt;

    wenn Form mit OK beendet wird:
    dt = Form->DateTimePicker1->Time;

    wenn Form wieder geöffnet wird:
    Form->DateTimePicker1->Time = dt;

    Sollte doch funktionieren, oder?

    grüssle 🙂



  • eigenlich schon, aber gehört die Variable dt zu dem Formular welches du schließt oder ist sie Global oder gehört sie zu einem anderen Form? Worauf ich hinauswill: wenn du den Wert wieder zuweist ist auch wirklich noch das drin was du da rein gespeichert hast?



  • Linnea schrieb:

    eigenlich schon, aber gehört die Variable dt zu dem Formular welches du schließt oder ist sie Global oder gehört sie zu einem anderen Form? Worauf ich hinauswill: wenn du den Wert wieder zuweist ist auch wirklich noch das drin was du da rein gespeichert hast?

    ohne jetzt kilometerlangen Code zu posten:

    Der DateTimePicker sitzt auf Form2, das von Form1 aufgerufen wird. dt gehört zu Form1.

    Der Wert ist nach dem einstellen der Zeit im DateTimePicker( 07:00 ) und Schliessen der Form 2: 14336
    Habe extra nochmal ein OnChange für den Picker erstellt, bei 07:00 ist der Wert 14336, passiert also nichts während des schliessens.

    Der Wert ist nach dem erneuten Aufruf der Form2: ( Form 1 )dt = 14336

    Ich versteh's nicht mehr. Ist denn DateTimePicker->Time ReadOnly? Hab ich da was verpasst?
    In der Hilfe steht nichts davon!?

    Kollidiert da irgendwas mit dem MonthCalendar? Kann das überhaupt sein?
    Ich dacht immer, wo Time draufsteht ist auch Time drin 🙄

    Und vor allem: Bin ich der erste, der dieses Problem hat 😮

    grüssle 🙂



  • wenn in deiner Time-Variable ein Wert von 14336 steht ist die Zeit auf jedenfall 00:00, da die Kommastellen normalerweise den Zeitanteil darstellen und alles vor dem Komma die Tage seit dem 31.12.1899 sind

    außerdem speichern sowohl der DateTimePicker wie auch der Monthkalendar immer die komplette Datum/Zeit ab, d.h. es muß sich in beiden eine Dezimalzahl befinden (in der TDateTime-Variable)


Anmelden zum Antworten