列表索引越界,添加框架delphi

时间:2010-11-16 18:05:21

标签: delphi delphi-7

我试图搜索我的错误,阅读一些主题,但我找不到提示为什么会发生这种情况。如果有人能帮助我至少得到一些关于如何查看正在发生的事情的暗示,那么我能够解决它,我将非常感激。

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

提前感谢您提供任何帮助

托马斯

3 个答案:

答案 0 :(得分:3)

“列表索引越界(-1)”是一个有趣的错误。如果我不得不猜测,我会说它正在执行看起来像这样的代码:

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

如果您的控件包含在BPL中,则有一种方法可以在调试器中跟踪它。打开您要放置的框架所在的BPL。在调试模式下构建它。然后转到Run菜单并选择Parameters...。在Host Application下,单击Browse并找到bds.exe(Delphi IDE本身),然后点击F9。这将启动IDE的第二个副本并加载BPL的调试信息。

然后尝试重现错误,当发生列表错误时,它将被您的第一个Delphi副本视为任何其他异常,并有机会中断并进入调试器。从那里你应该能够轻松地追踪问题。

答案 1 :(得分:1)

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

感谢Ken和Marjan的帮助。

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

感谢您的快速反应。

托马斯

答案 2 :(得分:0)

我遇到了同样的问题。尽管错误消息确实来自CnWizards,但与它无关。

在我的情况下,原因是损坏的*.dproj文件被Delphi覆盖。您必须自行修复。

您必须找到<DesignClass>TFrame</DesignClass>的所有条目-这是任何框架的标准条目。您应该在下面插入以下行:

<FormType>dfm</FormType>

保存项目文件,检查是否仍然出现问题。 in this post将更详细地说明该解决方案。