From: <na...@us...> - 2010-09-11 16:48:02
|
Revision: 904 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=904&view=rev Author: nandod Date: 2010-09-11 16:47:56 +0000 (Sat, 11 Sep 2010) Log Message: ----------- + TInstantModel.MergeFromResFile. A first attempt to support distributed models. Modified Paths: -------------- trunk/Source/Core/InstantMetadata.pas Modified: trunk/Source/Core/InstantMetadata.pas =================================================================== --- trunk/Source/Core/InstantMetadata.pas 2010-09-11 16:46:38 UTC (rev 903) +++ trunk/Source/Core/InstantMetadata.pas 2010-09-11 16:47:56 UTC (rev 904) @@ -289,6 +289,7 @@ destructor Destroy; override; procedure LoadFromFile(const FileName: string); procedure LoadFromResFile(const FileName: string); + procedure MergeFromResFile(const FileName: string); procedure SaveToFile(const FileName: string); procedure SaveToResFile(const FileName: string); property ClassMetadatas: TInstantClassMetadatas read GetClassMetadatas; @@ -1396,6 +1397,30 @@ end; end; +procedure TInstantModel.MergeFromResFile(const FileName: string); +var + LModel: TInstantModel; + I: Integer; + LClassMetadata: TInstantClassMetadata; +begin + LModel := TInstantModel.Create; + try + LModel.LoadFromResFile(FileName); + for I := 0 to LModel.ClassMetadatas.Count - 1 do + begin + LClassMetadata := ClassMetadatas.Add; + try + LClassMetadata.Assign(LModel.ClassMetadatas[I]); + except + FreeAndNil(LClassMetadata); + raise; + end; + end; + finally + LModel.Free; + end; +end; + procedure TInstantModel.SaveToFile(const FileName: string); var Stream: TInstantFileStream; |