type PPr = 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: PPr);override; property WidowControl read ReadXmlChildWidowControl write WriteXmlChildWidowControl; property KeepNext read ReadXmlChildKeepNext write WriteXmlChildKeepNext; property KeepLines read ReadXmlChildKeepLines write WriteXmlChildKeepLines; property ContextualSpacing read ReadXmlChildContextualSpacing write WriteXmlChildContextualSpacing; function ReadXmlChildWidowControl(); function WriteXmlChildWidowControl(_value); function ReadXmlChildKeepNext(); function WriteXmlChildKeepNext(_value); function ReadXmlChildKeepLines(); function WriteXmlChildKeepLines(_value); function ReadXmlChildContextualSpacing(); function WriteXmlChildContextualSpacing(_value); public // Attributes // Children SectPr: SectPr; Tabs: Tabs; XmlChildWidowControl: OpenXmlEmpty; SnapToGrid: PureWVal; PStyle: PureWVal; NumPr: NumPr; Jc: PureWVal; Ind: Ind; XmlChildKeepNext: OpenXmlEmpty; XmlChildKeepLines: OpenXmlEmpty; AdjustRightInd: PureWVal; Spacing: Spacing; OutlineLvl: PureWVal; AutoSpaceDE: PureWVal; AutoSpaceDN: PureWVal; RPr: RPr; PBdr: PBdr; XmlChildContextualSpacing: OpenXmlEmpty; end; function PPr.Create();overload; begin {self.}Create(nil, "w", "pPr"); end; function PPr.Create(_node: XmlNode);overload; begin class(OpenXmlElement).Create(_node: XmlNode); end; function PPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin class(OpenXmlElement).Create(_parent, _prefix, _local_name); end; function PPr.Init();override; begin {self.}SectPr := new SectPr(self, {self.}Prefix, "sectPr"); {self.}Tabs := new Tabs(self, {self.}Prefix, "tabs"); {self.}XmlChildWidowControl := new OpenXmlEmpty(self, {self.}Prefix, "widowControl"); {self.}SnapToGrid := new PureWVal(self, {self.}Prefix, "snapToGrid"); {self.}PStyle := new PureWVal(self, {self.}Prefix, "pStyle"); {self.}NumPr := new NumPr(self, {self.}Prefix, "numPr"); {self.}Jc := new PureWVal(self, {self.}Prefix, "jc"); {self.}Ind := new Ind(self, {self.}Prefix, "ind"); {self.}XmlChildKeepNext := new OpenXmlEmpty(self, {self.}Prefix, "keepNext"); {self.}XmlChildKeepLines := new OpenXmlEmpty(self, {self.}Prefix, "keepLines"); {self.}AdjustRightInd := new PureWVal(self, {self.}Prefix, "adjustRightInd"); {self.}Spacing := new Spacing(self, {self.}Prefix, "spacing"); {self.}OutlineLvl := new PureWVal(self, {self.}Prefix, "outlineLvl"); {self.}AutoSpaceDE := new PureWVal(self, {self.}Prefix, "autoSpaceDE"); {self.}AutoSpaceDN := new PureWVal(self, {self.}Prefix, "autoSpaceDN"); {self.}RPr := new RPr(self, {self.}Prefix, "rPr"); {self.}PBdr := new PBdr(self, {self.}Prefix, "pBdr"); {self.}XmlChildContextualSpacing := new OpenXmlEmpty(self, {self.}Prefix, "contextualSpacing"); end; function PPr.InitAttributes();override; begin attributes_ := array( ); end; function PPr.InitChildren();override; begin child_elements_ := array( 0: {self.}SectPr, 1: {self.}Tabs, 2: {self.}XmlChildWidowControl, 3: {self.}SnapToGrid, 4: {self.}PStyle, 5: {self.}NumPr, 6: {self.}Jc, 7: {self.}Ind, 8: {self.}XmlChildKeepNext, 9: {self.}XmlChildKeepLines, 10: {self.}AdjustRightInd, 11: {self.}Spacing, 12: {self.}OutlineLvl, 13: {self.}AutoSpaceDE, 14: {self.}AutoSpaceDN, 15: {self.}RPr, 16: {self.}PBdr, 17: {self.}XmlChildContextualSpacing, ); sorted_child_ := array( "": -1, {self.}SectPr.ElementName: 0, {self.}Tabs.ElementName: 1, {self.}XmlChildWidowControl.ElementName: 2, {self.}SnapToGrid.ElementName: 3, {self.}PStyle.ElementName: 4, {self.}NumPr.ElementName: 5, {self.}Jc.ElementName: 6, {self.}Ind.ElementName: 7, {self.}XmlChildKeepNext.ElementName: 8, {self.}XmlChildKeepLines.ElementName: 9, {self.}AdjustRightInd.ElementName: 10, {self.}Spacing.ElementName: 11, {self.}OutlineLvl.ElementName: 12, {self.}AutoSpaceDE.ElementName: 13, {self.}AutoSpaceDN.ElementName: 14, {self.}RPr.ElementName: 15, {self.}PBdr.ElementName: 16, {self.}XmlChildContextualSpacing.ElementName: 17, ); end; function PPr.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 PPr.Copy(_obj: PPr);override; begin {self.}SectPr.Copy(_obj.SectPr); {self.}Tabs.Copy(_obj.Tabs); {self.}XmlChildWidowControl.Copy(_obj.XmlChildWidowControl); {self.}SnapToGrid.Copy(_obj.SnapToGrid); {self.}PStyle.Copy(_obj.PStyle); {self.}NumPr.Copy(_obj.NumPr); {self.}Jc.Copy(_obj.Jc); {self.}Ind.Copy(_obj.Ind); {self.}XmlChildKeepNext.Copy(_obj.XmlChildKeepNext); {self.}XmlChildKeepLines.Copy(_obj.XmlChildKeepLines); {self.}AdjustRightInd.Copy(_obj.AdjustRightInd); {self.}Spacing.Copy(_obj.Spacing); {self.}OutlineLvl.Copy(_obj.OutlineLvl); {self.}AutoSpaceDE.Copy(_obj.AutoSpaceDE); {self.}AutoSpaceDN.Copy(_obj.AutoSpaceDN); {self.}RPr.Copy(_obj.RPr); {self.}PBdr.Copy(_obj.PBdr); {self.}XmlChildContextualSpacing.Copy(_obj.XmlChildContextualSpacing); end; function PPr.ReadXmlChildWidowControl(); begin return ifnil({self.}XmlChildWidowControl.Value) ? false : true; end; function PPr.WriteXmlChildWidowControl(_value); begin {self.}XmlChildWidowControl.Value := _value; end; function PPr.ReadXmlChildKeepNext(); begin return ifnil({self.}XmlChildKeepNext.Value) ? false : true; end; function PPr.WriteXmlChildKeepNext(_value); begin {self.}XmlChildKeepNext.Value := _value; end; function PPr.ReadXmlChildKeepLines(); begin return ifnil({self.}XmlChildKeepLines.Value) ? false : true; end; function PPr.WriteXmlChildKeepLines(_value); begin {self.}XmlChildKeepLines.Value := _value; end; function PPr.ReadXmlChildContextualSpacing(); begin return ifnil({self.}XmlChildContextualSpacing.Value) ? false : true; end; function PPr.WriteXmlChildContextualSpacing(_value); begin {self.}XmlChildContextualSpacing.Value := _value; end;