我已經開發了繪製一些形狀(主要是線)的應用程序,現在我需要能夠將草圖存儲到一個文件,我知道德爾福已建立在對象持久性的例程,但我從來沒有用過它。德爾菲對象的持久性,什麼是最好的方式
誰能告訴我可以反對的持久使用,如果我有堅持有也(將被存儲到)其他對象的引用,我已經TLINE對象至極可以連接到其他TLINE對象等
對象使用此功能或編寫自定義過程來存儲/從文件讀取對象會更好嗎?
THX
我已經開發了繪製一些形狀(主要是線)的應用程序,現在我需要能夠將草圖存儲到一個文件,我知道德爾福已建立在對象持久性的例程,但我從來沒有用過它。德爾菲對象的持久性,什麼是最好的方式
誰能告訴我可以反對的持久使用,如果我有堅持有也(將被存儲到)其他對象的引用,我已經TLINE對象至極可以連接到其他TLINE對象等
對象使用此功能或編寫自定義過程來存儲/從文件讀取對象會更好嗎?
THX
過去我使用的一種方法是將我的對象屬性存儲在XML文件中,編寫一個自定義的「保存」例程,該例程添加到傳遞的IXMLNode,以及從傳遞的IXMLNode中讀取的新構造函數。我將組件存儲爲一個節點,並將屬性存儲爲屬性(除非屬性是另一個對象,那麼它將是一個子節點)。
我相信在Delphi Jedi項目中會有一些例程可以處理組件流,但是我並沒有直接使用它們,因爲我的大部分XML流都是手工完成的,因爲我的對象非常簡單並且可以只有少數幾個屬性渲染。
內置的對象持久性是主要設計用於流媒體組件使用的DFM,你需要做的,以保存草圖工作不會從該機制中受益非常多。
我認爲你會更好地提出一個自定義方案。
我使用TI對象持久性框架(tiopf.com)。我在http://tiopf.sourceforge.net/Doc/overview/index.shtml寫了概述。
它可以讓你保存對象和列表到xml,csv,數據庫等。它自動處理子對象。
如果你有興趣,使用svn版本,而不是sourceforge下載,因爲它有更多的功能(包括部分D 2009支持)。
你也可以使用從java知道的着名hibernate。
Delphi的端口,你可以在這裏找到: dHibernate
JSON是存儲對象的新和非常緊湊的方式。 Delphi有兩個庫可用:SuperObject和lkJSON。
p.s. http://www.delphi3000.com/似乎被列入黑名單(攻擊網站警報)
使用NativeXML從http://www.simdesign.nl/xml.html我完成了從/向XML代碼讀取/寫入delphi內存中的對象。非常好,非常容易,演示包括在這裏:http://www.simdesign.nl/forum/download/file.php?id=236
Delphi 2010爲JSON和Datasnap增加了幾個單元,但是你可以不用datasnap。 – 2010-03-11 20:54:35