如题  运行  点击某个按钮之后  出现错误
raise execption EInvalidGridOperation with message'Grid index out of range'不知道是什么问题?  看意思 好像是Grid超出界限了?
要怎么解决还有一个问题  是关于DBGrid的 
我把从数据库里面查询出来的数据放到DBGrid  滚动滚轮  可是数据到了显示的最下面就不继续下去了   
实际上 还有好多数据在下面   而且  光标 也是停留在上面我刚一开始点中的那一行,并没有随着我的滚轮而相应的
往下走   不知道高手  这个是属性里面设置的嘛?

解决方案 »

  1.   


    注意检查Colunms[i]里面i的值
      

  2.   

    1、按钮那个错误,应该是越界了,例如 DBGrid1.Columns.Items[0] 表示第一列
                                        DBGrid1.Columns.Items[1] 表示第二列2、Delphi 的 DBGrid 组件,确实很垃圾,一般都用三方的组件,目前常用的有(DBGridEh、cxGrid)
    如果你想实现 DBGrid 鼠标滚轮的话,给你代码,简单看下:procedure TfrmMain.OnMouseWheel(Var Msg :TMsg;var Handled:Boolean);
    begin
      if Msg.message = WM_MouseWheel then
      begin
        if Msg.wParam > 0 then
         begin
           if DBGrid1.Focused then
             SendMessage(DBGrid1.Handle,WM_VSCROLL,SB_PAGEUP,0);
         end
        else
         begin
           if DBGrid1.Focused then
             SendMessage(DBGrid1.Handle,WM_VSCROLL,SB_PAGEDOWN,0);
         end;
        Handled:= True;
      end;
    end;procedure TfrmMain.FormCreate(Sender: TObject);
    begin
      Application.OnMessage := OnMouseWheel; // 窗体Create 时,截获鼠标滚动事件
    end;