Witam!
Postanowiłem uruchomić scrolla w DBGrid, przeszukując froum znalazłem fragment kodu:

function GetNumScrollLines: Integer;
begin
SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, @Result, 0);
end;

procedure TForm1.DBGridMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
var
Direction: Shortint;
begin
Direction := 1;
if WheelDelta = 0 then
Exit
else if WheelDelta > 0 then
Direction := -1;

with TDBGrid(Sender) do
begin
if Assigned(DataSource) and Assigned(DataSource.DataSet) then
DataSource.DataSet.MoveBy(Direction * GetNumScrollLines);
Invalidate;
end;
end;

Okazuje się, że coś DBGrid głupieje tzn "wskaźnik" bieżącego rekordu (ten trojkąt) mija się z zaznaczonym wierszem. Wygląda to tak, że zaznazenie wiersza wyprzedza o jeden "wzkaźnik". Nie bardzo wiem w czym tkwi mój błąd.
Z góry dziekuje za pomoc.