AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen
Thema durchsuchen
Ansicht
Themen-Optionen

Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

Ein Thema von fisipjm · begonnen am 30. Jul 2018 · letzter Beitrag vom 1. Aug 2018
Antwort Antwort
Seite 1 von 2  1 2      
fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#1

Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 30. Jul 2018, 15:07
Hi,

ich habe eine, so dachte ich zumindest, einfache Anforderung.
Ich würde gerne in Delphi Seattle in der VCL ein Editfeld oder ein Dropdown oder eine Listbox.... so verwenden, dass ich dort eine Eingabe machen kann, die nach Eingabe von 3 Zeichen eine Autovervollständigung, bzw. Vorschläge macht.

Genau genommen, ich habe einen RESR dienst, der mir bei der eingabe von Orten mit Vorschlägen und den genauen Geokoordianten antwortet.

Ich suche gefühlt schon seit einer Woche nach einer brauchbaren Lösung, komme aber nicht weiter.
Hab schon alle möglichen Module und Beispiele gefunden, die aber entweder mit Seattle nicht mehr laufen wollen oder nicht das machen was ich möchte.

An der Umsetzung mit einer Combobox bin ich gerade dran, das erscheint mir aber sehr sehr umstädnlich und ist zudem noch zeimlich verbugt (Beim Dropdown verschwindet der Mauszeiger, beim Klick auf das Element werden nicht die gleichen Events gefeuert wie beim Select mit der Hoch/Runter taste uws...)

Habt ihr eine Idee oder sogar eine Lösung?
Gruß
PJM
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 30. Jul 2018, 15:35
Das mit der ComboBox ist eigentlich Standard wie es in Windows überall so ist...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 30. Jul 2018, 15:39
Es gibt von Fremdanbietern entsprechende Komponenten, welche man mit großen Listen/Datenquellen füttern kann und die dann anschließend die Suche und Autovervollsändigung erledigen,
oder man baut es sich selber.

Über eine LookupCombobox geht es bestimmt auch nicht schlecht.
z.B. könntest du im OnChange ein SELECT aaa FROM xxx WHERE ttt ILIKE :eingabe || '%' ORDER BY aaa LIMIT 100 anstoßen, mit welchem die Lockup-DataSource gefüllt wird.
$2B or not $2B
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#4

AW: Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 30. Jul 2018, 16:56
Ich glaube es ist noch nicht so ganz klar geworde.
Ich habe keine Riesen Datenmenge, ich habe immer 5 Einträge Maximal. Das durchsuchen übernimmt der Server.
Das einzige was ich gerne hätte, wäre eine Art Combobox die mir nicht den Mauszeiger tötet wenn dropdown auf true setze und sich dynamisch anpasst wenn ich weitere Buchstaben eintippe.
Klar kann ich die EInträge immer wieder löschen und Füllen, aber dann "Ruckelt" das Dropdown Feld und wie gesagt ich kann auch nicht unterscheiden ob mein Eintrag via Maus oder via Tastatur ausgewählt wurde.

In meinem Beispiel macht das leider einen Unteschrschied.

Folgendes Szenario

Ich gebe "Biel" in das Edit ein
bekomme als Responce:
1. Bielheim
2. Bielefeld
3. Bielhausen
4. Bieblingen
5. Biergarten

Jetzt will ich in den Einträgen "Navigieren können" sodass man eine Art vorschau bekommt wo dieser Punkt liegen würde.
Das funktioniert aktuell, weil ich die Tasten hoch runter abfragen kann und meinen aktuellen index beim onkeydown event.

Was mir an dieser Stelle fehlt ist eine Art on Hover Event, wenn ich mit der maus darüber fahre. Das funktioniert leider nicht. Außerdem habe ich es noch nicht fertig bekommen das mir der Mauszeiger nicht verschwindet.

Gruß
PJM
  Mit Zitat antworten Zitat
freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
272 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 30. Jul 2018, 17:08
Wenn Dein eingegebener Suchbegriff immer der Anfang(!) des gesuchten Begriffes ist, kannst Du einfach eine TComboBoxEx nehmen und dort die AutoCompleteOption acoAutoSuggest aktivieren.

Nachtrag: Möglicherweise habe ich Deine Anfrage auch missverstanden.
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 30. Jul 2018, 17:22
Zitat:
Ich habe keine Riesen Datenmenge, ich habe immer 5 Einträge Maximal.
5 Werte aus einer größeren Datenmenge.


Andere Komponenten?

z.B. bei Devexpress gibt es nicht nur Text und ItemIndex, sonder auch noch paar Abwandlungen wie CurText und CurItemIndex, und wenn man dann auch noch ImediatePost auf False setzt, dann kann man im DropDown navigieren, bekommt im OnChange die aktuelle Selection (Current) und erst beim Schließen des DropDown (Enter, Klick, ...) wird die Auswahl "richtig" übernommen.


Und wie gesagt, es gibt Komponenten anderer Hersteller, welche sowas besser können, ohne zu "ruckeln".
$2B or not $2B
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#7

AW: Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 31. Jul 2018, 07:33
Zitat:
Ich habe keine Riesen Datenmenge, ich habe immer 5 Einträge Maximal.
5 Werte aus einer größeren Datenmenge.
Ja, ne, also Onchange nimmt den aktuellen inhalt meines Feldes und wirft diesen via REST Client an einen Dienst, dann bekomm ich 5 Werte zurück die Schmeis ich in die Combobox. Also muss ICH mich nicht um die große Datenmenge kümmern, das macht freundlicherweise schon der Externe Dienst für mich

Zitat:
z.B. bei Devexpress gibt es nicht nur Text und ItemIndex, sonder auch noch paar Abwandlungen wie CurText und CurItemIndex, und wenn man dann auch noch ImediatePost auf False setzt, dann kann man im DropDown navigieren, bekommt im OnChange die aktuelle Selection (Current) und erst beim Schließen des DropDown (Enter, Klick, ...) wird die Auswahl "richtig" übernommen.


Und wie gesagt, es gibt Komponenten anderer Hersteller, welche sowas besser können, ohne zu "ruckeln".
Ja super cool, aber 600 Dollores? Klar ist ja mehr mit drin und den Preis bestimmt wert, aber ich benötige wirklich nur diese eine Komponente. Habt ihr noch erfahrungen mit anderen Komponenten?
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 31. Jul 2018, 07:49
Das einzige was ich gerne hätte, wäre eine Art Combobox die mir nicht den Mauszeiger tötet wenn dropdown auf true setze und sich dynamisch anpasst wenn ich weitere Buchstaben eintippe.
Öhmmm... ? Entweder man tippt = Maus wird ausgeblendet oder man machts gleich über Maus, beides gleichzeitig kann irgendwie nicht klappen, meinst Du nicht auch?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 31. Jul 2018, 09:22
Wenn Dein eingegebener Suchbegriff immer der Anfang(!) des gesuchten Begriffes ist, kannst Du einfach eine TComboBoxEx nehmen und dort die AutoCompleteOption acoAutoSuggest aktivieren.
Also, ich habe das auch so verstanden, daß dies genau die Anforderung erfüllt. Entweder liegen wir beide daneben oder es hat noch keiner probiert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Raible

Registriert seit: 12. Mär 2012
30 Beiträge
 
#10

AW: Suchfeld über Stringliste (oder ähnliches) mit anzeige von 5 Vorschlägen

  Alt 31. Jul 2018, 16:47
Hallo,

ich bin nicht sicher ob es Deinen Anforderungen entspricht, aber
ich habe mal etwas in der Art von Hand Programmiert.

Das Ganze bestand aus einer Eingabe, und einer separaten Auswahl Komponente.
z.B.: TEdit und TList.

Die TList ist dabei zunächst ausgeblendet. Nach Eingabe von Suchtext zeige
ich die TList programmgesteuert an. Der Focus bleibt aber zunächst beim TEdit.
Bei weiterer Eingabe im TEdit passe ich die Einträge der TList an.
Mit "Pfeil Ab" wechsle ich dann den Focus zur TList, und steuere dessen Verhalten
nach eigenen Wünschen. Mit "Pfeil Auf" kann man auch wieder den Focus zum TEdit Wechseln.

Dadurch dass ich zwei separaten Komponenten verwende kann ich deren Verhalten gezielt steuern.

Allerdings hat es mich einige graue Haare gekostet, bis das wirklich robust lief.

Gruß
Martin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:36 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