信息
我似乎完全不知道应该如何管理我的组件包和安装自定义属性编辑器。过去一周左右我一直在查看示例和教程,显然我做错了什么,因为我的属性编辑器从未出现在对象检查器中,我需要逐步说明来尝试解决这种挫败感。
组件包
我目前有一个包,它designtime and runtime
在选项中设置为。添加到这个包中的是我的组件的单元(即,MyButton、MyListBox 等) - 此外,我还有一个包含该RegisterComponents
过程的单元。我现在可以构建和安装它,将我的组件添加到一个新项目并运行它们而不会出现任何问题。
添加自定义 PropertyEditor
现在我想从上面的包中为我的组件引入一个属性编辑器,这让我变得棘手和困惑。
例如 TMyButton 是一个带有我自己的绘制方法的自定义按钮,它已经发布了允许更改按钮外观的属性 - 此外还有一个发布列表允许选择预设外观设置,例如:
TMyButtonStyle = (bsStyle1, bsStyle2, bsStyle3)
我想删除预设样式列表,而是向对象检查器添加一个名为“PresetStyles”的属性。此属性将属于 paDialog,我想显示一个表单,我可以在其中直观地看到不同的按钮样式 - 一种比从简单列表中选择预设样式的更加图形化的方式。
我需要哪些包
如果我理解,您需要拆分designtime
包和runtime
包吗?
这是否意味着我需要两个寄存器单元,一个用于组件,一个用于属性编辑器?
我不完全确定如何管理这个,正如我所说的,我当前的包是designtime and runtime
,我不确定我应该将它分成什么包类型。如果我为属性编辑器制作了一个新的设计时包,而runtime
只制作了另一个包,我会丢失安装按钮。即使现在写这篇文章也让我感到困惑。
安装属性编辑器
我尝试过的其中一篇文章来自此页面: http: //www.delphisources.ru/pages/faq/master-delphi-7/content/LiB0097.html
我唯一改变的是添加我自己的对话框表单,并从以下位置更改注册代码:
RegisterPropertyEditor(TypeInfo(string), TMdSoundButton, 'SoundUp', TSoundProperty);
至
RegisterPropertyEditor(TypeInfo(string), TMyButton, 'PresetStyles', TSoundProperty);
我知道它仍然说 TSoundProperty,我只是让它保持这样,直到我可以让它工作然后我会更改类名。
结论
在实际组件和设计端(即 PropertyEditors)之间拆分/管理包的正确方法是什么?
PropertyEditor 从未出现在对象检查器中的 TMyButton 上,我觉得这一定与未正确配置包有关。
我真的很感谢这里的某种帮助,甚至是指向一个非常好的教程指南的链接或我所做的任何事情似乎都不起作用,即使使用很多示例也不适合我。