我一直在Delphi 7中开展一个项目,我想让表单从其他表单继承组件。我能够使这个工作,但遇到了以下问题(我将发布解决方案,希望将来帮助其他人):
答案 0 :(得分:27)
首先,对于那些不知道如何以可视方式继承表单的人,可以像往常一样创建祖先表单。然后转到文件>新>其他。选择包含当前项目名称的选项卡,然后选择要从中继承的表单。如果要从不属于当前项目的表单继承,请打开该表单,右键单击它,然后选择“添加到存储库”。然后你就可以去File>新>其他,并从相应的标签中选择该表格。
鉴于此,我遇到了问题,因为已经创建了一些后代表单,所以我无法按照上面的过程进行操作。此外,我根据Delphi创建的标准代码对表单进行了一些更改。我能够使用以下指南解决视觉形式继承的所有问题:
type TMyForm = class(TAncestorForm)
inherited
而不是object
,例如:inherited MyForm: TMyForm
var AncestorForm: TAncestorForm;
uses
部分必须具有与单元文件名后面的注释相同的全局变量,例如:unAncestor in 'unAncestor.pas' {AncestorForm}
手册/ Tips:
答案 1 :(得分:1)
uses
Forms,
ancestorFrame in 'ancestorFrame.pas' {AncestorFrame : TFrame},
frame1Unit in 'frame1Unit.pas' {frame1:TFrame},
frame2Unit in 'frame2Unit .pas' {frame2:TFrame},
DPROJ文件应如下所示:
<DCCReference include="frame1Unit.pas">
<Form>frame1</Form>
<DesignClass>TFrame</DesignClass>
</DCCReference>
派生框架应如下所示:
TFrame1 = class(TAncestorFrame)
派生帧.DFM文件应该说:
inherited Frame1:TFrame1