![]() |
Eintrag in einer ComboBox per Buchstabe wählen
Hallo,
ich habe ein ComboBox (Style=DropDownList) mit ein paar Einträgen. Nun möchte ich den Anfangsbuchstaben eines Eintrages drücken und der Wert soll automatisch ausgewählt werden. Soweit ist das ja schon in der Standard-ComboBox implementiert. Jetzt mein Problem: Wenn ich den Eintrag gewählt habe und dann den Anfangsbuchstaben eines anderen Eintrages drücke wird dieser nich gewählt. Existieren mehrere Einträge mit dem selben Anfangsbuchstaben dann kann ich nur noch zwischen diesen wechseln. Ein Eintrag mit einen anderen Anfangsbuchstaben kann nicht mehr gewählt werden. (Geht erst wieder wenn ich z.B. mit Tab des Fokus wegnehme und wieder setze) Das Problem nochmal am Beispiel: ComboBox enthält der Wert: (eins, zwei, drei, zwansig) Aktiviere ich durch drücken von "z" den Wert zwei kann ich danach nicht durch drücken von "d" den Wert drei wählen. Wenn ich den Fokus neu setzte dann geht das wieder. Wenn ich statt dessen nochmal "z" drücken würde springt der aktive Eintrag zwischen zwei und zwansig hin und her. Wenn es keine Möglichkeit gibt das zu ändern wäre es für mich auch ok wenn man irgendwie dieses Standardverhalen abschlaten kann. Dann implementiere ich es halt selbst. Danke! |
Re: Eintrag in einer ComboBox per Buchstabe wählen
Willst du, dass man nur einen buchstaben angeben kann und dann den entsprechenden eintrag auswählt?
Dann kannst du ja sagen, er soll nach jedem tastendruck den ganzen text markieren:
Delphi-Quellcode:
ComboBox.OnChange
begin Combobox.SelectAll end; |
Re: Eintrag in einer ComboBox per Buchstabe wählen
Da die ComboBox vom Typ "DropDownList" ist kann man in dem Textfeld eh nichts eingeben. Man kann lediglich einen Eintrag aus der Liste wählen.
Ich möchte beim drücken von z den ersten Listeneintrag der mit z beginnt. Beim zweiten mal drücken von z den zweiten Listeneintrag der mit z beginnt usw. Mein Problem ist jedoch wenn ich z drücke bekomme ich den ersten Eintrag mit z. Wenn ich dananch aber b drücke bekomme ich nicht den ersten Eintrag mit b (obwohl einer existiert). |
Re: Eintrag in einer ComboBox per Buchstabe wählen
Hi,
Zitat:
Neujahrsgrüße vom marabu |
Re: Eintrag in einer ComboBox per Buchstabe wählen
Tut mir leid, da kann ich dir nicht weiterhelfen, denn bei mir funktioniert das automatisch:
wenn ich z drücke wählt er den ersten eintrag mit z aus. wenn ich mehrmals z drücke, wechselt er zwischen den einträgen, die mit z beginnen wenn ich z und dann b drücke, wählt er erst den ersten eintrag, der mit z beginnt aus, dann den ersten eintrag, der mit b beginnt. (außer es gibt einen eintrag, der mit "zb" anfängt) (Ich benutze Delphi7; die Componente TCombobox mit Style = csDropDownList) |
Re: Eintrag in einer ComboBox per Buchstabe wählen
Ich habe nochmal ein wenig rumgespielt und dabei ist mir aufgefallen, daß dieser Effekt nur auftritt wenn ich die Eigenschaft "Sorted" der ComboBox auf true setz.
Für mich ist es erstmal ok. Dann deaktiviere ich "Sorted" halt wieder nachdem ich alle Elemente eingefügt habe. Dennoch wäre es schön wenn ich wüßte wie es richtig geht. Kann ja durchaus mal vorkommen das ich öfter Elemente hinzufüge und entferne. |
Re: Eintrag in einer ComboBox per Buchstabe wählen
Schon mal probiert, nach einem Buchstaben die Rücktaste (#8) zu drücken? Vielleicht geht es dann wieder mit einem anderen Buchstaben.
Gruß, ManuMF |
Re: Eintrag in einer ComboBox per Buchstabe wählen
Habe ich mal nachgeholt :zwinker:
Dann funktioniert es auch. Aber diese Lösung finde ich nicht sehr Anwenderfreundlich. Da denke ich ist der Weg über das deaktivieren der Sorted-Eigenschaft der Komponente besser da sich da keine Änderungen für den Benutzer ergeben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz