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]