AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eintrag in einer ComboBox per Buchstabe wählen
Thema durchsuchen
Ansicht
Themen-Optionen

Eintrag in einer ComboBox per Buchstabe wählen

Ein Thema von VizeTE · begonnen am 3. Jan 2006 · letzter Beitrag vom 4. Jan 2006
Antwort Antwort
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#1

Eintrag in einer ComboBox per Buchstabe wählen

  Alt 3. Jan 2006, 13:35
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!
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Eintrag in einer ComboBox per Buchstabe wählen

  Alt 3. Jan 2006, 14:26
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;
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Eintrag in einer ComboBox per Buchstabe wählen

  Alt 3. Jan 2006, 19:06
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).
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Eintrag in einer ComboBox per Buchstabe wählen

  Alt 3. Jan 2006, 19:27
Hi,

Zitat von VizeTE:
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 von dir beschriebene Verhalten ist nicht normal und wird vermutlich durch deinen eigenen Code verursacht. Selbstverständlich kann ich die Buchstaben wechseln ohne zwischendurch dem Control den Fokus zu entziehen.

Neujahrsgrüße vom marabu
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Eintrag in einer ComboBox per Buchstabe wählen

  Alt 3. Jan 2006, 19:35
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)
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Eintrag in einer ComboBox per Buchstabe wählen

  Alt 4. Jan 2006, 09:17
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.
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#7

Re: Eintrag in einer ComboBox per Buchstabe wählen

  Alt 4. Jan 2006, 11:01
Schon mal probiert, nach einem Buchstaben die Rücktaste (#8) zu drücken? Vielleicht geht es dann wieder mit einem anderen Buchstaben.

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Eintrag in einer ComboBox per Buchstabe wählen

  Alt 4. Jan 2006, 11:36
Habe ich mal nachgeholt
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:56 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