如果DBGrid中的内容比较多,是否可以使用鼠标的滚轮来浏览后边没有看到的数据?

解决方案 »

  1.   

    private
        OldGridWnd: TWndMethod;
      public
        procedure NewGridWnd(var Message: TMessage);
      end;
    ...procedure TfrmDgBase.FormCreate(Sender: TObject);
    var I: integer;
    begin
      OldGridWnd := dgBase.WindowProc;
      dgBase.WindowProc := NewGridWnd;
    end;procedure TfrmDgBase.NewGridWnd(var Message: TMessage);
    var
      IsNeg: Boolean;
    begin
      if Message.Msg = WM_MOUSEWHEEL then
      begin
        IsNeg := Short(Message.WParamHi) < 0;
        if IsNeg then
          dgBase.DataSource.DataSet.MoveBy(1)
        else
          dgBase.DataSource.DataSet.MoveBy(-1)
      end
      else
        OldGridWnd(Message);
    end;
    這樣就可
      

  2.   

    不支持的,你可以用DBGridEh控件,它支持滚轮的