Delphi XE5,如何将包中定义的框架放入组件调色板

Posted

技术标签:

【中文标题】Delphi XE5,如何将包中定义的框架放入组件调色板【英文标题】:Delphi XE5, how do I get frames defined in a package into th component palette 【发布时间】:2013-12-18 05:51:48 【问题描述】:

两件事是我的问题

1) a 在包中定义了 TMyframe=class(TFrame),但该框架未在框架调色板中列出。 因此,我使用几种方法从设计时包中注册了我的类,这些方法似乎都没有做我想要的。 (RegisterCOmponent、RegisterClass 和 RegisterCustomModule)

2) 最大的问题,因为 Delphi 不“知道”我的框架,它被作为常规组件处理,并且当内联使用它时,其中定义的(子)对象在表单资源中显示为“对象”而不是当稍后创建表单时,“继承”会导致“对象 blahblah 已经存在”。 同样的行为发生在 IDE 的表单设计器中。 当我将此框架单元从我的运行时组件包移动到主模块(我的“内核”bpl)时,对象/继承的问题就消失了,一切似乎都正常工作。可能是因为知道如何解决“TMyCustomFrame”。

所以...如何在设计时在一个包中定义框架并在表单(在其他包或 exe 中)使用它们,而不会破坏我的表单资源。

使用 XE5、Update1、VCL

(我会想出一些简单的例子,同时我已经想出了问题)

TIA

【问题讨论】:

【参考方案1】:

从documentation看来,这是不可能的(强调):

向工具面板添加框架

框架作为组件模板添加到工具面板中。 要将框架添加到工具选项板,请在表单设计器中打开框架(您不能为此使用嵌入在其他组件中的框架),右键单击框架,然后选择添加到选项板。当“组件模板信息”对话框打开时,为新模板选择名称、选项板页面和图标。

似乎已确认here:

分享相框

您可以通过两种方式与其他开发者共享框架:

将框架添加到对象存储库。

分发框架的单位 (.pas) 和格式(.dfm 或 .fmx)文件。

要将框架添加到对象存储库,请打开包含该框架的任何项目,右键单击表单设计器,然后选择添加到存储库。有关详细信息,请参阅使用对象存储库。

如果您将框架的单元和表单文件发送给其他开发人员,他们可以打开文件并将框架和表单添加到工具面板。如果框架中嵌入了其他框架,则只能作为项目的一部分打开。

【讨论】:

以上是关于Delphi XE5,如何将包中定义的框架放入组件调色板的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL,如何将包的通用代码行放在共享包中

创建安装程序时如何确保从设计时包中正确“需要”定义 Delphi 运行时包

如何检查Android和iOS上的网络是否可用(Delphi XE5)

如何解析DELPHI XE5服务器返回的JSON数据(翻译)及中文乱码

虚拟键盘 - Android - Delphi XE5

Delphi XE4或XE5:如何以弹出格式打开Goog le Chrome?