2008-12-28 25 views
7

He desarrollado una aplicación para dibujar algunas formas (líneas en su mayoría), ahora necesito poder guardar el boceto en un archivo, sé que Delphi tiene compilación en rutinas para la persistencia del objeto, pero nunca lo he usadoPersistencia del objeto Delphi, ¿cuál es la mejor manera?

Puede alguien decirme puedo persistencia de objetos puede utilizar si tengo que persisten objeto que también tiene referencias a otros objetos (que se almacenará en a), he TLINE objeto wich puede ser conectado a otro objeto TLINE etc.

Es mejor utilizar esta característica o escribir un procedimiento personalizado para almacenar/leer el objeto en/desde el archivo.

THX

Respuesta

2

Un método que he usado en el pasado es almacenar las propiedades de mis objetos en un archivo XML escribiendo una rutina "guardar" personalizada que se agrega a un IXMLNode pasado y un nuevo constructor que lee desde IXMLNode. Guardo el componente como un nodo y las propiedades como atributos (a menos que la propiedad sea otro objeto, entonces sería un nodo secundario).

Creo que hay algunas rutinas en el proyecto Delphi Jedi que manejarán la transmisión de componentes para usted, pero no las he usado directamente ya que la mayoría de mi transmisión XML se hizo a mano ya que mis objetos eran extremadamente simples y podían ser renderizado con solo un puñado de propiedades.

4

El construido en la persistencia de objetos está diseñado principalmente para su uso en componentes de transmisión a un DFM, el trabajo que se necesita para hacer que persista el boceto no se beneficiaría en gran medida a partir de ese mecanismo.

Creo que sería mejor crear un esquema personalizado.

2

Uso el marco de persistencia de objetos de TI (tiopf.com). Escribí la descripción general en http://tiopf.sourceforge.net/Doc/overview/index.shtml.

Le permitirá guardar objetos y listas en xml, csv, bases de datos, etc. Maneja objetos secundarios automáticamente.

Si está interesado, use la versión svn, no la descarga sourceforge, ya que tiene más características (inc. Soporte parcial D 2009).

2

También puede utilizar el famoso hibernate know from java.

puerto de la Delphi se puede encontrar aquí: dHibernate

1

JSON es una forma nueva y muy compacto para almacenar objetos. Hay dos bibliotecas disponibles para Delphi: SuperObject y lkJSON.

p.s. http://www.delphi3000.com/ parece estar en la lista negra (atacando la alarma del sitio web)

+0

Delphi 2010 ha agregado algunas unidades para JSON y Datasnap, pero puede hacerlo sin datasnap. –

Cuestiones relacionadas