【发布时间】:2016-02-14 11:13:52
【问题描述】:
我创建了一个带有视觉和数据库控件的 Tframe 单元。我使用 sprig 方法将框架注册为组件。 TFrame 有一些已发布的布尔属性。
一切正常,除了我注意到如果我启动 IDE 并打开一个使用该组件的项目,IDE 会抱怨“未知”的已发布属性。如果看一下 DFM,Delphi 已经将嵌入形式中的框架的定义从“object ...”更改为“inline ...”。如果我只是关闭项目而不保存,然后重新打开它,一切都很好。
它只发生在第一个打开的项目上。
任何建议将不胜感激。
【问题讨论】:
-
您总是必须在构造函数中初始化默认属性值。属性声明中的
default子句仅用于生成 DFM 流系统使用的 RTTI。它实际上并没有分配属性值,构造函数必须分配一个与属性的default声明相匹配的值。 -
谢谢,我(最终)意识到了这一点。关于将对象自动更改为内联的任何想法?
-
在设计时嵌入在表单中的框架应该被声明为
inline,而不是object。如果 IDE 在打开项目时抱怨,它可能有一个错误。您使用的是哪个版本的 Delphi? -
使用 XE6。但我已将框架注册为组件。而这种不良行为仅在我启动 IDE 后打开的第一个项目包含该框架组件时才会发生。
-
可能有人无法理解您的问题。我知道我知道。
标签: delphi