Guck mal, du hast folgenden Code:
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;
Schöner wäre es übrigens so:
Delphi-Quellcode:
procedure TForm1.SucheditKeyPress(Sender: TObject; var Key: Char);
begin
if Suchedit.text <> '' then
Mailerlistbox.Items.Text := Merkliste;
FilterItems(Mailerlistbox.Items, Suchedit.Text);
end;
Ich vermute, die beiden Anweisungen nach dem "else" sollen nur ausgeführt werden, wenn der String leer ist, also fehlen hier "begin" und "end (oder auch nicht, wenn es so gewollt ist):
Delphi-Quellcode:
procedure TForm1.SucheditKeyPress(Sender: TObject; var Key: Char);
begin
if Suchedit.text <> '' then
begin
Mailerlistbox.Items.Text := Merkliste;
FilterItems(Mailerlistbox.Items, Suchedit.Text);
end;
end;
Gleiches gilt für deine "then else"-Lösung.
Du kannst es natürlich auch so machen:
Delphi-Quellcode:
procedure TForm1.SucheditKeyPress(Sender: TObject; var Key: Char);
begin
if Suchedit.text = '' then
// fülle die ganze ListBox
else
begin
Mailerlistbox.Items.Text := Merkliste;
FilterItems(Mailerlistbox.Items, Suchedit.Text);
end;
end;
Edit: Und richtig, OnChange ist besser geeignet.