Aunque ya nos dijiste que encontraste una solución te comento lo siguiente para que no quede como una "cosa[s] extraña[s] de la vida"
Por lo que cuentas y muestras, yo pienso que el inconveniente que tienes es por la línea donde validas que el edit tenga algo de texto.
Código Delphi
[-]
if EBuscar.Text <> EmptyStr then
begin
QRecibidas.Filtered:= False;
QRecibidas.Filter := 'Nombre like '+QuotedStr('%'+ EBuscar.Text + '%');
QRecibidas.Filtered:= True;
end
Else
QRecibidas.Filtered:= False;
end;
Como el evento se dispara cuando el texto cambia, aunque hayas borrado todo, creo que el filtro queda activo con algún carácter que impide mostrar todo el contenido de la tabla. Es por ello que al agregar una sentencia por defecto en el ELSE obtienes un resultado.
Con el filtro hubieses podido limpiar el filtro cuando el texto estuviese vacío.
Código Delphi
[-]
if Trim(EBuscar.Text) <> EmptyStr then
begin
QRecibidas.Filtered:= False;
QRecibidas.Filter := 'Nombre like '+QuotedStr('%'+ EBuscar.Text + '%');
QRecibidas.Filtered:= True;
end
ELSE
QRecibidas.Filtered:= False;
Ahora, debes evaluar cual método te es mas conveniente al realizar el cambio de texto. ir a la base de datos y realizar la consulta o realizar un filtro sobre el dataset que ya tienes en memoria. Igual, ambos tienen un costo en recursos y tiempo en la aplicación.