在delphi中创建表单时出错

时间:2012-08-10 15:29:19

标签: delphi delphi-5

您好我正在使用超过100个表单的delphi应用程序。有一种形式称为表格B,它来自表格A.

Unit B 

interace

uses A;

Type
Form B = Class(Form A)

End;

现在,当我尝试在IDE上打开表单B时,我收到错误,“错误停止表单:找不到TFormA的祖先”。但是,当我打开表格A然后尝试形成B然后我能够打开表格没有任何错误。 我无法找到它发生的原因。我错过了什么吗?

3 个答案:

答案 0 :(得分:2)

使用表单继承时要记住两个项目。 dfm文件需要声明“继承TFormB”而不是“object TFormB”另一项是Delphi需要知道TFormA在创建TFormB之前的位置。我做了这个已经有一段时间了,如果我没记错的话,当基础表单添加到存储库时它会更好用

因为你指出你手动确保dfm中的声明使用“inherited”而不是“object”这个词,如上所述。要自己进行更改,请执行以下操作

1)打开两种形式。 2)然后将TFormB视为文本 3)将其改为继承如下所述

    inherited FormB: TFormB
      Caption = 'FormB'
      PixelsPerInch = 96
      TextHeight = 13
    end

// not

    object FormB: TFormB
      Caption = 'FormB'
      PixelsPerInch = 96
      TextHeight = 13
    end

答案 1 :(得分:1)

您应该使用Delphi IDE提供的可视化表单继承;我没有Delphi 5,在Delphi XE中它可以通过File-> New-> Other ...-> Inheritable Items访问。我相信它也可以在Delphi 5中使用,但可能来自不同的菜单项

答案 2 :(得分:0)

我遇到了同样的问题,尽管一切都是"继承"在DFM文件中。

通过右键单击项目管理器,修复了我的问题是将祖先文件添加到项目中 - >添加并选择祖先文件。