Delphi中基类窗体找不到解决办法

本文介绍了解决Delphi中窗体继承时基类窗体找不到的问题,提供了两种实用的方法,一种是通过项目管理器调整单元文件顺序,另一种是在dpr文件中直接添加基类窗体声明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有的时候,我们会碰到一些比较烦人的东西,打开某个继承的窗体,会提示说基类窗体找不到,并且找不开这个窗体,必须先打开基类窗体,然后再打开此窗体,才可以进行设计模式。其实出现这种情况的原因,就是因为工程dpr文件中,没有添加此基类的Form文件造成的,多是由于系统移植造成的,你也可以自己来玩一下。

解决办法:可以在View菜单中选择Project Manager或者Ctrl+Alt+F11来查看,基类中一定只有pas文件,如果继承的窗体少,你可以直接将继承的窗体去掉,然后将基类的单元文件先移除工程,然后再添加进去就可以了,或者你直接在dpr文件中添加此窗体的声明,形如{XXForm}之类的内容。下面举例说明一下:

首先新建一个工程,其工程文件如下所示:

  1. programProject1;
  2. uses
  3. Forms,
  4. Unit1in'Unit1.pas'{Form1};
  5. {$R*.res}
  6. begin
  7. Application.Initialize;
  8. Application.CreateForm(TForm1,Form1);
  9. Application.Run;
  10. end.

你直接将{Form1}去掉,保存,然后再打开的时候,工程文件中仍然包括Unit1.pas,但是此文件已经不包含Unit1.dfm。此时不要紧,你打开工程文件的时候,仍然可以看到窗体Form1,因为它就在当前的搜索路径下面。

然后将{Form1}还原上去,再File-->New-->Other找到Project1下面有选择Form1 Inherited则生成Form2。这时工程文件Uses中多了行代码 Unit2 in 'Unit2.pas' {Form2},接去掉{Form1},保存退出,重新打开,问题就出现了,会提示这样的错误:

Errorcreatingform:Ancestorfor'TForm1'notfound.

你如果关闭掉Form2,然后打开Form1,再打开Form2,则不会再有提示,可是每次都这样做太麻烦了,此时,你可以采用上面介绍的两种方法来完成修改,不让这个提示显示^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值