Einzelnen Beitrag anzeigen

delphin

Registriert seit: 21. Aug 2003
Ort: Chemnitz
29 Beiträge
 
Delphi 7 Professional
 
#14

Re: automatische Suche in ListBox abschalten

  Alt 1. Apr 2010, 01:37
Also nun doch noch ein Abschlussbericht zu Eurern Lösungen.

ListBox1.AutoComplete:=false und Delphi 7:

1. Der Schalter ist nicht im Objektinspektor zugänglich, aber es gibt ihn
2. Die Wirkung auf das von mir beschrieben Verhalten = 0

Somit kommt zu mindest im Delphi 7 nur die Variante von IceBube:

Delphi-Quellcode:
procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
begin
  Key := #0;
end;
zum sinnvollen Einsatz.
Das Ausklammern der Kursorsteuertasten VK_Down, VK_UP, VK_Left etc. kann man sich übrigens schenken, da sie kein KeyPress-Ereignis auslösen, zumindest nicht unter Win2000.

Das Abfangen des Ereignisses ListBox1KeyPress gemäss Lösungsvorschlag von BUG greift viel zuspät ins Geschehen ein. Das könnt Ihr ja einfach mal hiermit testen:

Delphi-Quellcode:
procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin ShowMessage('leider schon zu spät');
      if not (Key in [VK_UP, VK_DOWN]) then Key:=0;
end;
Der Rollbalken springt beim Drücken einer Taste, dessen Char einem Anfangsbuchstaben des Strings in der Liste entspricht sofort an die entsprechende Stelle und erst danach geht die Messagebox auf.
  Mit Zitat antworten Zitat