type RPr = 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 InitAttributes();override; function InitChildren();override; function InitNode(_node: XmlNode);override; function Copy(_obj: RPr);override; property I read ReadXmlChildI write WriteXmlChildI; property ICs read ReadXmlChildICs write WriteXmlChildICs; property B read ReadXmlChildB write WriteXmlChildB; property BCs read ReadXmlChildBCs write WriteXmlChildBCs; property Strike read ReadXmlChildStrike write WriteXmlChildStrike; property U read ReadXmlChildU write WriteXmlChildU; function ReadXmlChildI(); function WriteXmlChildI(_value); function ReadXmlChildICs(); function WriteXmlChildICs(_value); function ReadXmlChildB(); function WriteXmlChildB(_value); function ReadXmlChildBCs(); function WriteXmlChildBCs(_value); function ReadXmlChildStrike(); function WriteXmlChildStrike(_value); function ReadXmlChildU(); function WriteXmlChildU(_value); public // Attributes // Children NoProof: PureVal; WebHidden: PureWVal; RStyle: PureWVal; RFonts: RFonts; Kern: PureWVal; XmlChildI: OpenXmlEmpty; XmlChildICs: OpenXmlEmpty; XmlChildB: OpenXmlEmpty; XmlChildBCs: OpenXmlEmpty; XmlChildStrike: OpenXmlEmpty; Color: Color; Sz: Sz; SzCs: SzCs; XmlChildU: OpenXmlEmpty; Lang: Lang; W14Ligatures: PureWVal; end; function RPr.Create();overload; begin self.Create(nil, "w", "rPr"); end; function RPr.Create(_node: XmlNode);overload; begin class(OpenXmlElement).Create(_node: XmlNode); end; function RPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin class(OpenXmlElement).Create(_parent, _prefix, _local_name); end; function RPr.Init();override; begin self.NoProof := new PureVal(self, self.Prefix, "noProof"); self.WebHidden := new PureWVal(self, self.Prefix, "wedHidden"); self.RStyle := new PureWVal(self, self.Prefix, "rStyle"); self.RFonts := new RFonts(self, self.Prefix, "rFonts"); self.Kern := new PureWVal(self, self.Prefix, "kern"); self.XmlChildI := new OpenXmlEmpty(self, self.Prefix, "i"); self.XmlChildICs := new OpenXmlEmpty(self, self.Prefix, "iCs"); self.XmlChildB := new OpenXmlEmpty(self, self.Prefix, "b"); self.XmlChildBCs := new OpenXmlEmpty(self, self.Prefix, "bCs"); self.XmlChildStrike := new OpenXmlEmpty(self, self.Prefix, "strike"); self.Color := new Color(self, self.Prefix, "color"); self.Sz := new Sz(self, self.Prefix, "sz"); self.SzCs := new SzCs(self, self.Prefix, "szCs"); self.XmlChildU := new OpenXmlEmpty(self, self.Prefix, "u"); self.Lang := new Lang(self, self.Prefix, "lang"); self.W14Ligatures := new PureWVal(self, "w14", "ligatures"); end; function RPr.InitAttributes();override; begin attributes_ := array( ); end; function RPr.InitChildren();override; begin child_elements_ := array( 0: self.NoProof, 1: self.WebHidden, 2: self.RStyle, 3: self.RFonts, 4: self.Kern, 5: self.XmlChildI, 6: self.XmlChildICs, 7: self.XmlChildB, 8: self.XmlChildBCs, 9: self.XmlChildStrike, 10: self.Color, 11: self.Sz, 12: self.SzCs, 13: self.XmlChildU, 14: self.Lang, 15: self.W14Ligatures, ); sorted_child_ := array( "": -1, self.NoProof.ElementName: 0, self.WebHidden.ElementName: 1, self.RStyle.ElementName: 2, self.RFonts.ElementName: 3, self.Kern.ElementName: 4, self.XmlChildI.ElementName: 5, self.XmlChildICs.ElementName: 6, self.XmlChildB.ElementName: 7, self.XmlChildBCs.ElementName: 8, self.XmlChildStrike.ElementName: 9, self.Color.ElementName: 10, self.Sz.ElementName: 11, self.SzCs.ElementName: 12, self.XmlChildU.ElementName: 13, self.Lang.ElementName: 14, self.W14Ligatures.ElementName: 15, ); end; function RPr.InitNode(_node: XmlNode);override; begin if ifObj(self.XmlNode) then for k,v in child_elements_ do v.InitNode(nil); self.XmlNode := ifObj(_node) ? _node : nil; node := ifObj(_node) ? _node.FirstChild() : nil; flag := false; if ifnil(child_elements_[0]) and length(child_elements_) > 0 then begin flag := true; arr := child_elements_; child_elements_ := array(); end pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; while ifObj(node) do begin node_name := node.GetName(); pos := sorted_child_[node_name]; if ifnil(pos) or pos = -1 then begin obj := nil; case node_name of end; if ifObj(obj) then obj.InitNode(node); end else if flag then begin obj := arr[pos]; obj.InitNode(node); child_elements_[length(child_elements_)] := obj; end else begin child_elements_[pos].InitNode(node); end node := node.NextElement(); end end; function RPr.Copy(_obj: RPr);override; begin self.NoProof.Copy(_obj.NoProof); self.WebHidden.Copy(_obj.WebHidden); self.RStyle.Copy(_obj.RStyle); self.RFonts.Copy(_obj.RFonts); self.Kern.Copy(_obj.Kern); self.XmlChildI.Copy(_obj.XmlChildI); self.XmlChildICs.Copy(_obj.XmlChildICs); self.XmlChildB.Copy(_obj.XmlChildB); self.XmlChildBCs.Copy(_obj.XmlChildBCs); self.XmlChildStrike.Copy(_obj.XmlChildStrike); self.Color.Copy(_obj.Color); self.Sz.Copy(_obj.Sz); self.SzCs.Copy(_obj.SzCs); self.XmlChildU.Copy(_obj.XmlChildU); self.Lang.Copy(_obj.Lang); self.W14Ligatures.Copy(_obj.W14Ligatures); end; function RPr.ReadXmlChildI(); begin return ifnil(self.XmlChildI.Value) ? false : true; end; function RPr.WriteXmlChildI(_value); begin self.XmlChildI.Value := _value; end; function RPr.ReadXmlChildICs(); begin return ifnil(self.XmlChildICs.Value) ? false : true; end; function RPr.WriteXmlChildICs(_value); begin self.XmlChildICs.Value := _value; end; function RPr.ReadXmlChildB(); begin return ifnil(self.XmlChildB.Value) ? false : true; end; function RPr.WriteXmlChildB(_value); begin self.XmlChildB.Value := _value; end; function RPr.ReadXmlChildBCs(); begin return ifnil(self.XmlChildBCs.Value) ? false : true; end; function RPr.WriteXmlChildBCs(_value); begin self.XmlChildBCs.Value := _value; end; function RPr.ReadXmlChildStrike(); begin return ifnil(self.XmlChildStrike.Value) ? false : true; end; function RPr.WriteXmlChildStrike(_value); begin self.XmlChildStrike.Value := _value; end; function RPr.ReadXmlChildU(); begin return ifnil(self.XmlChildU.Value) ? false : true; end; function RPr.WriteXmlChildU(_value); begin self.XmlChildU.Value := _value; end;