Hola.
No se me ocurre cómo podrías sustituir el locateNEXT.. Viendo en internet tampoco hay muchas ideas al respecto. Nunca use componentes de InterBase, asi que tampoco te podría decir que resultado.
Capaz que haciendo una busqueda uno a uno, podrias suplantar el locateNext, aunque seria algo medio "horrible" a nivel código y en cuanto a la performance.
En el botón 2, luego de hacer el locate, escribe el siguiente código:
Código Delphi
[-]
while not clientdataset1.eof do
begin
if (clientdataset1.fieldbyname('fapellidos').value = 'Ramirez') then exit;
next;
end;
Sino insisto con el filter. Creo que sería los mas facil y conveniente:
En el botón 1:
Código Delphi
[-]
ClientDataset1.Filter := 'fapellidos='+QuotedStr('Ramirez');
ClientDataset1.Filtered := True;
y en el botón 2:
y luego para sacar el filtro:
Código Delphi
[-]
ClientDataset1.Filtered := False;
La verdad que otra solución no se me ocurre. Si ninguna de estas te sirve, esperemos a ver si algún otro usuario se le ocurre algo mas acertado.
Saludos, y espero haberte sido de ayuda.