Das schreiben hier hat scheinbar meine Gedanken geordnet. So funktionierts bisher:
Es braucht einen TTimer, nenne den KeyTimer.
Delphi-Quellcode:
//Globale private Variablen im Form:
KeyLock:Boolean;
KeyBuffer:String;
//Im OnCreate des Forms diese vorbelegen:
KeyLock:=false;
KeyBuffer:='';
KeyTimer.Enabled:=false;
KeyTimer.Interval:=250;
//Key-Press des Grids
procedure TMain.GridKeyPress(Sender: TObject; var Key: Char);
begin
if not KeyLock then
begin
KeyTimer.Enabled:=false;
KeyBuffer:=KeyBuffer+Key;
KeyTimer.Enabled:=true;
end;
end;
//Timer-Event:
procedure TMain.KeyTimerTimer(Sender: TObject);
begin
KeyLock:=true;
KeyTimer.Enabled:=false;
while (KeyBuffer<>'') and not Quelle.Locate('Name',KeyBuffer,[loCaseInsensitive,loPartialKey]) do
KeyBuffer:=Copy(KeyBuffer,1,Length(KeyBuffer)-1);
KeyBuffer:='';
KeyLock:=false;
end;
Wer Verbesserungsvorschläge hat oder andere Ideen, wie das gehen könnte, gerne her damit.