您好我正在使用超过100个表单的delphi应用程序。有一种形式称为表格B,它来自表格A.
Unit B
interace
uses A;
Type
Form B = Class(Form A)
End;
现在,当我尝试在IDE上打开表单B时,我收到错误,“错误停止表单:找不到TFormA的祖先”。但是,当我打开表格A然后尝试形成B然后我能够打开表格没有任何错误。 我无法找到它发生的原因。我错过了什么吗?
答案 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文件中。
通过右键单击项目管理器,修复了我的问题是将祖先文件添加到项目中 - >添加并选择祖先文件。