Dicas - Utilizando a roda de rolagem do mouse em um DBGrid

Veja nesta dica, como implementar uma função para "rolar" o DBGrid com a roda (scroll) do mouse.

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;
Nota: Isso corrige o comportamento da roda de rolagem não apenas para DBGrids, mas para todos os outros componentes de lista (ListBox, ListView, etc).

Artigos relacionados