Zitat von
DeddyH:
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.
Danke für deine Mühen.
Ich habe einiges umgeändert, damit es auch bei mir läuft.(TForm2<-----)
Das Programm will "procedure FilterItems(const sl: TStrings; const substr: string);" nich bei den Deklerationen haben?
->Unsatisfied Forward or external decleration.
Hab den Teil dann mal als Versuch "aus-geslasht" (//).
Das Programm läuft dann zwar, aber wenn ich auf Suchen klicke wird Listbox einfach geleert, egal was ich in Edit1 schreibe.
play