type Comments = 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: Comments);override; public // attributes property property XmlnsWpc read ReadXmlAttrXmlnsWpc write WriteXmlAttrXmlnsWpc; property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; property XmlnsO read ReadXmlAttrXmlnsO write WriteXmlAttrXmlnsO; property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; property XmlnsM read ReadXmlAttrXmlnsM write WriteXmlAttrXmlnsM; property XmlnsV read ReadXmlAttrXmlnsV write WriteXmlAttrXmlnsV; property XmlnsWp14 read ReadXmlAttrXmlnsWp14 write WriteXmlAttrXmlnsWp14; property XmlnsWp read ReadXmlAttrXmlnsWp write WriteXmlAttrXmlnsWp; property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; property XmlnsW10 read ReadXmlAttrXmlnsW10 write WriteXmlAttrXmlnsW10; property XmlnsWpg read ReadXmlAttrXmlnsWpg write WriteXmlAttrXmlnsWpg; property XmlnsWpi read ReadXmlAttrXmlnsWpi write WriteXmlAttrXmlnsWpi; property XmlnsWne read ReadXmlAttrXmlnsWne write WriteXmlAttrXmlnsWne; property XmlnsWps read ReadXmlAttrXmlnsWps write WriteXmlAttrXmlnsWps; property XmlnsWpsCustomData read ReadXmlAttrXmlnsWpsCustomData write WriteXmlAttrXmlnsWpsCustomData; property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; function ReadXmlAttrXmlnsWpc(); function WriteXmlAttrXmlnsWpc(_value); function ReadXmlAttrXmlnsMc(); function WriteXmlAttrXmlnsMc(_value); function ReadXmlAttrXmlnsO(); function WriteXmlAttrXmlnsO(_value); function ReadXmlAttrXmlnsR(); function WriteXmlAttrXmlnsR(_value); function ReadXmlAttrXmlnsM(); function WriteXmlAttrXmlnsM(_value); function ReadXmlAttrXmlnsV(); function WriteXmlAttrXmlnsV(_value); function ReadXmlAttrXmlnsWp14(); function WriteXmlAttrXmlnsWp14(_value); function ReadXmlAttrXmlnsWp(); function WriteXmlAttrXmlnsWp(_value); function ReadXmlAttrXmlnsW(); function WriteXmlAttrXmlnsW(_value); function ReadXmlAttrXmlnsW14(); function WriteXmlAttrXmlnsW14(_value); function ReadXmlAttrXmlnsW15(); function WriteXmlAttrXmlnsW15(_value); function ReadXmlAttrXmlnsW10(); function WriteXmlAttrXmlnsW10(_value); function ReadXmlAttrXmlnsWpg(); function WriteXmlAttrXmlnsWpg(_value); function ReadXmlAttrXmlnsWpi(); function WriteXmlAttrXmlnsWpi(_value); function ReadXmlAttrXmlnsWne(); function WriteXmlAttrXmlnsWne(_value); function ReadXmlAttrXmlnsWps(); function WriteXmlAttrXmlnsWps(_value); function ReadXmlAttrXmlnsWpsCustomData(); function WriteXmlAttrXmlnsWpsCustomData(_value); function ReadXmlAttrMcIgnorable(); function WriteXmlAttrMcIgnorable(_value); // multi property property Comments read ReadComments; function ReadComments(_index); function AddComment(): Comment; function AppendComment(): Comment; public // Attributes XmlAttrXmlnsWpc: OpenXmlAttribute; XmlAttrXmlnsMc: OpenXmlAttribute; XmlAttrXmlnsO: OpenXmlAttribute; XmlAttrXmlnsR: OpenXmlAttribute; XmlAttrXmlnsM: OpenXmlAttribute; XmlAttrXmlnsV: OpenXmlAttribute; XmlAttrXmlnsWp14: OpenXmlAttribute; XmlAttrXmlnsWp: OpenXmlAttribute; XmlAttrXmlnsW: OpenXmlAttribute; XmlAttrXmlnsW14: OpenXmlAttribute; XmlAttrXmlnsW15: OpenXmlAttribute; XmlAttrXmlnsW10: OpenXmlAttribute; XmlAttrXmlnsWpg: OpenXmlAttribute; XmlAttrXmlnsWpi: OpenXmlAttribute; XmlAttrXmlnsWne: OpenXmlAttribute; XmlAttrXmlnsWps: OpenXmlAttribute; XmlAttrXmlnsWpsCustomData: OpenXmlAttribute; XmlAttrMcIgnorable: OpenXmlAttribute; // Children end; function Comments.Create();overload; begin {self.}Create(nil, "w", "comments"); end; function Comments.Create(_node: XmlNode);overload; begin class(OpenXmlElement).Create(_node: XmlNode); end; function Comments.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 Comments.Init();override; begin pre := {self.}Prefix ? {self.}Prefix + ":" : ""; attributes_ := array(); attributes_pf_ := array( "xmlns:wpc": makeweakref(thisFunction(WriteXmlAttrXmlnsWpc)), "xmlns:mc": makeweakref(thisFunction(WriteXmlAttrXmlnsMc)), "xmlns:o": makeweakref(thisFunction(WriteXmlAttrXmlnsO)), "xmlns:r": makeweakref(thisFunction(WriteXmlAttrXmlnsR)), "xmlns:m": makeweakref(thisFunction(WriteXmlAttrXmlnsM)), "xmlns:v": makeweakref(thisFunction(WriteXmlAttrXmlnsV)), "xmlns:wp14": makeweakref(thisFunction(WriteXmlAttrXmlnsWp14)), "xmlns:wp": makeweakref(thisFunction(WriteXmlAttrXmlnsWp)), "xmlns:w": makeweakref(thisFunction(WriteXmlAttrXmlnsW)), "xmlns:w14": makeweakref(thisFunction(WriteXmlAttrXmlnsW14)), "xmlns:w15": makeweakref(thisFunction(WriteXmlAttrXmlnsW15)), "xmlns:w10": makeweakref(thisFunction(WriteXmlAttrXmlnsW10)), "xmlns:wpg": makeweakref(thisFunction(WriteXmlAttrXmlnsWpg)), "xmlns:wpi": makeweakref(thisFunction(WriteXmlAttrXmlnsWpi)), "xmlns:wne": makeweakref(thisFunction(WriteXmlAttrXmlnsWne)), "xmlns:wps": makeweakref(thisFunction(WriteXmlAttrXmlnsWps)), "xmlns:wpsCustomData": makeweakref(thisFunction(WriteXmlAttrXmlnsWpsCustomData)), "mc:Ignorable": makeweakref(thisFunction(WriteXmlAttrMcIgnorable)), ); sorted_child_ := array( pre + "comment": array(0, makeweakref(thisFunction(AppendComment))), ); container_ := new TSOfficeContainer(sorted_child_); end; function Comments.Copy(_obj: Comments);override; begin tslassigning_backup := tslassigning; tslassigning := 1; class(OpenXmlElement).Copy(_obj); if not ifnil(_obj.XmlnsWpc) then {self.}XmlnsWpc := _obj.XmlnsWpc; if not ifnil(_obj.XmlnsMc) then {self.}XmlnsMc := _obj.XmlnsMc; if not ifnil(_obj.XmlnsO) then {self.}XmlnsO := _obj.XmlnsO; if not ifnil(_obj.XmlnsR) then {self.}XmlnsR := _obj.XmlnsR; if not ifnil(_obj.XmlnsM) then {self.}XmlnsM := _obj.XmlnsM; if not ifnil(_obj.XmlnsV) then {self.}XmlnsV := _obj.XmlnsV; if not ifnil(_obj.XmlnsWp14) then {self.}XmlnsWp14 := _obj.XmlnsWp14; if not ifnil(_obj.XmlnsWp) then {self.}XmlnsWp := _obj.XmlnsWp; if not ifnil(_obj.XmlnsW) then {self.}XmlnsW := _obj.XmlnsW; if not ifnil(_obj.XmlnsW14) then {self.}XmlnsW14 := _obj.XmlnsW14; if not ifnil(_obj.XmlnsW15) then {self.}XmlnsW15 := _obj.XmlnsW15; if not ifnil(_obj.XmlnsW10) then {self.}XmlnsW10 := _obj.XmlnsW10; if not ifnil(_obj.XmlnsWpg) then {self.}XmlnsWpg := _obj.XmlnsWpg; if not ifnil(_obj.XmlnsWpi) then {self.}XmlnsWpi := _obj.XmlnsWpi; if not ifnil(_obj.XmlnsWne) then {self.}XmlnsWne := _obj.XmlnsWne; if not ifnil(_obj.XmlnsWps) then {self.}XmlnsWps := _obj.XmlnsWps; if not ifnil(_obj.XmlnsWpsCustomData) then {self.}XmlnsWpsCustomData := _obj.XmlnsWpsCustomData; if not ifnil(_obj.McIgnorable) then {self.}McIgnorable := _obj.McIgnorable; tslassigning := tslassigning_backup; end; function Comments.ReadXmlAttrXmlnsWpc(); begin return {self.}XmlAttrXmlnsWpc.Value; end; function Comments.WriteXmlAttrXmlnsWpc(_value); begin if ifnil({self.}XmlAttrXmlnsWpc) then begin {self.}XmlAttrXmlnsWpc := new OpenXmlAttribute("xmlns", "wpc", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWpc; end {self.}XmlAttrXmlnsWpc.Value := _value; end; function Comments.ReadXmlAttrXmlnsMc(); begin return {self.}XmlAttrXmlnsMc.Value; end; function Comments.WriteXmlAttrXmlnsMc(_value); begin if ifnil({self.}XmlAttrXmlnsMc) then begin {self.}XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsMc; end {self.}XmlAttrXmlnsMc.Value := _value; end; function Comments.ReadXmlAttrXmlnsO(); begin return {self.}XmlAttrXmlnsO.Value; end; function Comments.WriteXmlAttrXmlnsO(_value); begin if ifnil({self.}XmlAttrXmlnsO) then begin {self.}XmlAttrXmlnsO := new OpenXmlAttribute("xmlns", "o", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsO; end {self.}XmlAttrXmlnsO.Value := _value; end; function Comments.ReadXmlAttrXmlnsR(); begin return {self.}XmlAttrXmlnsR.Value; end; function Comments.WriteXmlAttrXmlnsR(_value); begin if ifnil({self.}XmlAttrXmlnsR) then begin {self.}XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsR; end {self.}XmlAttrXmlnsR.Value := _value; end; function Comments.ReadXmlAttrXmlnsM(); begin return {self.}XmlAttrXmlnsM.Value; end; function Comments.WriteXmlAttrXmlnsM(_value); begin if ifnil({self.}XmlAttrXmlnsM) then begin {self.}XmlAttrXmlnsM := new OpenXmlAttribute("xmlns", "m", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsM; end {self.}XmlAttrXmlnsM.Value := _value; end; function Comments.ReadXmlAttrXmlnsV(); begin return {self.}XmlAttrXmlnsV.Value; end; function Comments.WriteXmlAttrXmlnsV(_value); begin if ifnil({self.}XmlAttrXmlnsV) then begin {self.}XmlAttrXmlnsV := new OpenXmlAttribute("xmlns", "v", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsV; end {self.}XmlAttrXmlnsV.Value := _value; end; function Comments.ReadXmlAttrXmlnsWp14(); begin return {self.}XmlAttrXmlnsWp14.Value; end; function Comments.WriteXmlAttrXmlnsWp14(_value); begin if ifnil({self.}XmlAttrXmlnsWp14) then begin {self.}XmlAttrXmlnsWp14 := new OpenXmlAttribute("xmlns", "wp14", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWp14; end {self.}XmlAttrXmlnsWp14.Value := _value; end; function Comments.ReadXmlAttrXmlnsWp(); begin return {self.}XmlAttrXmlnsWp.Value; end; function Comments.WriteXmlAttrXmlnsWp(_value); begin if ifnil({self.}XmlAttrXmlnsWp) then begin {self.}XmlAttrXmlnsWp := new OpenXmlAttribute("xmlns", "wp", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWp; end {self.}XmlAttrXmlnsWp.Value := _value; end; function Comments.ReadXmlAttrXmlnsW(); begin return {self.}XmlAttrXmlnsW.Value; end; function Comments.WriteXmlAttrXmlnsW(_value); begin if ifnil({self.}XmlAttrXmlnsW) then begin {self.}XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsW; end {self.}XmlAttrXmlnsW.Value := _value; end; function Comments.ReadXmlAttrXmlnsW14(); begin return {self.}XmlAttrXmlnsW14.Value; end; function Comments.WriteXmlAttrXmlnsW14(_value); begin if ifnil({self.}XmlAttrXmlnsW14) then begin {self.}XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsW14; end {self.}XmlAttrXmlnsW14.Value := _value; end; function Comments.ReadXmlAttrXmlnsW15(); begin return {self.}XmlAttrXmlnsW15.Value; end; function Comments.WriteXmlAttrXmlnsW15(_value); begin if ifnil({self.}XmlAttrXmlnsW15) then begin {self.}XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsW15; end {self.}XmlAttrXmlnsW15.Value := _value; end; function Comments.ReadXmlAttrXmlnsW10(); begin return {self.}XmlAttrXmlnsW10.Value; end; function Comments.WriteXmlAttrXmlnsW10(_value); begin if ifnil({self.}XmlAttrXmlnsW10) then begin {self.}XmlAttrXmlnsW10 := new OpenXmlAttribute("xmlns", "w10", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsW10; end {self.}XmlAttrXmlnsW10.Value := _value; end; function Comments.ReadXmlAttrXmlnsWpg(); begin return {self.}XmlAttrXmlnsWpg.Value; end; function Comments.WriteXmlAttrXmlnsWpg(_value); begin if ifnil({self.}XmlAttrXmlnsWpg) then begin {self.}XmlAttrXmlnsWpg := new OpenXmlAttribute("xmlns", "wpg", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWpg; end {self.}XmlAttrXmlnsWpg.Value := _value; end; function Comments.ReadXmlAttrXmlnsWpi(); begin return {self.}XmlAttrXmlnsWpi.Value; end; function Comments.WriteXmlAttrXmlnsWpi(_value); begin if ifnil({self.}XmlAttrXmlnsWpi) then begin {self.}XmlAttrXmlnsWpi := new OpenXmlAttribute("xmlns", "wpi", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWpi; end {self.}XmlAttrXmlnsWpi.Value := _value; end; function Comments.ReadXmlAttrXmlnsWne(); begin return {self.}XmlAttrXmlnsWne.Value; end; function Comments.WriteXmlAttrXmlnsWne(_value); begin if ifnil({self.}XmlAttrXmlnsWne) then begin {self.}XmlAttrXmlnsWne := new OpenXmlAttribute("xmlns", "wne", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWne; end {self.}XmlAttrXmlnsWne.Value := _value; end; function Comments.ReadXmlAttrXmlnsWps(); begin return {self.}XmlAttrXmlnsWps.Value; end; function Comments.WriteXmlAttrXmlnsWps(_value); begin if ifnil({self.}XmlAttrXmlnsWps) then begin {self.}XmlAttrXmlnsWps := new OpenXmlAttribute("xmlns", "wps", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWps; end {self.}XmlAttrXmlnsWps.Value := _value; end; function Comments.ReadXmlAttrXmlnsWpsCustomData(); begin return {self.}XmlAttrXmlnsWpsCustomData.Value; end; function Comments.WriteXmlAttrXmlnsWpsCustomData(_value); begin if ifnil({self.}XmlAttrXmlnsWpsCustomData) then begin {self.}XmlAttrXmlnsWpsCustomData := new OpenXmlAttribute("xmlns", "wpsCustomData", nil); attributes_[length(attributes_)] := {self.}XmlAttrXmlnsWpsCustomData; end {self.}XmlAttrXmlnsWpsCustomData.Value := _value; end; function Comments.ReadXmlAttrMcIgnorable(); begin return {self.}XmlAttrMcIgnorable.Value; end; function Comments.WriteXmlAttrMcIgnorable(_value); begin if ifnil({self.}XmlAttrMcIgnorable) then begin {self.}XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); attributes_[length(attributes_)] := {self.}XmlAttrMcIgnorable; end {self.}XmlAttrMcIgnorable.Value := _value; end; function Comments.ReadComments(_index); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "comment", ind); end; function Comments.AddComment(): Comment; begin obj := new Comment(self, {self.}Prefix, "comment"); container_.Insert(obj); return obj; end; function Comments.AppendComment(): Comment; begin obj := new Comment(self, {self.}Prefix, "comment"); container_.Append(obj); return obj; end;