如何解决有没有一种正确的方法可以使Delphi Designer查看表单的已发布属性并同时使用继承的dfm代码?
我有自己的表格层次结构:TFORM->TKCustomForm->TKObjectForm->TFSObjectForm.
TForm –标准的Delphi类。
TKCustomForm –实现我的应用程序表单的基本逻辑(调试,日志记录,调整大小等)。 DFM不变。 DFM代码:
object KCustomForm: TKCustomForm
Caption = 'KCustomForm'
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
...
end
TKObjectForm-实现对话框形式的应用程序的基本逻辑。添加自定义发布的属性和事件。还添加视觉组件(带有“确定”,“取消”,“应用”按钮的底部面板)。 DFM代码如下:
inherited KObjectForm: TKObjectForm
Caption = 'KObjectForm'
...
object pnlBottom: TKMovePanel
...
object pnlButtons: TKMovePanel
object btnOK: TKButton
..
end
object btnCancel: TKButton
..
end
object btnApply: TKButton
..
end
end
end
object DataSource: TDataSource
Left = 184
Top = 152
end
end
TFSObjectForm –实现对FastScript Engine的支持。没有dfm更改。 DFM看起来像这样:
inherited FSObjectForm: TFSObjectForm
PixelsPerInch = 96
TextHeight = 13
end
所有这些文件都在软件包中。除了我看不到其他属性和事件外,所有工作均按预期进行。我必须每次都在源代码中手动设置它。
我发现可以使用RegisterCustomModule
方法解决此问题。如果用于显示一种表单类型或框架类型的已发布属性,则效果很好,但是对于整个层次结构,它的工作方式却非常奇怪。
在包的Register
方法中,我添加了RegisterNoIcon([TKCustomForm,TKObjectForm,TFSObjectForm,TKIndepForm,TFSIndepForm]);
的所有类型的注册
当我使用RegisterCustomModule(TKCustomForm,TCustomModule);
时-将KObjectForm中的DFM代码从inherited KObjectForm
更改为object KObjectForm
,没有任何反应。
当我使用RegisterCustomModule(TKObjectForm,TCustomModule);
时-它将FSObjectForm中的DFM代码从inherited FSObjectForm
更改为object FSObjectForm
,向我展示了设计器中的其他属性,但从表单中删除了其他面板。
当我使用RegisterCustomModule(TFSObjectForm,TCustomModule);
时-没有任何反应。 DFM代码在整个层次结构中相同,带有按钮的底部面板出现,但是TFSObjectForm和所有访问器中仍然缺少其他属性。我什至尝试从TKObjectForm
中的TFSObjectForm
重新发布属性,但是它不起作用。
如何在dfm中添加组件并使发布的属性在同一父类中可见?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。