Hola
Mira este codigo:
Código Delphi
[-]
procedure TFBuscaCliente.Edit1Change(Sender: TObject);
var
Filtro : String;
begin
If (Edit1.Text <> '') then
begin
ATClientes.Filtered := False;
If CBFiltro.Text = 'Código' then Filtro := 'CodCliente Like '+Edit1.Text
else If CBFiltro.Text = 'Nombre' then Filtro := 'NombreCliente Like '''+ Edit1.Text + '*'''
else If CBFiltro.Text = 'Teléfono' then Filtro := 'Telefono Like '''+ Edit1.Text + '*''';
ATClientes.Filter := Filtro;
ATClientes.Filtered := True
end
else ATClientes.Filtered := False;
end;
Es lo mismo que quieres hacer tu.
Lo he usado siempre y nunca me ha dado ningun problema.
Como Te imagiraras CodCliente es Numerico y me filtra sin problemas.
CBFiltro es un combobox que me elige las opciones.
Trata de ver que se te ocurre, estoy seguro que tarde o temprano sale esto.
Saludos