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 AutoComplete bei TComboBox? (https://www.delphipraxis.net/23935-autocomplete-bei-tcombobox.html)

Marc 12. Jun 2004 11:50


AutoComplete bei TComboBox?
 
Hallo,

ich habe ein kleines "Problem" mit dem AutoComplete. Es funktioniert zwar bestens. Aber ich habe Einträge, die mit einen Großbuchstaben beginnen. Wenn ich allerdings jetzt bei der ComboBox mit einen Kleinbuchstaben beginne bleibt das Wort dann auch nach der Autovervollständingung klein.
Bsp:
Eintrag: Hansi
Eingabe: h -> Vervollständigung: hansi

Kann man das irgendwie ändern?
Ich will aber auch nicht alle Einträge groß bzw. klein schreiben (CharCase).


Danke

Mamphil 8. Mär 2005 13:42

Re: AutoComplete bei TComboBox?
 
Hi!

Das ist zwar nicht mehr so aktuell... Ich habe zwar keine Lösung, aber ein Workaround gefunden:

1.) Beim onEnter der TComboBox wird die Liste aufgeklappt:
Delphi-Quellcode:
if WindowFromPoint(Mouse.CursorPos) <> ComboboxXYZ.handle then
  SendMessage(ComboboxXYZ.handle, CB_ShowDropDown, 1, 0);
Ist die Box aufgeklappt, wird bei der Eingabe die Groß- und Kleinschreibung der Listeneinträge beachtet.

2.) Will man die Box jetzt mit TAB verlassen, geht das nicht: Die Box muss erst wieder zugeklappt werden. Also wird beim onKeyDown überprüft, ob TAB gedrückt wurde:
Delphi-Quellcode:
procedure THauptform.ComboboxXYZKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_TAB then
  begin
    SendMessage(ComboboxXYZ.handle, CB_ShowDropDown, 0, 0);
    NaechstesFormularelement.SetFocus;
  end;
end;
Die Sache hat nur einen Schönheitsfehler: Es ertönt jedesmal beim Verlassen der Fehler-Sound ("DING"). Vielleicht kennt da jemand Abhilfe oder eine geschicktere Lösung?

Mamphil

EDIT: Bei 1.) die if-Abfrage hinzugefügt: Ohne diese klappt die Box beim Anklicken sofort wieder zu :(

Luckie 8. Mär 2005 13:45

Re: AutoComplete bei TComboBox?
 
Warum setzt ihr nicht einfach die eigenschaft AutoComplete der Combobox auf True?

Mamphil 8. Mär 2005 13:47

Re: AutoComplete bei TComboBox?
 
@Luckie: AutoComplete ist true... Nur wird dann nicht die Groß- und Kleinschreibung beachtet...


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