Einzelnen Beitrag anzeigen

Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: ListBox - AutoComplete und Sorted

  Alt 12. Okt 2005, 23:32
So, ich hab mal das folgende Beispiel geschrieben -- also bei mir funktioniert es...



Delphi-Quellcode:
// Zuerst die betreffende Tabelle nach Deinen Wünschen sortieren
// Dann diese Methode einmalig bzw. bei Änderung der Einträge aufrufen

procedure TForm_Main.DoInitListBox;
begin
  ListBox1.Items.Clear;
  with DeineTabelle do
   while not EOF do
   begin
     ListBox1.Items.Add(FieldByName('Title').AsString); // Listbox mit Einträgen der Tabelle füllen
     Next;
   end;
end;

// KeyPress-Event der Listbox

procedure TForm_Main.ListBox1KeyPress(Sender: TObject; var Key: Char);
var
  Name: String;
begin
  If (Key = Chr(VK_Escape)) or (Key = Chr(VK_RETURN)) then Suchwort:= '';
  If (Key in ['A'..'Z']) or
     (Key in ['a'..'z']) or
     (Key in ['0'..'9']) or
     (Key = ' ') or
     (Key = '.') or      // bei Bedarf die erlaubten Zeichen hinzufügen
     (Key = Chr(vk_Back)) then
  begin
    If (Key = Chr(vk_Back)) then // Wenn Taste Backspace, dann letztes Zeichen löschen
      Suchwort:= copy(Suchwort, 0, length(Suchwort)-1) else
      Suchwort:= Suchwort + Key; // Suchwort um den getippten Buchstaben erweitern
    with DeineTabelle, Sender As TListBox do
     // Suche erstes Vorkommen des Suchwortes in Spalte "Title"
     if Locate('Title', Suchwort, [loCaseInsensitive, loPartialKey]) then
       ItemIndex:= RecNo-1 // Aktuellen Cursor (also der, der mit "Locate" gesetzt wurde) übergeben
     else
       ItemIndex:= -1; // Sonst nichts in der Listbox markieren
  end;
end;

Für "DeineTabelle" und "Title" natürlich deine Bezeichner einsetzen.
Hoffe, du kannst was draus verwenden


Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat