Da, i ja sam isto to iskopao (kako li sam samo ovakve stvari resavao pre prijave na ES :-), samo uz malu izmenu, pa evo ako nekom zatreba...
Code:
if Msg.message = WM_MOUSEWHEEL then
begin
if not FormMain.Active then
begin
Handled := False;
Exit;
end
else
if D.Qr.ControlsDisabled then
begin
Handled := True; //Da ne bi ostale ne-handle-ovane poruke na cekanju
Exit;
end;
if SmallInt(HiWord(Msg.wParam)) > 0 then
D.Qr.Prior
else
D.Qr.Next;
Handled := True;
end;
FormMain je forma gde je DBGrid, a D.Qr je dataset (TQuery) koji je ispod DBGrida. Mogla je i prosta provera DBGrid.HasFocus, ali ovako je zgodnije jer ako je npr. fokus na TEdit-u koji sluzi za pretragu i dalje ce raditi MWheel...