为什么会出现"list index out of bounds(1)"?怪事!谁能解释一下?

learningdelphi 2012-05-30 04:17:59
with form6.adoquery1 do
begin
close;
sql.Clear;
sql.Add('select idate,amount,person,shouzhi,item1,item2,ps from income order by idate desc');
open;
dbgrid1.Columns[0].Title.caption:='日期';
dbgrid1.Columns[1].Title.caption:='金额';
dbgrid1.Columns[2].Title.caption:='经手人员';
dbgrid1.Columns[3].Title.caption:='收/支';
dbgrid1.Columns[4].Title.caption:='收支总类';
dbgrid1.Columns[5].Title.caption:='收支细类';
dbgrid1.Columns[6].Title.caption:='备注';
dbgrid1.Columns[0].Width:=100;
dbgrid1.Columns[1].Width:=64;
dbgrid1.Columns[2].Width:=52;
dbgrid1.Columns[3].Width:=64;
dbgrid1.Columns[4].Width:=64;
dbgrid1.Columns[5].Width:=72;
dbgrid1.Columns[6].Width:=146;
我想问一下为什么会弹出list index out of bounds(1),我在form2用的是同样的组件同样也用adoquery1也用dbgrid1,为什么在form6就会报错,同样的代码啊,该怎么解决啊。
...全文
11743 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaizi_1990 2012-08-02
  • 打赏
  • 举报
回复
你程序中dbgrid的列数不够。
qxh740162929 2012-08-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你的这个DBGRID没有添加Columns
[/Quote]

列不够,越界了
kevin_li125 2012-07-17
  • 打赏
  • 举报
回复
是越界,就是目标的栏位数或行数与你执行操作的栏数或行数不一致。你要逐行调试下,看具体是出在那一行代码上面。
somemak 2012-07-17
  • 打赏
  • 举报
回复
应该是dbgrid1连接的数据集不是form6.adoquery1引起的
open;
//加上这句试试?
dbgrid1.datasource.dataset := form6.adoquery1;
//
dbgrid1.Columns[0].Title.caption:='日期';
csdn小虫 2012-07-17
  • 打赏
  • 举报
回复
没有事先为表格添加列
npkaida 2012-06-09
  • 打赏
  • 举报
回复
估计你的数据源没有连接好,先把
dbgrid1.Columns[0].Title.caption:='日期';
。。。。
dbgrid1.Columns[6].Width:=146;
各行注释掉,看看能否正常显示。
kyle_huang 2012-06-08
  • 打赏
  • 举报
回复
越界越界~~
大肚肥肥 2012-05-31
  • 打赏
  • 举报
回复
超出长度了。比如 你的
var
a: Tstringlist;
f:string
begin
a:= Tstringlist.Create;

a.add(1);

f:=a[5];//实际上a.count只有1条命令就会出现上面的错误。
end

所以应该是你的dbgrid1.Columns[X] X赋值超出了
bdmh 2012-05-31
  • 打赏
  • 举报
回复
检查dbgrid1.Columns的索引是否有越界
kye_jufei 2012-05-31
  • 打赏
  • 举报
回复
eg:

if (Trim(_CLASSNAME)='Tjs_bom_manage_frm') then
begin
self.Caption:='Æ·ÃûÑ¡Ôñ';
dxDBGrid1Column1.FieldName:='DEA001';
dxDBGrid1Column1.Caption:='Æ·ºÅ';
dxDBGrid1Column1.Width:=120;
dxDBGrid1Column2.FieldName:='DEA002';
dxDBGrid1Column2.Caption:='Æ·Ãû';
dxDBGrid1Column2.Width:=100;
dxDBGrid1Column3.FieldName:='DEA003';
dxDBGrid1Column3.Caption:='¿â´æµ¥Î»';
dxDBGrid1Column3.Width:=80;
dxDBGrid1Column4.Visible:=false;
dxDBGrid1Column5.Visible:=false;
dxDBGrid1Column6.Visible:=false;
dxDBGrid1Column7.Visible:=false;
dxDBGrid1Column8.Visible:=false;
end;
hanyel 2012-05-31
  • 打赏
  • 举报
回复
你的grid的列数不够
jjpweb 2012-05-31
  • 打赏
  • 举报
回复
把form2的dbgrid 复制过来。
ADSLAN 2012-05-31
  • 打赏
  • 举报
回复
同意二楼的看法 是不是没有添加列进去
我看见佛 2012-05-30
  • 打赏
  • 举报
回复
你的这个DBGRID没有添加Columns
我看见佛 2012-05-30
  • 打赏
  • 举报
回复
你的这个DBGRID没有添加Columns
我看见佛 2012-05-30
  • 打赏
  • 举报
回复
你的这个DBGRID没有添加Columns

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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