Listview下标越界如何解决

qlonsh 2010-11-02 12:42:04
下面这段代码会出现List index out of bounds(0),请问如何解决呢??
//---------------------------------添加数据到到数据库中-------------------------
procedure AddToData(ValID,ValZXDZ,ValFXDZ,ValNY,ValZJ,ValDZDL,ValFZDL,ValFZGL,
ValCD,ValKZDY,ValKZDL,ValKZGL,ValDrdy,ValZX,ValDate:String);
begin
with frmmain.ListReport.Items.Add do
begin
Caption:=ValID;
SubItems.Add(ValZXDZ);
SubItems.Add(ValFXDZ);
SubItems.Add(ValNY);
SubItems.Add(ValZJ);
SubItems.Add(ValDZDL);
SubItems.Add(ValFZDL);
SubItems.Add(ValFZGL);
SubItems.Add(ValCD);
SubItems.Add(ValKZDY);
SubItems.Add(ValKZDL);
SubItems.Add(ValKZGL);
SubItems.Add(ValDrdy);
SubItems.Add(ValZX);
SubItems.Add(ValDate);
end;
With DataMod.DaSouData.DataSet do
begin
Insert;
FieldByName('ID').AsString:=ValID;
FieldByName('ZXDZ').AsString:=ValZXDZ;
FieldByName('FXDZ').AsString:=ValFXDZ;
FieldByName('NY').AsString:=ValNY;
FieldByName('ZJ').AsString:=ValZJ;
FieldByName('DZDL').AsString:=ValDZDL;
FieldByName('FZDL').AsString:=ValFZDL;
FieldByName('FZGL').AsString:=ValFZGL;
FieldByName('CD').AsString:=ValCD;
FieldByName('KZDY').AsString:=ValKZDY;
FieldByName('KZDL').AsString:=ValKZDL;
FieldByName('KZGL').AsString:=ValKZGL;
FieldByName('DRDY').AsString:=ValDrdy;
FieldByName('ZX').AsString:=ValZX;
FieldByName('Date').AsString:=ValDate;
post;
end;
frmmain.ListReport.Items.Item[frmmain.ListReport.Items.Count-1].MakeVisible(False); //让ListView滚动到最后一项
end;
...全文
168 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
亮剑_ 2010-11-02
  • 打赏
  • 举报
回复
哪一句报错
qlonsh 2010-11-02
  • 打赏
  • 举报
回复
还是不行啊
软件钢琴师 2010-11-02
  • 打赏
  • 举报
回复
procedure AddToData(ValID,ValZXDZ,ValFXDZ,ValNY,ValZJ,ValDZDL,ValFZDL,ValFZGL,
ValCD,ValKZDY,ValKZDL,ValKZGL,ValDrdy,ValZX,ValDate:String);
var
listItem: TListItem;
begin
listItem :=frmmain.ListReport.Items.Add ;
with listItem do
begin
Caption:=ValID;
SubItems.Add(ValZXDZ);
SubItems.Add(ValFXDZ);
SubItems.Add(ValNY);
SubItems.Add(ValZJ);
SubItems.Add(ValDZDL);
SubItems.Add(ValFZDL);
SubItems.Add(ValFZGL);
SubItems.Add(ValCD);
SubItems.Add(ValKZDY);
SubItems.Add(ValKZDL);
SubItems.Add(ValKZGL);
SubItems.Add(ValDrdy);
SubItems.Add(ValZX);
SubItems.Add(ValDate);
end;
With DataMod.DaSouData.DataSet do
begin
Insert;
FieldByName('ID').AsString:=ValID;
FieldByName('ZXDZ').AsString:=ValZXDZ;
FieldByName('FXDZ').AsString:=ValFXDZ;
FieldByName('NY').AsString:=ValNY;
FieldByName('ZJ').AsString:=ValZJ;
FieldByName('DZDL').AsString:=ValDZDL;
FieldByName('FZDL').AsString:=ValFZDL;
FieldByName('FZGL').AsString:=ValFZGL;
FieldByName('CD').AsString:=ValCD;
FieldByName('KZDY').AsString:=ValKZDY;
FieldByName('KZDL').AsString:=ValKZDL;
FieldByName('KZGL').AsString:=ValKZGL;
FieldByName('DRDY').AsString:=ValDrdy;
FieldByName('ZX').AsString:=ValZX;
FieldByName('Date').AsString:=ValDate;
post;
end;
frmmain.ListReport.Items.Item[frmmain.ListReport.Items.Count-1].MakeVisible(False); //让ListView滚动到最后一项
end;

试试看

5,392

社区成员

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

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