英文原版:https://community.CorelDRAW.com/sdk/w/articles/221/storing-custom-information-in-documents
Graphhome的翻译版参考文档请下载附件,参考文档有宏代码,详细讲述了三种属性的妙用。
Shape.ObjectData
Document.DataFields
1、对象管理器数据只能被分配到单个对象,如矩形或曲线。你不能将自定义数据存储在文档本身或其它结构元素(如页面和层)。
2、对象管理器数据仅限于一些非常基本的类型(主要数字和字符串)。所以,如果你想更复杂的结构化数据存储需要使用几个数据字段,或者将其编码为字符串。
3、对象管理器里面的数据是用户可见的。虽然这是其强项,但有时是不需要允许用户查看或编辑这些自定义数据的。
Properties
CorelDRAW/Corel DESIGNER的对象模型Document, Page, Layer和Shape 类引入了Properties对象。每个Properties对象可以包含多个部分的数据。
为了防止不同的解决方案覆盖彼此的数据,每个Properties是由两个元素:一个唯一的字符串ID和一个整数索引(index)。具体到某个解决方案,建议字符串ID确保是唯一的。
保证唯一性的最简单方法是使用全局唯一标识符(Guid)字符串ID,在您的解决方案中您可以使用整数索引(index)来确定各种Properties。
SessionUserData
GlobalUserData 应用程序类提供两个属性GlobalUserData 和SessionUserData,可以存储与任何文档不相关的数据。
每个属性由字符串ID/整数索引index标识。当CorelDRAW/Corel DESIGNER退出时,存储在GlobalUserData中的属性将被保存在磁盘上,而SessionUserData数据在应用程序关闭时则不保存,SessionUserData在应用程序运行时可用于存储临时信息。
|