我正在使用 Delphi FMX 应用程序,需要向我的组件之一添加新属性。该属性是一个
TAlphaColor
数组,定义为 Colors: TArray<TAlphaColor>;
。我很好奇这个属性将如何在组件的配对 .fmx
文件中表示。具体来说,我想了解是否可以直接在 Colors: [125487, 159875]
文件中存储像 .fmx
这样的值数组,如果可以,通常是如何完成的。
根据我的研究,似乎
TPropertyEditor
可能与在 IDE 中处理自定义属性有关,但我不确定它是否也会影响从 .fmx
文件存储或读取属性的方式。据我了解,TPropertyEditor
主要用于在IDE中添加自定义编辑器,不一定用于修改数据在.fmx
文件中序列化或反序列化的方式。
问题:
TAlphaColor
文件中序列化 .fmx
数组?.fmx
文件中的数组以确保正确加载和保存属性?任何相关文档的指导或参考将不胜感激!
制作自定义属性编辑器对 DFM/FMX 流系统没有影响。 流本身并不支持动态数组。 因此,您必须手动传输数组数据。 让您的组件重写虚拟
TComponent.DefineProperties()
方法来调用 TFiler.DefineProperty()
或 TFiler.DefineBinaryProperty()
,以便您可以为数组数据提供 getter/setter 回调。
但是,我质疑为什么你首先要公开这样的动态数组。 持有具有
TCollection
属性的 TCollectionItem
对象可能更有意义,并且流系统本身支持集合。