AW: TDateTimePicker parseInput und onUserInput
Heute, 15:27
Hallo Uwe,
eigentlich genau wie beschrieben.
Nimm ein TDateTimePicker und setze es auf die Form.
Schalte die Eigenschaft parseInput auf TRUE.
Nun kannst in der UI den gesamten Text überschreiben anstatt nur Tag, Monat oder Jahr.
Die Auswahl funktioniert aber nur wenn mit der Maus auf eine freie Fläche geklickt wird. Kein STRG+A oder im Code .selectAll ( gibt es nicht ).
Wenn parseInput auf TRUE sitzt und die Eingabe überschrieben wird, dann wird bei ENTER/RETURN onUserInput aufgerufen.
Allerdings nicht wenn Tabulator gedrückt wird, was eigentlich unter Windows Standard wäre zum verlassen auf das nächst Feld, sondern nur bei ENTER/RETURN
Leider wird onKeyDown/press nicht aufgerufen wenn TDateTimePicker im Überschreibmodus ist. D.h man kann es nicht selber abfangen und per Code zum nächsten Feld springen.
Wenn ich das so implementiere bekomme ich keinem Kunden das erklärt.
Hintergrund. Eigentlich sind unsere Datumfelder reine TEdit und wir kümmern uns um die Datumseingabe manuell. z.b 07 = 07.05.2025 - 3005 = 30.05.2025.
Das empfinden viele unserer Kunden als praktisch. Allerdings würden andere gerne eine Auswahl zusätzlich per Kalender haben.
Sicherlich kann ich daneben einen Button setzen und dann TMonthCalender einblenden, aber TDateTimePicker wäre alles kombiniert.
Wegen der Problematik oben empfinde ich das allerdings als unbenutzbar. Das peilt kein normaler User.
Meine Fragen wären
a) übersehe ich etwas bei TDateTimePicker
b) hat einer das anders hinbekommen
Gruß
Sven
|