Delphi对象持久化,最好的方法是什么

Edi*_*gic 8 delphi persistence object

我已经开发了绘制一些形状(大多数是线条)的应用程序,现在我需要能够将草图存储到文件中,我知道delphi已经构建了对象持久性的例程,但我从未使用它.

有人告诉我可以使用对象持久性如果我必须持久化对象也引用其他对象(将被存储到),我有TLine对象可以连接到其他TLine对象等.

是否更好地使用此功能或编写自定义过程来存储/读取文件对象.

谢谢

Tim*_*vis 5

内置的对象持久性主要是设计用于将组件流化为dfm,而您需要做的持久化草图的工作不会从该机制中受益匪浅。

我认为您最好提出一个自定义方案。


ska*_*adt 3

我过去使用的一种方法是将对象属性存储在 XML 文件中,编写一个自定义“保存”例程,该例程添加到传递的 IXMLNode 中,以及一个从传递的 IXMLNode 读取的新构造函数。我将组件存储为节点,将属性存储为属性(除非属性是另一个对象,否则它将是子节点)。

我相信 Delphi Jedi 项目中有一些例程可以为您处理组件流,但我没有直接使用它们,因为我的大部分 XML 流都是手动完成的,因为我的对象非常简单,只需使用少数属性。