grid index out of range是什么问题,怎么解决?


gird表格中的内容超出了最大的值范围。
解释:表格中的表格设置个格数小于了实际输入的值的个数,此时就会报这个错误,解决办法就是查看下传递的值的长度,然后重新增加grd的个格数。
备注:这个报错实际上并不一定是grid报出来的可能是for循环获取值的时候,发现定义的长度为10个,结果循环的时候就有8个值,那么到第九个的时候就会跑出来数组下标越界。

 

procedure Tinput.FormCreate(Sender: TObject); var i,j,num:integer; begin //-------------设置stringgrid行,列名称 stringgrid1.Cols[0].Add('序号'); stringgrid1.ColWidths[0]:=32; stringgrid1.Cols[1].Add('货号(双击)'); stringgrid1.ColWidths[1]:=80; stringgrid1.Cols[2].Add('品名'); stringgrid1.ColWidths[2]:=128; stringgrid1.Cols[3].Add('单位'); stringgrid1.ColWidths[3]:=32; stringgrid1.Cols[4].Add('数量'); stringgrid1.ColWidths[4]:=64; stringgrid1.Cols[5].Add('仓库'); stringgrid1.ColWidths[5]:=48; stringgrid1.Cols[6].Add('单价'); stringgrid1.ColWidths[6]:=64; stringgrid1.Cols[7].Add('金额'); stringgrid1.ColWidths[7]:=64; stringgrid1.Cols[8].Add('税率'); stringgrid1.ColWidths[8]:=64; stringgrid1.Cols[9].Add('税额'); stringgrid1.ColWidths[9]:=64; stringgrid1.Cols[10].Add('不含税额'); stringgrid1.ColWidths[10]:=64; for i:=1 to 20 do begin stringgrid1.Rows[i].Add(inttostr(i)); stringgrid1.RowHeights[i]:=20; end; //-------------------------设置业务员数据词典 adoquery1.Close; adoquery1.SQL.Add('select 姓名 from 用户清单 where 姓名!=''sys'''); adoquery1.Open; combobox1.Clear; while not adoquery1.Eof do begin combobox1.Items.Add(adoquery1.fieldbyname('姓名').AsString); adoquery1.Next; end; end;

 

表格的行与列数要大于 循还之数


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM