Also "Timer ist böse" würde ich so auch nicht so gelten lassen.
Ich klaue gleich mal beim Sir.
Als ungefährerer Ansatz:
Delphi-Quellcode:
procedure TForm1.Edit1Change(...)
begin
BreakFlag := True;
Timer1.Enabled := False; // Timer wird neu gestartet, keine Suche bei schneller Eingabe
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(...)
begin
Timer1.Enabled := False;
BreakFlag := False;
DoSuche( Edit1.Text );
end;
procedure DoSuche;
begin
for I := 0 to Items.Count - 1 do
begin
...
Application.ProcessMessages;
if BreakFlag then
Break;
end;
BreakFlag := False;
end;