Thema: Delphi Autocomplete (Combobox)

Einzelnen Beitrag anzeigen

VkPenguin

Registriert seit: 23. Dez 2011
150 Beiträge
 
Delphi XE7 Architect
 
#1

Autocomplete (Combobox)

  Alt 22. Nov 2014, 21:20
Guten Abend zusammen,

ich habe eine Frage zur Combobox. Ich hätte gerne, dass diese ähnlich fungiert wie das Suchfeld in Google, also: Sobald man sie anklickt, erscheint ein dropdownmenü, dass die 5 zuletzt verwendeten Suchbegriffe anzeigt. Bei jeder Änderung des Texts soll die Anzeige dann gefiltert werden.

Ich bin soweit gekommen, dass die Eingaben automatisch gespeichert werden, sodass ich mit einer einfachen funktion die 5 Vorschläge abrufen und diese als Items in der Combobox hinzufügen kann.

Ich hätte nun aber gern, dass der oberste Vorschlag makiert ist, sodass man mit den Pfeiltasten etwas auswählen kann und die mit Enter bestätigt (oder auch anklicken). Gleichzeitig soll es aber auch möglich sein, die Vorschläge zu ignorieren und einfach weiterzuschreiben. Die Combobox makiert aber automatisch den gesamten Text. Wie kann ich das verhindern?

Ich habe zwar schon einige ähnliche Beiträge gefunden, diese haben mir aber leider nicht weitergeholfen. Hier mal meine Onchange-Routine (zunächst nur mit einem Vorschlag):
Delphi-Quellcode:
CB_ADD_Verwendung.Items.Clear;
If (not(FS_Show(CB_ADD_Verwendung.Text)='')) then
 Begin
 CB_ADD_Verwendung.AddItem(FS_Show(CB_ADD_Verwendung.Text),nil);
 SendMessage(CB_ADD_Verwendung.handle, CB_SHOWDROPDOWN, Integer(True), 0);
End
else SendMessage(CB_ADD_Verwendung.handle, CB_SHOWDROPDOWN, Integer(False), 0);
CB_ADD_Verwendung.SelStart := Length(CB_ADD_Verwendung.Text);
Vielen Dank für die Hilfe!
  Mit Zitat antworten Zitat