首先,我从未从头编写过属性编辑器,但在另一个问题中得到了一些帮助。请参考那里的被接受的答案。当时使用的是Delphi 7,现在我开始使用XE2,并且必须确保我的属性编辑器与7和XE2两个版本兼容。
它本质上是一个集合编辑器,不同之处在于每个集合项在父表单中都有自己的命名组件。自从7以来,XE2的属性编辑器有什么新变化吗?毕竟这是一个巨大的版本跳跃。
我不希望为不同的版本制作完整的单元副本。我希望在一个单元中维护所有可能的版本。 编辑 看起来Delphi XE2和Delphi 7具有相同的属性编辑器,但我面临的问题是,尽管我在我的包中包含了
然而,现在我遇到了一个新问题。
它本质上是一个集合编辑器,不同之处在于每个集合项在父表单中都有自己的命名组件。自从7以来,XE2的属性编辑器有什么新变化吗?毕竟这是一个巨大的版本跳跃。
我不希望为不同的版本制作完整的单元副本。我希望在一个单元中维护所有可能的版本。 编辑 看起来Delphi XE2和Delphi 7具有相同的属性编辑器,但我面临的问题是,尽管我在我的包中包含了
DesignIDE
,但它找不到任何内容,所以我不得不将ToolsAPI
文件夹添加到我的库路径中。然而,现在我遇到了一个新问题。
[DCC Fatal Error] ToolsAPI.pas(18): F1026 File not found: 'DockForm.dcu'
我对BPL包的整个概念和对其他包的要求感到迷失。
DesignIntf
,DesignEditors
,DesignMenus
,DesignWindows
等)是在D6中引入的,因此它们在D7中也被使用。 在XE2中制作设计时属性/组件编辑器与D7相同,需要创建一个仅限设计时的包,在其Requires列表中添加DesignIDE
包和你的组件运行时包,根据需要编写编辑器类,然后通过你的设计时包的导出Register()
函数注册它们,例如使用RegisterPropertyEditor()
、RegisterComponentEditor()
等。如果仍有问题,请展示你的代码。 - Remy Lebeau