Hy,
dieses Verhalten hatte mich auch immer gestört...
So sollte die Position erhalten bleiben:
Delphi-Quellcode:
rowdelta := -1 + DBGrid.Row;
row := DBGrid.DataSource.DataSet.RecNo;
DBGrid.DataSource.DataSet.DisableControls;
DBGrid.DataSource.DataSet.Refresh;
DBGrid.DataSource.DataSet.RecNo := row;
DBGrid.DataSource.DataSet.MoveBy(-rowDelta);
DBGrid.DataSource.DataSet.MoveBy(rowDelta);
DBGrid.DataSource.DataSet.EnableControls;