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 Suche ComboBox mit Volltextsuche (https://www.delphipraxis.net/151507-suche-combobox-mit-volltextsuche.html)

Eppos 20. Mai 2010 14:35


Suche ComboBox mit Volltextsuche
 
Guten Tag zusammen,

ich bin auf der suche nach einer Combobox-Komponente, die so arbeitet wie die Google Suche.

Ich fülle Sie mit Daten aus einer Datenbank. Wenn Ich zur Laufzeit auf das Feld komme, gebe ich den Begriff ein. Danach soll
er mir ein Ergebnis auf Basis einer Volltextsuche anzeigen.

Kennt jemand solche Komponente oder hat Erfahrung damit?

Helmi 20. Mai 2010 14:40

Re: Suche ComboBox mit Volltextsuche
 
Hallo,

wär das vielleicht ein Ansatz für dich:
http://www.s170867368.online.de/delphi/combo.php

Eppos 20. Mai 2010 15:05

Re: Suche ComboBox mit Volltextsuche
 
nein leider nicht, das geht ja schon standard mäßig.

Wenn ich z.B. Müller eingebe, dann sollte das Ergebnis so aussehen

Müller, Sabine
Herbert Müller
Software GmbH Müller & Co
Müllermilch und Co. KG
Claudia Schmidt, Musterstraße, 99999 Müllerheim

Sherlock 20. Mai 2010 15:09

Re: Suche ComboBox mit Volltextsuche
 
Wirst du wohl selber machen müssen, ist ja aber auch nicht wirklich schwer (Stichwort "like"). Das Problem dürfte eher die Effizienz der abgefragten Datenbank sein.

Sherlock

DeddyH 20. Mai 2010 15:10

Re: Suche ComboBox mit Volltextsuche
 
Eine Idee hätte ich dazu, aber was mir da einfällt ist vermutlich nicht sonderlich performant.

Eppos 20. Mai 2010 15:11

Re: Suche ComboBox mit Volltextsuche
 
ich habe eigentlich gehofft, das es so eine Compo bereits gibt... :|

s.h.a.r.k 20. Mai 2010 15:11

Re: Suche ComboBox mit Volltextsuche
 
Ich habe sowas neulich in der DP gesehen. Und zwar war dabei die Lösung, ein Memo/ListBox unterhalb eines Edits bzw. einer ComboBox einzublenden, die dann die gefundenen Einträge beinhaltet. Ich denke, dass es Abnehmer geben würde, wenn du daraus eine Komponente basteln würdest :mrgreen:

@DeddyH: Dann schieß mal los :zwinker:

DeddyH 20. Mai 2010 15:15

Re: Suche ComboBox mit Volltextsuche
 
Eigentlich ganz einfach: nach Eingabe alle Einträge, die nicht passen, aus den Items löschen (ggf. vorher eine Kopie der Original-Items in einer TStringlist hinterlegen) und die ComboBox aufklappen. Aber durch das ständige Durchiterieren und Löschen dürfte das nicht sonderlich schnell sein (zumindest ab einer größeren Anzahl von Items).

Lun 20. Mai 2010 15:22

Re: Suche ComboBox mit Volltextsuche
 
Zitat:

ich habe eigentlich gehofft, das es so eine Compo bereits gibt...
Hi,

ich weiß jetzt nicht ob ich ganz geschnallt habe was du willst, ich denke aber das ich es verstanden habe.
Wie bei Googles Eingabe in dem Suchfeld. Du fängst anzuschreiben
und er addet dir dann unten drunter die Suchbegriffe?

Guck Dir mal von den Jedis die Komponente

JvDBLookupList an, findest du unter Jv Data Controls.
Dann übergibst du der Komponente bei LookupSource ein DataSource, der als DataSet dein Query hat mit der Select Abfrage mit einem Like auf deinen Suchbegriff.

Ich hab da ein normales Edit feld genommen, für die Eingabe und darunter die JvDBLookupList gesetzt.

Da gibts auch noch eine Komponente JvDBLookupCombo aber mit der hab ich
noch nichts gemacht.

greetz Lun

s.h.a.r.k 20. Mai 2010 15:23

Re: Suche ComboBox mit Volltextsuche
 
Mit dem automatischen Auf- und Zuklappen wäre ich auch vorsichtig. Ich habe das mal probiert und bin an irgendwas gescheitert, zumal das Verhalten damals irgendwie strange war. Ebenso würde ich keine ComboBox nutzen, da diese für so etwas nicht gedacht ist. Ein Edit würde es an dieser Stelle wohl eher tun, da es nun mal eine Sucheingabe ist. Der Weg, den ich oben beschrieben habe wäre gangbar. Man muss aber einiges selbst programmieren, hat aber auch einiges an Flexibilität. Ich denke dabei an folgende Punkte:
  • Einblendedauer kann selbst bestimmt werden
  • Zeichnen mehrere Spalten möglich
  • (farbliches) Highlighting von Textstellen möglich
  • Schließen-Schaltfläche
  • "Mehr..."-Schaltfläche
  • Vergrößerungsmöglichkeit
  • etc.

Mir fällt gerade folgendes ein: man könnte auch ein Formular anzeigen à la Codevervollständigungs-Hilfe der Delphi-IDE.

// edit
@Threadbeginner: Ich schreibe gerade mal einen Prototypen meiner Idee. Kannst dich heute Abend ja mal via PN melden, dann kann ich dir den zuschicken. Mal schauen, was draus wird :zwinker:

s.h.a.r.k 21. Mai 2010 00:34

Re: Suche ComboBox mit Volltextsuche
 
Liste der Anhänge anzeigen (Anzahl: 2)
Wie versprochen mein Prototypen, den ich in nächster Zeit weiter ausbauen werde. Das Thema hat mich heute zwar zu viel Zeit gekostet, ist aber echt interessant, daher auch schon ein recht weiter Mockup. Könnt euch das ganze ja mal anschauen. Dank Generics ist das Ding beliebig erweiterbar. Nach einem Eintrag in das Edit wird die Callback-Methode aufgerufen, sodass der Programmierer die Kontrolle hat, ob das Item nun ein Hit ist oder nicht.

Wichtig: Bitte nicht direkt TCustomSearchInfo<T> instanziieren, sondern eine Klasse davon ableiten, denn TCustomSearchInfo<T> kann keinerlei Daten visualisieren, da es nicht weiß, wie diese zu interpretieren sind. Schaut euch einfach TListBoxSearchInfo als Beispiel an.

@Leute ohne D2009/2010: Das Beispiel lässt sich sehr schnell auf Strings umschreiben, was ich bei Zeit auch mal machen könnte. Ich mag es aber erst so komplett fertig schreiben. Danach schauen wir weiter :zwinker:

PS: Ich habs unter Windows XP/2000 und früher noch nicht getestet.

Eppos 21. Mai 2010 07:53

Re: Suche ComboBox mit Volltextsuche
 
hm, ich muss jetzt mal wirklich von D5 weg kommen...

s.h.a.r.k 21. Mai 2010 08:33

Re: Suche ComboBox mit Volltextsuche
 
Zitat:

Zitat von Eppos
hm, ich muss jetzt mal wirklich von D5 weg kommen...

Delphi 2010 ist aber auch nicht gerade um sonst :zwinker:

himitsu 21. Mai 2010 08:41

Re: Suche ComboBox mit Volltextsuche
 
Zitat:

Zitat von Eppos
hm, ich muss jetzt mal wirklich von D5 weg kommen...

Joar, das hat ja nun auch schon ein paar Jährchen auf'm Buckel.
Ich mach es inzwischen auch so wie s.h.a.r.k und erstelle erstmal für D2010, da ich vorwiegend erstmal für mich programmiere, wo ich natürlich gerne "neue" und moderne Techniken nutzen will und es dann nur für Andere freigebe.
Und wenn es dann läuft, dann schau ich mal, wie/ob man es Abwärtskompatibel machen kann.
Zitat:

Zitat von s.h.a.r.k
Delphi 2010 ist aber auch nicht gerade um sonst :zwinker:

wär auch schade ... aber kostenlos isses nun leider och nicht :cry:

scalaneo 18. Okt 2015 14:18

AW: Suche ComboBox mit Volltextsuche
 
Verdammt.. :)

hab extra nen altes forum gesucht.
gibt keine möglichkeit das ding für delphi4 umzudenken?

fall bald vom stuhl.. vom vielen basteln.
habe nur ne combobox autocomplete. geht aber nur mit den ersten zeichen :(

hathor 18. Okt 2015 14:59

AW: Suche ComboBox mit Volltextsuche
 
Vielleicht geht es hiermit:
http://www.delphipraxis.net/125828-a...hedit-uvm.html

scalaneo 19. Okt 2015 00:35

AW: Suche ComboBox mit Volltextsuche
 
probier ich morgen mal aus.. beim beispiel bild.. sieht es aber leider auch sehr nach den anfangszeichen aus.
ich suche bei eingabe von Müller >Ergebnis: Müller Ralf, Ines Müllerbein, ich Müller Dir was...

das spannende ist mein rostiges delphi4 :(

Dejan Vu 19. Okt 2015 07:09

AW: Suche ComboBox mit Volltextsuche
 
Du wolltest eine Google-Suche? Dann baue sie auch so: Sofern die Datenbank Volltextsuche unterstützt, verwende sie einfach.

Alle vorgeschlagenen Lösungen müssen ALLE Datensätze aus der Datenbank laden, um dann eine In-Memory Suche vorzunehmen. Bei einigen wenigen Einträgen mag das noch angehen, aber wenn Du es richtig machen willst, kommst Du an einer innigen Zusammenarbeit mit deinem RDBMS nicht herum. Und das ist auch richtig so, schließlich ist dein RDBMS *der* Spezialist, wenn es um VT geht.

scalaneo 19. Okt 2015 18:33

AW: Suche ComboBox mit Volltextsuche
 
wollte nur eine kleine (200) Artikelliste durchsuchbar machen. in html5 n witz mit <list>
ne ganze datenbank wirkt mir zu überdimensioniert.. das wäre ja die leichte lösung mit LIKE % usw.

Dejan Vu 19. Okt 2015 19:04

AW: Suche ComboBox mit Volltextsuche
 
200 sind ok.

Aber: Nee, das wäre keine leichte Übung mit 'LIKE'... such mal mit LIKE nach 'Alfred' aus 'Berlin'. Und Du weißt ja nicht, das 'Alfred' ein Vorname ist, weil in deinem Google-Eingabefeld (deine Googlesuche) nur "Berlin Alfred" steht. Oder "Alfred Berlin"


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