Utilizando a roda de rolagem do mouse em um DBGrid
A roda de rolagem se comporta de forma estranha com DBGrids. Esse código corrige esse comportamento. Apenas coloque um ApplicationEvent (Additional) em um formulário e implemente o evento OnMessage da seguinte forma:
procedure TForm1.ApplicationEvents1Message(var Msg: TMsg; var Handled: Boolean);
var
i: SmallInt;
begin
if Msg.message = WM_MOUSEWHEEL then
begin
Msg.message := WM_KEYDOWN;
Msg.lParam := 0;
i := HiWord(Msg.wParam) ;
if i > 0 then
Msg.wParam := VK_UP
else
Msg.wParam := VK_DOWN;
Handled := False;
end;
end;