type LvlPPr = class(OpenXmlElement) public function Create();overload; function Create(_node);overload; function Create(_parent, _prefix, _local_name);overload; function Init();override; function InitAttributes();override; function InitChildren();override; function InitNode(_node);override; function Copy(_obj);override; property MarL read ReadXmlAttrMarL write WriteXmlAttrMarL; property Indent read ReadXmlAttrIndent write WriteXmlAttrIndent; property Algn read ReadXmlAttrAlgn write WriteXmlAttrAlgn; property DefTabSz read ReadXmlAttrDefTabSz write WriteXmlAttrDefTabSz; property Rtl read ReadXmlAttrRtl write WriteXmlAttrRtl; property EaLnBr read ReadXmlAttrEaLnBr write WriteXmlAttrEaLnBr; property LatinLnBrk read ReadXmlAttrLatinLnBrk write WriteXmlAttrLatinLnBrk; property HangingPunct read ReadXmlAttrHangingPunct write WriteXmlAttrHangingPunct; function ReadXmlAttrMarL(); function WriteXmlAttrMarL(_value); function ReadXmlAttrIndent(); function WriteXmlAttrIndent(_value); function ReadXmlAttrAlgn(); function WriteXmlAttrAlgn(_value); function ReadXmlAttrDefTabSz(); function WriteXmlAttrDefTabSz(_value); function ReadXmlAttrRtl(); function WriteXmlAttrRtl(_value); function ReadXmlAttrEaLnBr(); function WriteXmlAttrEaLnBr(_value); function ReadXmlAttrLatinLnBrk(); function WriteXmlAttrLatinLnBrk(_value); function ReadXmlAttrHangingPunct(); function WriteXmlAttrHangingPunct(_value); property SpcBef read ReadXmlChildSpcBef write WriteXmlChildSpcBef; property BuNone read ReadXmlChildBuNone write WriteXmlChildBuNone; property BuFont read ReadXmlChildBuFont write WriteXmlChildBuFont; property BuChar read ReadXmlChildBuChar write WriteXmlChildBuChar; function ReadXmlChildSpcBef(); function WriteXmlChildSpcBef(_value); function ReadXmlChildBuNone(); function WriteXmlChildBuNone(_value); function ReadXmlChildBuFont(); function WriteXmlChildBuFont(_value); function ReadXmlChildBuChar(); function WriteXmlChildBuChar(_value); public // Attributes XmlAttrMarL; XmlAttrIndent; XmlAttrAlgn; XmlAttrDefTabSz; XmlAttrRtl; XmlAttrEaLnBr; XmlAttrLatinLnBrk; XmlAttrHangingPunct; // Children LnSpc; XmlChildSpcBef; XmlChildBuNone; XmlChildBuFont; XmlChildBuChar; DefRPr; end; function LvlPPr.Create();overload; begin self.Create(nil, "a", "lvldpPr"); end; function LvlPPr.Create(_node);overload; begin class(OpenXmlElement).Create(_node); end; function LvlPPr.Create(_parent, _prefix, _local_name);overload; begin class(OpenXmlElement).Create(_parent, _prefix, _local_name); end; function LvlPPr.Init();override; begin self.XmlAttrMarL := new OpenXmlAttribute(nil, "marl", nil); self.XmlAttrIndent := new OpenXmlAttribute(nil, "indent", nil); self.XmlAttrAlgn := new OpenXmlAttribute(nil, "algn", nil); self.XmlAttrDefTabSz := new OpenXmlAttribute(nil, "defTabSz", nil); self.XmlAttrRtl := new OpenXmlAttribute(nil, "rtl", nil); self.XmlAttrEaLnBr := new OpenXmlAttribute(nil, "eaLnBrk", nil); self.XmlAttrLatinLnBrk := new OpenXmlAttribute(nil, "latinLnBrk", nil); self.XmlAttrHangingPunct := new OpenXmlAttribute(nil, "hangingPunct", nil); self.LnSpc := new LnSpc(self, self.Prefix, "lnSpc"); self.XmlChildSpcBef := new SpcBef(self, self.Prefix, "spcBef"); self.XmlChildBuNone := new OpenXmlEmpty(self, self.Prefix, "buNone"); self.XmlChildBuFont := new BuFont(self, self.Prefix, "buFont"); self.XmlChildBuChar := new BuChar(self, self.Prefix, "buChar"); self.DefRPr := new DefRPr(self, self.Prefix, "defRPr"); end; function LvlPPr.InitAttributes();override; begin attributes_ := array( self.XmlAttrMarL, self.XmlAttrIndent, self.XmlAttrAlgn, self.XmlAttrDefTabSz, self.XmlAttrRtl, self.XmlAttrEaLnBr, self.XmlAttrLatinLnBrk, self.XmlAttrHangingPunct, ); end; function LvlPPr.InitChildren();override; begin child_elements_ := array( 0: self.LnSpc, 1: self.XmlChildSpcBef, 2: self.XmlChildBuNone, 3: self.XmlChildBuFont, 4: self.XmlChildBuChar, 5: self.DefRPr, ); sorted_child_ := array( "": -1, self.LnSpc.ElementName: 0, self.XmlChildSpcBef.ElementName: 1, self.XmlChildBuNone.ElementName: 2, self.XmlChildBuFont.ElementName: 3, self.XmlChildBuChar.ElementName: 4, self.DefRPr.ElementName: 5, ); end; function LvlPPr.InitNode(_node);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 LvlPPr.Copy(_obj);override; begin if not ifnil(_obj.XmlAttrMarL.Value) then self.XmlAttrMarL.Value := _obj.XmlAttrMarL.Value; if not ifnil(_obj.XmlAttrIndent.Value) then self.XmlAttrIndent.Value := _obj.XmlAttrIndent.Value; if not ifnil(_obj.XmlAttrAlgn.Value) then self.XmlAttrAlgn.Value := _obj.XmlAttrAlgn.Value; if not ifnil(_obj.XmlAttrDefTabSz.Value) then self.XmlAttrDefTabSz.Value := _obj.XmlAttrDefTabSz.Value; if not ifnil(_obj.XmlAttrRtl.Value) then self.XmlAttrRtl.Value := _obj.XmlAttrRtl.Value; if not ifnil(_obj.XmlAttrEaLnBr.Value) then self.XmlAttrEaLnBr.Value := _obj.XmlAttrEaLnBr.Value; if not ifnil(_obj.XmlAttrLatinLnBrk.Value) then self.XmlAttrLatinLnBrk.Value := _obj.XmlAttrLatinLnBrk.Value; if not ifnil(_obj.XmlAttrHangingPunct.Value) then self.XmlAttrHangingPunct.Value := _obj.XmlAttrHangingPunct.Value; self.LnSpc.Copy(_obj.LnSpc); self.XmlChildSpcBef.Copy(_obj.XmlChildSpcBef); self.XmlChildBuNone.Copy(_obj.XmlChildBuNone); self.XmlChildBuFont.Copy(_obj.XmlChildBuFont); self.XmlChildBuChar.Copy(_obj.XmlChildBuChar); self.DefRPr.Copy(_obj.DefRPr); end; function LvlPPr.ReadXmlAttrMarL(); begin return self.XmlAttrMarL.Value; end; function LvlPPr.WriteXmlAttrMarL(_value); begin self.XmlAttrMarL.Value := _value; end; function LvlPPr.ReadXmlAttrIndent(); begin return self.XmlAttrIndent.Value; end; function LvlPPr.WriteXmlAttrIndent(_value); begin self.XmlAttrIndent.Value := _value; end; function LvlPPr.ReadXmlAttrAlgn(); begin return self.XmlAttrAlgn.Value; end; function LvlPPr.WriteXmlAttrAlgn(_value); begin self.XmlAttrAlgn.Value := _value; end; function LvlPPr.ReadXmlAttrDefTabSz(); begin return self.XmlAttrDefTabSz.Value; end; function LvlPPr.WriteXmlAttrDefTabSz(_value); begin self.XmlAttrDefTabSz.Value := _value; end; function LvlPPr.ReadXmlAttrRtl(); begin return self.XmlAttrRtl.Value; end; function LvlPPr.WriteXmlAttrRtl(_value); begin self.XmlAttrRtl.Value := _value; end; function LvlPPr.ReadXmlAttrEaLnBr(); begin return self.XmlAttrEaLnBr.Value; end; function LvlPPr.WriteXmlAttrEaLnBr(_value); begin self.XmlAttrEaLnBr.Value := _value; end; function LvlPPr.ReadXmlAttrLatinLnBrk(); begin return self.XmlAttrLatinLnBrk.Value; end; function LvlPPr.WriteXmlAttrLatinLnBrk(_value); begin self.XmlAttrLatinLnBrk.Value := _value; end; function LvlPPr.ReadXmlAttrHangingPunct(); begin return self.XmlAttrHangingPunct.Value; end; function LvlPPr.WriteXmlAttrHangingPunct(_value); begin self.XmlAttrHangingPunct.Value := _value; end; function LvlPPr.ReadXmlChildSpcBef(); begin return ifnil(self.XmlChildSpcBef.Value) ? false : true; end; function LvlPPr.WriteXmlChildSpcBef(_value); begin self.XmlChildSpcBef.Value := _value; end; function LvlPPr.ReadXmlChildBuNone(); begin return ifnil(self.XmlChildBuNone.Value) ? false : true; end; function LvlPPr.WriteXmlChildBuNone(_value); begin self.XmlChildBuNone.Value := _value; end; function LvlPPr.ReadXmlChildBuFont(); begin return ifnil(self.XmlChildBuFont.Value) ? false : true; end; function LvlPPr.WriteXmlChildBuFont(_value); begin self.XmlChildBuFont.Value := _value; end; function LvlPPr.ReadXmlChildBuChar(); begin return ifnil(self.XmlChildBuChar.Value) ? false : true; end; function LvlPPr.WriteXmlChildBuChar(_value); begin self.XmlChildBuChar.Value := _value; end;