Bueno, yo tenia el mismo problema, la consulta es demasiado compleja para estar repitiendo cada vez q el usuario presionaba una tecla en el edit.
Otras ocasiones he utilizado un TJvDBFindEdit de los controles Jedi el cual asignandole un DataSet y el campo ya no hay que programar nada mas. Funciona excelente a excepción de que cuando utilizas el mismo query para diferentes consultas, el control empieza a generar excepciones ya que las nuevas consultas no tienen el campo que tiene asignado para filtrar.
Esto es un dolor de cabeza y por mas que busque no logre hecharlo a andar correctamente (hay que reportar ese error a la comunida de JEDI).
Asi que estuve buscando otras alternavitas prara crear un filtro sobre un TZQuery (ZeosLib)
Aqui la respuesta:
En el Evento OnChange de un edit (en este caso, sEdit5)
Código Delphi
[-]
DM.ZQuery.Filter := 'descripcion LIKE '+#39+'*'+sEdit5.text+'*'+#39;
DM.ZQuery.FilterOptions := [foCaseInsensitive];
DM.ZQuery.Filtered := (sEdit5.Text <> '');
Y eso es todo! Probablemente muchos ya lo sabían pero pienso que al igual que yo, mucha gente desconoce este truco, de hecho estuve buscando en muchos hilos.
Este filtro funciona como un "WHERE CAMPO LIKE %CONDICION%"
Salud OS