AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi TDateTimePicker parseInput und onUserInput
Thema durchsuchen
Ansicht
Themen-Optionen

TDateTimePicker parseInput und onUserInput

Ein Thema von stalkingwolf · begonnen am 6. Mai 2025 · letzter Beitrag vom 7. Mai 2025
Antwort Antwort
stalkingwolf

Registriert seit: 6. Mai 2011
552 Beiträge
 
#1

TDateTimePicker parseInput und onUserInput

  Alt Gestern, 16:18
(Delphi 11.3)
jemand schon einmal mit der Kombination etwas gemacht?
Irgendwie haben die Devs zwar an das richtige Gedacht aber nicht sauber umgesetzt.
Oder ich verstehe es nicht.

mit der Kombination hat man eine freie Eingabe und kann die Eingabe parsen.
Aber ... Man kann den Editmodus nicht manuell setzen. Der User muss mit der Maus auf eine freie Fläche im Feld klicken.
Das Feld kann nicht mit TAB verlassen werden. OnKeydown/Press kann die Taste auch nicht abgefangen werden. Vermutlich weil ein anderes Control drüber gebügelt wird.

Oder hat jemand die beiden Sachen schon einmal hinbekommen?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.662 Beiträge
 
Delphi 12 Athens
 
#2

AW: TDateTimePicker parseInput und onUserInput

  Alt Gestern, 17:13
Kannst du mal konkreter werden? Was willst du machen und was funktioniert nicht?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
552 Beiträge
 
#3

AW: TDateTimePicker parseInput und onUserInput

  Alt 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
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.662 Beiträge
 
Delphi 12 Athens
 
#4

AW: TDateTimePicker parseInput und onUserInput

  Alt Heute, 16:29
aber TDateTimePicker wäre alles kombiniert.
Das Control ist ja ein Windows internes und somit liegt die Funktionalität in Microsoft's Hand und ist damit sogar möglicherweise von der Windows-Version abhängig. Es ist nicht einfach einen so simplen Anwendungsfall zu finden, dass man das Control direkt einsetzen kann. Schon bei ein wenig vom Standard abweichenden Requirements wird man das damit nur schwer realisieren können. Die Windows-Kapselung macht eine flexible Nutzung leider unmöglich. In der Regel fährt man mit dem TButtonedEdit-Ansatz auf Dauer besser.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz