Delphi 德尔福:如何摆脱;未找到TMyForm的祖先错误';?

Delphi 德尔福:如何摆脱;未找到TMyForm的祖先错误';?,delphi,ide,Delphi,Ide,我有一些表单继承自TMyForm(TMyForm是源代码表单的第三方组件) 在IDE中打开从TMyForm继承的表单时,我有: 创建表单时出错:的祖先 未找到“TMyForm” 解决方法是在IDE中打开TMyForm单元,然后尝试顶部打开我继承的表单 但是,我如何避免Delphi出现此错误,并且即使未在IDE中打开TMyForm,也能打开我的表单呢?看看这是否有帮助 您需要在IDE中打开父窗体或将其添加到项目中,不幸的是,没有解决方法。在这里:我尝试了很多很多事情,但都没有成功。我的解决方法。有

我有一些表单继承自
TMyForm
TMyForm
是源代码表单的第三方组件)

在IDE中打开从TMyForm继承的表单时,我有:

创建表单时出错:的祖先 未找到“TMyForm”

解决方法是在IDE中打开
TMyForm
单元,然后尝试顶部打开我继承的表单


但是,我如何避免Delphi出现此错误,并且即使未在IDE中打开
TMyForm
,也能打开我的表单呢?

看看这是否有帮助


您需要在IDE中打开父窗体或将其添加到项目中,不幸的是,没有解决方法。在这里:我尝试了很多很多事情,但都没有成功。

我的解决方法。有几种方法:

  • 添加到项目所有父窗体的完整路径。不舒服,因为绝对路径
  • 将包含父窗体的包添加到项目列表中。在这种情况下,没有问题。但每次都要打开一个组件 在delphi环境中
  • 使用embarcadero提供的临时解决方案
将自动打开所有子窗体:

票,大约10年前创建:

您可以在此处下载Delphi XE2的版本:


我推荐它

我一直在寻找解决这个问题的方法,似乎我终于找到了一个

我正在使用一个包含几个基本表单和框架的包

我已经将这些添加到存储库中,但仍然出现了错误

有些表单和框架在项目经理中没有显示“dfm”,关键在于编辑.dpr文件并将名称添加到花括号中:

fIBSConnectionForm in 'GUI\BaseGUI\fIBSConnectionFrom.pas',
进入

对于帧,请确保使用{f..:TFrame}


完成此操作并重新启动Delphi后,我可以再次打开子体表单

在我的情况下,我有一个单一的项目,所以我添加到dpr,它工作得很好。谢谢。你可以编写一个IDE专家来监视文件的打开,然后在右边的文件中首先打开父窗体。我用过这个,它很有效。请注意,这样你就不能再访问
qc.embarcadero.com
链接了。如果您需要访问旧的质量控制数据,请查看。对不起,但ScanFF更改对我来说似乎不适用。究竟为什么?我进行了更广泛的优化-再次命中了XE2字符串双自由漏洞…对我来说,DPR文件中的完整路径会导致一些不必要的副作用(不记得确切是什么),指定表单名而不指定路径会导致另一个错误-
无法打开c:\windows\system32\frmIBSConnectionForm
-疯狂…这不是完整路径,它是项目文件的相对路径。很明显,在我的例子中,它是TfrmIBSConnectionForm(不带“T”,这已删除)和unit fIBSConnectionForm-您的表单可能有不同的名称。当然,我更改了名称以匹配您的示例。在我的例子中,XE2只是尝试进入system32。疯狂,只是疯狂。它甚至对直接从
TForm
派生的表单发出吠声!!!
fIBSConnectionForm in 'GUI\BaseGUI\fIBSConnectionFrom.pas' {frmIBSConnectionForm},