Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

ListView-Eintrag selektieren ohne ListView-Fokus

  Alt 18. Aug 2006, 22:55
Hi,

bisschen seltsamer Titel, nur konnte ich das so kurz nicht beschreiben.

Die hier relevanten Komponenten sind ein TEdit und eine TListView. Das Edit soll eine Schnellsuche ermöglichen. Ich tippe also etwas in das Edit ein und "live" wird in der ListView in einer bestimmten Spalte nach diesem Suchwort gesucht.
Ich möchte die erste Zeile, die in der Spalte mit dem Suchwort beginnt, während ich ins Edit schreibe, hervorheben.

Ich habe es so versucht, doch sehe ich den selektierten Eintrag nicht, wenn die ListView keinen Fokus besitzt:

Delphi-Quellcode:
procedure TForm1.EditSearchChange(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to ListView1.Items.Count - 1 do
  begin
    if Pos(AnsiUpperCase(EditSearch.Text), ListView1.Items[i].SubItems[0]) = 1 then
    begin
      ListView1.ItemIndex := i;
      ListView1.Items[i].Selected := true;
      break;
    end;
  end;
end;
Und keine Angst, mehr als 200 Einträge werden nicht in der ListView vorkommen, also von der Performance her ist das in Ordnung.

Geht mein Vorhaben irgendwie oder ist das so nicht möglich? Denn beispielsweise im Windows MediaPlayer 10 gibt es ja auch diese Schnellsuche und da geht das irgendwie.

[edit=Sharky] Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat