In Deinem Code seh ich nur, dass die Deklaration der lokalen Variablen i fehlt (außerdem waren bei AnsiContainsText die Parameter vertauscht). Ich habe jetzt mal eine allgemeingültige Prozedur dafür geschrieben.
Delphi-Quellcode:
uses StrUtils;
procedure FilterItems(const sl: TStrings; const substr: string);
var i: integer;
begin
sl.BeginUpdate;
try
for i := Pred(sl.Count) downto 0 do
if not StrUtils.AnsiContainsText(sl[i],substr) then
sl.Delete(i);
finally
sl.EndUpdate;
end;
end;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
FilterItems(ListBox1.Items,Edit1.Text);
end;
Bei mir funktioniert es wie gedacht.