Si no te he entendido mal este código estaria haciendo lo que necesitas, aunque la explicación estas dando del problema no alcanza para definirlo por completo.
Formualrio1 = Class(TForm)
...
published
Procedure OnClickBuscarCliente(Sender:TObject);
end;
Formulario2 = Class(TForm)
...
published
Function Buscar(DS:TDataSet):Boolean;
end;
Procedure Formulario1.OnClickBuscarCliente(Sender:TObject);
var b:TBookmark;
bb:Boolean;
begin try DatasourceF1.DisableControls;
B:=Table1F1.GetBookmark;
with Formulario2.Create(self) do
begin bb:=Buscar(Table1F1);
Free;
end;
finally DataSourceF1.EnableControls;
if not bb then Table1F1.GotoBookmark(B)
esle refresh;
end;
end;
Procedure Formulario2.Buscar(DS:TDataset):Boolean;
begin Datasource2.DataSet:=DS;
Showmodal;
result:= (modalResult=MROK);
end;
Esta solución depende de los controles de acceso a los datos que estes utilizando. Aqui estoy suponiendo que el Formualrio1 muestra los datos de los clientes desde una tabla, pero si fuera una Query la solución posiblemente no sirva.
El Formulario2 funciona con la misma tabla del formulario1 y entonces cuando mueves el cursor lo haces siempre sobre la misma tabla.
Bueno no se si es lo que necesitabas, pero eso es lo que entendi, espero que sirva de algo
Saludos
__________________
Marcos
|