пример:
на форме Edit1, Table1, Button1
заполняем Edit1 и жмем на батон
всего две процедуры

1:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Filtered:=not(Table1.Filtered);
if Table1.Filtered then
Button1.Caption:='Filtered'
else
Button1.Caption:='not filtered';
end;
2:
Код:
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
if Length(Edit1.Text)<1 then
Exit;
Accept:=
UpperCase(DataSet.FieldByName('FAM').AsString)=UpperCase(Edit1.Text);
end;
Все работает.