SO klappt ganz gut, nur irgendwie hat es einen kleinen haken, es ist schwierig zu erklären, also wenn ich jetzt etwas lösche dan wird auch geupdatet, nur nicht ganz richtig mal ein Beispiel:
Einträge:
Wolf
Motte
Wohnung
Molle
Ich schreibe:
Mo
.... passiert nix erst wenn ich jetzt noch einmal irgednetwas eingebe dann wird gefiltert.
Delphi-Quellcode:
procedure FilterItems(const sl: TStrings; const substr: string);
var i: integer;
begin
sl.BeginUpdate;
Merkliste:=Form1.MailerListbox.Items.Text;
Form1.Mailerlistbox.Items.Text:=Merkliste;
try
for i := Pred(sl.Count) downto 0 do
if not StrUtils.AnsiContainsText(sl[i],substr) then
sl.Delete(i);
finally
sl.EndUpdate;
end;
Delphi-Quellcode:
procedure TForm1.SucheditKeyPress(Sender: TObject; var Key: Char);
begin
if Suchedit.text='' then
else
Mailerlistbox.Items.Text:=Merkliste;
FilterItems(Mailerlistbox.Items,Suchedit.Text);
end;