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/)
-   -   Delphi Edit-Komponente mit Vorschlägen (https://www.delphipraxis.net/147946-edit-komponente-mit-vorschlaegen.html)

Codehunter 19. Feb 2010 14:02


Edit-Komponente mit Vorschlägen
 
Hallöle!

Gibts irgendwo eine nette kleine Edit-Komponente die so eine Suggestion-Liste anzeigen kann wie man es von diversen AJAX-Webseiten kennt? (Bestes Beispiel google.de, wenn man da im Edit-Feld was eingibt)

Ich plage mich derzeit mit einem simplen TComboBox herum, allerdings wenn man da während der Texteingabe die Combobox-Items ändert gibt das - abhängig von den Windows-Animationseinstellungen - ein wildes Gezappel.

Ich habe sogar kostenpflichtige Komponenten (z.B. TAdvEdit von TMS-Software) getestet. Problem hier: Die Vorschlagsliste muss praktisch bereits vor der User-Eingabe komplett sein. Ein AJAX-ähnliches Nachladen zur Laufzeit funktioniert da auch nicht.

Die Nachladerei mache ich übrigens selbst. Die Komponente müsste eigentlich nur in der Lage sein, ein Dropdown mit den Suggestions live anzuzeigen ohne sie bei jedem Tastendruck mit viel Tamtam aus- und wieder einzublenden.

Achso: Ich arbeite (mit einiger Zufriedenheit *gg*) nach wie vor mit Delphi 5 Pro.

Hansa 19. Feb 2010 14:13

Re: Edit-Komponente mit Vorschlägen
 
Was heißt hier viel Tamtam ? :shock: Entweder die Liste ist komplett vollständig und somit immer gleich, dann heißt das : es ist immer dieselbe Liste und unabhängig von der Eingabe. Soll sie irgendwas mit den eingegebenen Zeichen zu tun haben, dann muss sie nach jeder Eingabe angepasst werden. Bei mir wird nach jeder Eingabe z.B. alles was passt aus DB gefischt. Ja, mit Combobox. Was passt da jetzt nicht ?

Codehunter 19. Feb 2010 14:30

Re: Edit-Komponente mit Vorschlägen
 
Ist hier genauso, bei jedem Tastendruck holt sich mein Prog eine aktualisierte Liste aus einer DB. Das Problem ist, daß die Dropdown-Liste nicht einfach nur ihre Einträge aktualisiert sondern auf- und zuklappt, was abhängig von Windows-Einstellungen evtl. auch noch animiert ist. Genauer gesagt muss ich die Liste sogar bewusst zu und wieder aufklappen zur Runtime damit die angezeigten Einträge in der Dropdown-Liste überhaupt aktualisiert werden. Evtl ist das eine Beschränkung der alten D5-VCL aber so richtig glaub ich da nicht dran.

EDIT: Präziser, die Eigenschaft DropDownCount läßt sich nicht setzen während DroppedDown = TRUE ist. Bei sich ändernden Eintragszahlen eine dumme Sache. Ist die neue Liste länger als die alte erscheinen ja wenigstens noch Scrollbars, ist sie aber kürzer dann erscheinen leere Einträge in der Dropdown-Liste die sich nicht anklicken lassen. Wegen dieses Problems bin ich auf das Zu- und wieder Aufklappen gekommen.

Helmi 19. Feb 2010 15:33

Re: Edit-Komponente mit Vorschlägen
 
Hallo,

wie wärs hiermit?
(falls ich es richtig verstanden habe)

himitsu 19. Feb 2010 15:40

Re: Edit-Komponente mit Vorschlägen
 
oder sowas
http://www.delphipraxis.net/internal...=976287#976287

Hansa 19. Feb 2010 18:15

Re: Edit-Komponente mit Vorschlägen
 
Moin,

habe nochmals genauer nachgeguckt. 8-) Ich verwende keine ComboBox, sondern eine Listbox. Allerdings gleiches Prinzip : im OnChange Datenmenge neu lesen und bei geänderter Tastatureingebe auch neu anzeigen.

MarcoWarm 19. Mai 2011 10:47

AW: Edit-Komponente mit Vorschlägen
 
Halli und Hallo,

ja es kommt spät ... :-)

Falls Du eine Komponente sucht, die nach Fuzzy String Logik funktioniert (also unscharfe Suche mittels Damerau Levenshtein Distanz), kannst Du auf eine kleine TUO Kompo zurückgreifen.

http://code.google.com/p/theunknowno...%2FSuggestEdit

der Levenshtein Algo liegt im Package CommonTools

http://code.google.com/p/theunknowno...%2FCommonTools

Die Komponente funktioniert, ist aber noch nicht im GROSSEN Stil getestet worden. Also eine fast Beta ;-)

viel Spaß damit

Gruß
Marco


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