Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   "DataList" für TEdit (https://www.delphipraxis.net/199289-datalist-fuer-tedit.html)

EmWieMichael 12. Jan 2019 07:25

"DataList" für TEdit
 
Guten Morgen!

Ich würde gerne Eingabefelder (z. B. TEdit) um eine Möglichkeit zur Auswahl angebotener Werte erweitern; also im Prinzip analog zur <datalist> in HTML (--> Google-Suchbegriff-Eingabe).
Anhand der eingegebenen Zeichen im Editfeld, sollen in der "Datalist" (z. B. ein StringGrid) entsprechende Daten zur Auwahl angezeigt werden; mit Cursor-Down oder per Mausklick kann dann in das Grid gewechselt und eine Auswahl getroffen werden.
Bis zu diesem Punkt wird es wohl kein Problem geben. Das Problem beginnt mit der Frage, wie und wann das Grid wieder ausgeblendet wird: a) nach Auswahl eines Wertes, und b) wenn das Editfeld den Fokus verliert (OnExit). Den Fokus verliert das Feld allerdings auch, wenn man zur Auswahl in das Grid wechselt. Mit anderen Worten: man wechselt in das Grid und schon ist es weg. :(

Ein anderer Weg wäre, bei allen anderen Komponenten des Formulars auf OnEnter zu reagieren und hier das Grid auszublenden. Eine weitere Möglichkeit: per WndProc den gesamten Nachrichtenfluss zu prüfen. Beide Varianten erscheinen mir irgendwie umständlich.

Hat jemad eine bessere Idee?

Luckie 12. Jan 2019 09:58

AW: "DataList" für TEdit
 
Wie wäre es mit einer Combobox anstatt eine Edits?

EmWieMichael 12. Jan 2019 10:28

AW: "DataList" für TEdit
 
Zitat:

Zitat von Luckie (Beitrag 1423172)
Wie wäre es mit einer Combobox anstatt eine Edits?

Das Interessante an der <DataList> ist ja, dass der Anwender während seiner Eingabe(n) sofort sieht, welche Daten zur Auswahl bereitstehen; die Combobox muss aber immer erst geöffnet werden - das ist unschön.
Ich habe erst kurz vor Weihnachten genau diese Anforderung in HTML/JS umgesetzt, weil DataList unter Chrome und Edge nicht sauber umgesetzt ist. Nun dachte ich, in Delphi wäre das Thema ein Klacks. Hmmm...

Uwe Raabe 12. Jan 2019 14:24

AW: "DataList" für TEdit
 
Zitat:

Zitat von EmWieMichael (Beitrag 1423177)
Das Interessante an der <DataList> ist ja, dass der Anwender während seiner Eingabe(n) sofort sieht, welche Daten zur Auswahl bereitstehen; die Combobox muss aber immer erst geöffnet werden - das ist unschön.

Dann setz bei der ComboBox doch einfach AutoDropDown auf True. Dann öffnet die sich beim ersten Tastendruck.

EmWieMichael 12. Jan 2019 17:37

AW: "DataList" für TEdit
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1423195)
Zitat:

Zitat von EmWieMichael (Beitrag 1423177)
Das Interessante an der <DataList> ist ja, dass der Anwender während seiner Eingabe(n) sofort sieht, welche Daten zur Auswahl bereitstehen; die Combobox muss aber immer erst geöffnet werden - das ist unschön.

Dann setz bei der ComboBox doch einfach AutoDropDown auf True. Dann öffnet die sich beim ersten Tastendruck.

Ist doch manchmal wirklich erschütternd. Da arbeite ich seit Delphi 1.0 mit diesem Werkzeug, aber TCombobox.AutoDropDown hab´ ich noch nicht gesehen. Oder wieder vergessen :oops:.
Eigentlich ist diese Option genau das, was mir vorschwebt, leider funktioniert AutoDropDown offenbar nur in Verbindung mit AutoComplete, und das mag ich garnicht. Aber vielleicht werde ich diese Kröte schlucken. Andererseits habe ich die angesprochene Variante, auf OnEnter zu reagieren umgesetzt - bisher habe ich noch keine Nachteile ausmachen können; ein StringGrid wäre natürlcih schon etwas flexibler. Ich teste weiter...

Herlichen Dank für Dein Posting! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 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