• [转]DELPHI打开窗体时,提示父类文件找不到


    这两天,使用工程中突然在打开窗体的时候出错,大概的意思就是找不开父类文件(因为我是从其他窗体继承过来的)。但如果先打开父类窗体
    又不会出错。搞了很久,没有搞定。系统也重装,还是不行。最后看到下面这遍文章才解决。
    我的方法是,把父类窗体全部从工程中移除,再从新添加进来就OK了。


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

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

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

    program Project1;

    uses
    Forms,
    Unit1 in 'Unit1.pas' {Form1};

    {$R *.res}

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

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

        Error creating form: Ancestor for 'TForm1' not found.

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

  • 相关阅读:
    Nginx 七层反向代理
    Nginx Rewrite域名及资源重定向!(重点)
    对FPM 模块进行参数优化!
    Nginx压力测试及通用优化
    LNMP架构及应用部署!(重点)
    安装PHP解析环境!
    Mysql安装并修改字符集 ----> 基于源码包安装
    Nginx安装部署!
    python入门
    Android学习进度三
  • 原文地址:https://www.cnblogs.com/moon25/p/1625484.html
Copyright © 2020-2023  润新知