:)

解决方案 »

  1.   

    自己捕捉WM_MOUSEWHEEL消息处理
    private
     OldGridWnd : TWndMethod;
     procedure NewGridWnd (var Message : TMessage);
    publicprocedure TForm1.NewGridWnd(var Message: TMessage);
    var
     IsNeg : Boolean;
    begin
     if Message.Msg = WM_MOUSEWHEEL then
     begin
       IsNeg := Short(Message.WParamHi) < 0;
       if IsNeg then
         DBGrid1.DataSource.DataSet.MoveBy(1)
       else
         DBGrid1.DataSource.DataSet.MoveBy(-1)
     end
     else
       OldGridWnd(Message);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
     OldGridWnd := DBGrid1.WindowProc 
     DBGrid1.WindowProc := NewGridWnd;
    end;