2010-11-16 47 views
3

我试图寻找我的错误,阅读一些主题,但我找不到提示为什么会发生。如果有人能够帮助我至少得到一些关于如何检查发生的事情的提示,那么我能够修复它,这将不胜感激。列表索引超出界限,添加框架delphi

我编写了一个应用程序,它有几个bpl链接在一起形成可执行文件。
我在同一个项目上有一个窗体和一个框架。当我尝试将框架添加到窗体时,它给了我一个“列表索引越界”的错误。我可以将此项目中的其他框架添加到此窗体中,但我无法将此框架添加到此窗体或其他形式的项目中,但框架已添加到项目中。

预先感谢任何帮助

托马斯

+0

错误信息的* exact *文字是什么?并且TFrame上的哪些控件不能添加? – 2010-11-16 19:31:23

+0

列表索引超出范围(-1)。在此之前,我收到一条错误消息:“无法找到这些文件,也许他们在不同的项目中”。从我可以引用的信息来看,这个错误信息是由CnPack给出的。窗体和框架在同一个项目中,所以我不明白为什么这个其他消息显示出来。 – Thomas 2010-11-16 19:34:20

+0

http://img217.imageshack.us/img217/3826/projecth.png Dataacess控件(dbexpress),编辑,组合,面板,页面控件,所有原生的delphi组件。我正尝试在设计中添加表单。 – Thomas 2010-11-16 19:39:26

回答

1

我能够通过再次删除框架并将其添加到项目中来解决问题。

感谢您的帮助,Ken和Marjan。

感谢教我如何调试设计时间错误,梅森,我甚至不知道这是可能的。它总是很高兴学习新事物。

并感谢您的快速响应。

Thomas

3

“列表索引越界(-1)”是一个有趣的错误。如果我猜的话,我会说的地方它的执行代码,看起来像这样:如果你的控制都包含在BPLs

Index := List.IndexOf(Whatever); 
List.Delete(index); 

,还有你可以跟踪它在调试器的方式。打开您尝试放置的框架所在的BPL。以调试模式构建它。然后转到Run菜单并选择Parameters...。在Host Application下,点击浏览并找到bds.exe(Delphi IDE本身),然后点击F9。这将启动IDE的第二个副本并为您的BPL加载调试信息。

然后尝试重现错误,并且当发生列表错误时,它将作为任何其他异常处理为您的第一个Delphi副本,并有机会打破并进入调试器。从那里你应该能够很容易地找到问题。

+0

错误在设计时发出。我只是得到组件(框架)并将其放在窗体上。对不起,忘了说是在设计时。 – Thomas 2010-11-16 19:47:02

+2

@Thomas:我知道这是在设计时间。我刚刚描述的是如何调试设计时错误。 – 2010-11-16 19:50:40