List index out of bounds(0)

sdudubing 2011-10-27 08:54:03
昨天遇到了这么一个问题,网上也查看很多类似问题,但现在还不知道怎么解决,望高手指点一下。
我首先在主窗口上放置上一个类似PageControl的第三方控件用来打开多个标签网页;然后又在其中的一个标签页对应的窗口上又放置和上面一样的控件,在其中也用来打开多个标签,相当于一个标签页的嵌套。
出问题的是下面的第二行:(在主窗口一样的代码中没有出现问题,是在嵌入的其中的一个中出现的)。

Form4:=TForm4.Create(nil);
Form4.Parent:=Form3.RzPageControl1.Pages[index1];
Form4.Align:=alclient;
Form4.ManualDock(Form3.RzPageControl1.Pages[index1]);//将窗口融合
Form4.BorderStyle:=bsnone;
Form4.Show;
...全文
346 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jfhyn 2011-10-27
  • 打赏
  • 举报
回复
跟踪调试,加上下面代码

Form4:=TForm4.Create(nil);
//加上这一行,index1不能大于Form3.RzPageControl1的页数-1,不能小于0
showmessage(inttosr(Form3.RzPageControl1.pagecount) + 'index:' + inttostr(index1));
Form4.Parent:=Form3.RzPageControl1.Pages[index1];
Form4.Align:=alclient;
Form4.ManualDock(Form3.RzPageControl1.Pages[index1]);//将窗口融合
Form4.BorderStyle:=bsnone;
Form4.Show;
sdudubing 2011-10-27
  • 打赏
  • 举报
回复
应该是上面两位高手说的原因,但是不知道现在还不知怎么解决掉?
爱蹄子的羊头 2011-10-27
  • 打赏
  • 举报
回复
Form3.RzPageControl1.Pages[0] 你这个是空的啊. 没有创建吧?


if (index1 <0 ) or (index > RzPageControl1.Pages.count ) then exit
funxu 2011-10-27
  • 打赏
  • 举报
回复
List index out of bounds就是索引超出了list的范围
index1 超出了RzPageControl1.Pages的范围,LZ自己检查下index1 的值,还有RzPageControl1.Pages.count
sdudubing 2011-10-27
  • 打赏
  • 举报
回复
问题解决了,谢谢大家给出的解决方法
亮剑_ 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bdmh 的回复:]

那那个代码,新增的tab是给RzPageControl2的,而你访问的是RzPageControl1
[/Quote]
臭虫抓住了
bdmh 2011-10-27
  • 打赏
  • 举报
回复
那那个代码,新增的tab是给RzPageControl2的,而你访问的是RzPageControl1
浩南_哥 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sdudubing 的回复:]
高手指点下哈?按说不应该的,我调试时前面已经可以创建页了:
newpage:=TRZTabSheet.Create(self);
newpage.Caption:=scaption;
newpage.PageControl:=RzPageControl2;
RzPageControl2.ActivePage:=newpage;

为什么还会出现这种问题呢?经过调试Form3.R……
[/Quote]
没有指定的父窗口不对?
Rz控件的Demo里面有例子可以看看
sdudubing 2011-10-27
  • 打赏
  • 举报
回复
高手指点下哈?按说不应该的,我调试时前面已经可以创建页了:
newpage:=TRZTabSheet.Create(self);
newpage.Caption:=scaption;
newpage.PageControl:=RzPageControl2;
RzPageControl2.ActivePage:=newpage;

为什么还会出现这种问题呢?经过调试Form3.RzPageControl1.pagecount确实是等于0.不知如何解决?

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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