Einzelnen Beitrag anzeigen

Dash
(Gast)

n/a Beiträge
 
#5

Re: ListView - Suche sehr langsam

  Alt 2. Jan 2007, 22:10
Zitat von Muetze1:
Delphi-Quellcode:
procedure TForm1.LabeledEdit1Change(Sender: TObject);
var
  i: Integer;
  lTemp: String;
  lItem: TListItem;
begin
  lTemp := AnsiUpperCase(LabeledEdit1.Text);

  for i := 0 to Pred(ListView1.Items.Count) do
  begin
    lItem := ListView1.Items[i];

    if Pos(lTemp, AnsiUpperCase(lItem.SubItems.Text)) <> 0 then
    begin
      ListView1.HideSelection := False;
      ListView1.Selected := lItem;
      lItem.MakeVisible(False);
      Break;
    end;
  end;
end;
1. MakeVisible()
2. Schleife abbrechen, wenn Eintrag gefunden
3. Selected sollte schneller als ItemIndex sein.
4. AnsiUpperCase() nach Bernhard Geyer rausgezogen
5. nur einmaliger Zugriff auf Items[] Array Property
Danke, ändert zwar nichts an der Geschwindigkeit aber jetzt wird wenigstens zum Eintrag hingescrollt
Edit: Oh, hatte vergessen was vom Code zu übernehmen
Die Suche ist jetzt spürbar schneller!

Danke!!

Gruß
Dash
  Mit Zitat antworten Zitat