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
The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”