Hola de nuevo.
El ejemplo del mensaje anterior, fué como para orientarte de que herramienta podías valerte...
Supongamos que hay 10 registros :A,B,C,D,E,F,G,H,I,J.
Y que muestres de a 4 en el DBCtrlGrid.
La primera vista sería: A,B,C,D, luego de hacer scroll hacia adelante debería verse: E,F,G,H.
Para que el registro E quede en la parte superior, deberías avanzar 4*2 posiciones y retroceder 4...
Algo como: (es otro ejemplo...
)
Código Delphi
[-]
procedure TForm1.Avanzar(Sender: TObject);
begin
DataSet.MoveBy(DBCtrlGrid1.RowCount*2);
DataSet.MoveBy(-DBCtrlGrid1.RowCount);
end;
También tomá en cuenta, que al hacer scroll, puede que no haya 4 registros para mostrar por que se alcanzo el fin o el inicio de la tabla. (ya sea vayas en un sentido u otro).
Para contemplar esa situación, te doy como dato de ayuda que la función
MoveBy devuelve cuantos registros pudo moverse.
Un saludo.