yo uso en ese tipo de casos las propiedades bookmark, filter y filtered en el evento onchange, quizas te pueda servir esto:
Código Delphi
[-]
var
book : string;
begin
with midataset do
begin
filtered := false;
filter := 'campo like '#39+edit1.text+#39'%';
filtered := true;
if not eof then
begin
book := bookmark;
end;
filtered := false;
bookmark := book;
end;
end;
suerte