type Drawing = class(OpenXmlElement) public function Create();overload; function Create(_node: XmlNode);overload; function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Drawing);override; public // normal property property _Inline read ReadXmlChild_Inline; property Anchor read ReadXmlChildAnchor; function ReadXmlChild_Inline(); function ReadXmlChildAnchor(); public // Children XmlChild_Inline: _Inline; XmlChildAnchor: Anchor; end; function Drawing.Create();overload; begin {self.}Create(nil, "w", "drawing"); end; function Drawing.Create(_node: XmlNode);overload; begin class(OpenXmlElement).Create(_node: XmlNode); end; function Drawing.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); class(OpenXmlElement).Create(_parent, _prefix, _local_name); end; function Drawing.Init();override; begin pre := {self.}Prefix ? {self.}Prefix + ":" : ""; attributes_ := array(); attributes_pf_ := array( ); sorted_child_ := array( "wp:inline": array(0, makeweakref(thisFunction(ReadXmlChild_Inline))), "wp:anchor": array(1, makeweakref(thisFunction(ReadXmlChildAnchor))), ); container_ := new TSOfficeContainer(sorted_child_); end; function Drawing.Copy(_obj: Drawing);override; begin tslassigning_backup := tslassigning; tslassigning := 1; class(OpenXmlElement).Copy(_obj); if not ifnil(_obj.XmlChild_Inline) then {self.}_Inline.Copy(_obj.XmlChild_Inline); if not ifnil(_obj.XmlChildAnchor) then {self.}Anchor.Copy(_obj.XmlChildAnchor); tslassigning := tslassigning_backup; end; function Drawing.ReadXmlChild_Inline(); begin if tslassigning and ifnil({self.}XmlChild_Inline) then begin {self.}XmlChild_Inline := new _Inline(self, "wp", "inline"); container_.Set({self.}XmlChild_Inline); end return {self.}XmlChild_Inline; end; function Drawing.ReadXmlChildAnchor(); begin if tslassigning and ifnil({self.}XmlChildAnchor) then begin {self.}XmlChildAnchor := new Anchor(self, "wp", "anchor"); container_.Set({self.}XmlChildAnchor); end return {self.}XmlChildAnchor; end;