delphi 运行出现错误

scorpio215 2010-03-17 09:49:19
如题 运行 点击某个按钮之后 出现错误
raise execption EInvalidGridOperation with message'Grid index out of range'

不知道是什么问题? 看意思 好像是Grid超出界限了?
要怎么解决

还有一个问题 是关于DBGrid的
我把从数据库里面查询出来的数据放到DBGrid 滚动滚轮 可是数据到了显示的最下面就不继续下去了
实际上 还有好多数据在下面 而且 光标 也是停留在上面我刚一开始点中的那一行,并没有随着我的滚轮而相应的
往下走 不知道高手 这个是属性里面设置的嘛?
...全文
74 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangjing1979666 2010-03-18
  • 打赏
  • 举报
回复
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;
chengfujx 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 chengfujx 的回复:]
肯定是代码问题了,比如写入值的时候,明明只有3列,你却要写第4列的值。
[/Quote]

注意检查Colunms[i]里面i的值。。。
chengfujx 2010-03-18
  • 打赏
  • 举报
回复
肯定是代码问题了,比如写入值的时候,明明只有3列,你却要写第4列的值。
hongss 2010-03-18
  • 打赏
  • 举报
回复
估计是数组什么的代码下标范围问题。。。
bdmh 2010-03-18
  • 打赏
  • 举报
回复
代码问题,某个变量超出了索引,比如你 有两个数据,但非要访问第三个数据,那肯定不行
林石公 2010-03-18
  • 打赏
  • 举报
回复
因为你的代码写错了
SQLDebug_Fan 2010-03-18
  • 打赏
  • 举报
回复
什么代码,贴出来。
scorpio215 2010-03-18
  • 打赏
  • 举报
回复
怎么没人知道吗? 好急啊 之前未添加另一行代码的时候 运行都是好好的

后来 重新增加一个按钮代码之后 点击按钮就出现了上面的错误了

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧