百思不得其解的“列表索引越界”。(等待ING……)

yang8727 2005-07-30 12:42:57
procedure TForm1.tv1DblClick(Sender: TObject);
var
a:integer;
item:tlistitem;
begin
if tv1.Selected<>nil then //判断用户是否点击了TREEVIEW的空白区域
begin
if (tv1.Selected.Parent<>nil) or (tv1.Selected.getFirstChild=nil) then//判断用户是否点击了最底的节点
begin
if tv1.Selected.AbsoluteIndex=tv1.Tag then//判断用户是否双击了同一节点
begin
abort;//如果是则退出
end
else//如果不是则运行以下代码
begin
delsection('A');//删除INI文件的SECTION“A”
delsection('B');//删除INI文件的SECTION“B”
tv1.Tag:=tv1.Selected.AbsoluteIndex;//记录用户所双击的节点的序号
loadlvcolumns(tv1.Selected.AbsoluteIndex);//加载相应的LISTVIEW标题
case tv1.Selected.AbsoluteIndex of//判断
1:
begin
memodata.Clear;
loadmemolines(1);

end;
3:
begin
memodata.Clear;
loadmemolines(2);

end;

12://程序运行时双击TREEVIEW序号为12的节点
begin
memodata.Clear;
loadmemolines(1);//运行成功
a:=1;
for a:=1 to memodata.Lines.Count-1 do
begin
if memodata.Lines[a]<>'' then//运行成功
begin
item:=lv1.Items.add;
item.Caption:=memodata.Lines[a];
end;
end;
//FOR循环快结束时出现“列表索引越界”错误,可我新建一程序单独运行CASE12里的代码却没有出现什么问题。
end;
end;

end;
end;
end;
end;


麻烦大家看看了。唉,好不容易强迫自己准备去把程序编了,没想到就遇到这问题,郁闷……
...全文
297 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang8727 2005-07-30
  • 打赏
  • 举报
回复
哎,问题解决了。原来我在LISTVIEW的CustomDrawItem里加入了对SUBITEMS[0]的判断。
但在CASE12里却只有CAPTION而不存在SUBITEMS[0],结果才出现了“列表索引越界”错误的问题。
真抱歉,害大家麻烦了。
abcdefgdeng 2005-07-30
  • 打赏
  • 举报
回复
是不是树的CURSOR指向越界了.设断点跟踪一下程序了.
yang8727 2005-07-30
  • 打赏
  • 举报
回复
很难吗?怎么还没有解答?……

5,386

社区成员

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

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