![]() |
automatische Suche in ListBox abschalten
Hallo Freunde,
ich bin am Verzweifeln, weil ich in einer Listbox die Standardsuchfunktion einfach nicht deaktivert bekomme. Wenn ich eine ListBox z.B. mit folgenden Daten im Create-Ereignis füttere:
Delphi-Quellcode:
und nixweiter tue als das - kann ich mit den "Hoch" und "Runter"-Tasten wunderbar in der Liste navigieren.
with ListBox1 do
begin Items.Add('07159'); Items.Add('f8130'); Items.Add('10300'); Items.Add('ab255'); Items.Add('11150'); Items.Add('17636'); end; Drücke ich die Taste "x" passiert auch nichts, d.h. der Kursor steht, wo er zuletzt eben stand und bewegt sich nicht, weil kein Eintrag mit "x" losgeht. Drücke ich aber nunmehr eine "1", dann springt der Balken auf die erste vorhandene "1" sprich auf die 3. Stelle - in meinem Fall zur '10300'. Drücke ich erneut auf die Taste "1" springt er dann auf die 5 Position, usw. Meine Frage: Welche Eigenschaft schaltet dieses ungewollte Sucheverhalten ab? Für Eure Hinweise bin ich sehr dankbar. Gruß Gerd |
Re: automatische Suche in ListBox abschalten
Hallo!
Diese...
Delphi-Quellcode:
:)
procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
begin Key := #0; end; lg |
Re: automatische Suche in ListBox abschalten
...und damit das navigieren mit den PfeilTasten weiterhin funktioniert...
Delphi-Quellcode:
procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if not Key in [VK_UP, VK_DOWN] then Key := 0; end; |
Re: automatische Suche in ListBox abschalten
Zitat:
Zudem haust du virtuelle Tastencodes und Buchstaben durcheinander. EDIT: Entschuldigung, war auf KeyPress festgefahren :oops: |
Re: automatische Suche in ListBox abschalten
Hallo,
also ich dachte ja, da gibts irgend so einen verborgenen Schalter der Art ListBox1.wasweißichnicht:=disable aber wie es scheint, kann man es tatsächlich beim KeyPressed-Event verbiegen.
Delphi-Quellcode:
Funktioniert bei mir und das navigieren mit den Pfeiltasten geht auch noch!!!
procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
begin Key := #0; end; Das verändern des Wertes im KeyDown-Event bringt dagegen garnichts, will sagen:
Delphi-Quellcode:
der Rollbalken springt bei mir immer noch auf den entsprechenden Eintrag in der Listbox ???
procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if not Key in [VK_UP, VK_DOWN] then Key := 0; end; und über einen Schalter gehts wirklich nicht ? Viele Grüße Gerd |
Re: automatische Suche in ListBox abschalten
Zitat:
Delphi-Quellcode:
procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if not (Key in [VK_UP, VK_DOWN]) then Key := 0; end; |
Re: automatische Suche in ListBox abschalten
Hi,
ehrlich gesagt würde ich aber noch PageUp, PageDown, Home und End in die Ausnahme einfügen. Grüße :-) Michael |
Re: automatische Suche in ListBox abschalten
Vielen Dank für Eure Mithilfe,
da es ja offensichtlich keinen Schalter gibt, der den Suchsprung verhindert, werde ich Eure Lösungen mit dem Key:=0 als Lösung nehmen. Viele Grüße Gerd |
Re: automatische Suche in ListBox abschalten
Ich meine mich Erinnern zu können das es eine Eigenschaft(Property) bei der Listbox gab um dies zu deaktivieren. Sollte sogar im Objektinspektor zu sehen sein.
|
Re: automatische Suche in ListBox abschalten
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 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