type Ind = 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: Ind);override; property FirstLineChars read ReadXmlAttrFirstLineChars write WriteXmlAttrFirstLineChars; property FirstLine read ReadXmlAttrFirstLine write WriteXmlAttrFirstLine; property RightChars read ReadXmlAttrRightChars write WriteXmlAttrRightChars; property Right read ReadXmlAttrRight write WriteXmlAttrRight; property LeftChars read ReadXmlAttrLeftChars write WriteXmlAttrLeftChars; property Left read ReadXmlAttrLeft write WriteXmlAttrLeft; property Hanging read ReadXmlAttrHanging write WriteXmlAttrHanging; property HangingChars read ReadXmlAttrHangingChars write WriteXmlAttrHangingChars; function ReadXmlAttrFirstLineChars(); function WriteXmlAttrFirstLineChars(_value); function ReadXmlAttrFirstLine(); function WriteXmlAttrFirstLine(_value); function ReadXmlAttrRightChars(); function WriteXmlAttrRightChars(_value); function ReadXmlAttrRight(); function WriteXmlAttrRight(_value); function ReadXmlAttrLeftChars(); function WriteXmlAttrLeftChars(_value); function ReadXmlAttrLeft(); function WriteXmlAttrLeft(_value); function ReadXmlAttrHanging(); function WriteXmlAttrHanging(_value); function ReadXmlAttrHangingChars(); function WriteXmlAttrHangingChars(_value); public // Attributes XmlAttrFirstLineChars: OpenXmlAttribute; XmlAttrFirstLine: OpenXmlAttribute; XmlAttrRightChars: OpenXmlAttribute; XmlAttrRight: OpenXmlAttribute; XmlAttrLeftChars: OpenXmlAttribute; XmlAttrLeft: OpenXmlAttribute; XmlAttrHanging: OpenXmlAttribute; XmlAttrHangingChars: OpenXmlAttribute; // Children end; function Ind.Create();overload; begin {self.}Create(nil, "w", "ind"); end; function Ind.Create(_node: XmlNode);overload; begin class(OpenXmlElement).Create(_node: XmlNode); end; function Ind.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin class(OpenXmlElement).Create(_parent, _prefix, _local_name); end; function Ind.Init();override; begin {self.}XmlAttrFirstLineChars := new OpenXmlAttribute({self.}Prefix, "firstLineChars", nil); {self.}XmlAttrFirstLine := new OpenXmlAttribute({self.}Prefix, "firstLine", nil); {self.}XmlAttrRightChars := new OpenXmlAttribute({self.}Prefix, "rightChars", nil); {self.}XmlAttrRight := new OpenXmlAttribute({self.}Prefix, "right", nil); {self.}XmlAttrLeftChars := new OpenXmlAttribute({self.}Prefix, "leftChars", nil); {self.}XmlAttrLeft := new OpenXmlAttribute({self.}Prefix, "left", nil); {self.}XmlAttrHanging := new OpenXmlAttribute({self.}Prefix, "hainging", nil); {self.}XmlAttrHangingChars := new OpenXmlAttribute({self.}Prefix, "hangingChars", nil); end; function Ind.InitAttributes();override; begin attributes_ := array( {self.}XmlAttrFirstLineChars, {self.}XmlAttrFirstLine, {self.}XmlAttrRightChars, {self.}XmlAttrRight, {self.}XmlAttrLeftChars, {self.}XmlAttrLeft, {self.}XmlAttrHanging, {self.}XmlAttrHangingChars, ); end; function Ind.InitChildren();override; begin child_elements_ := array( ); sorted_child_ := array( "": -1, ); end; function Ind.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; end; function Ind.Copy(_obj: Ind);override; begin if not ifnil(_obj.XmlAttrFirstLineChars.Value) then {self.}XmlAttrFirstLineChars.Value := _obj.XmlAttrFirstLineChars.Value; if not ifnil(_obj.XmlAttrFirstLine.Value) then {self.}XmlAttrFirstLine.Value := _obj.XmlAttrFirstLine.Value; if not ifnil(_obj.XmlAttrRightChars.Value) then {self.}XmlAttrRightChars.Value := _obj.XmlAttrRightChars.Value; if not ifnil(_obj.XmlAttrRight.Value) then {self.}XmlAttrRight.Value := _obj.XmlAttrRight.Value; if not ifnil(_obj.XmlAttrLeftChars.Value) then {self.}XmlAttrLeftChars.Value := _obj.XmlAttrLeftChars.Value; if not ifnil(_obj.XmlAttrLeft.Value) then {self.}XmlAttrLeft.Value := _obj.XmlAttrLeft.Value; if not ifnil(_obj.XmlAttrHanging.Value) then {self.}XmlAttrHanging.Value := _obj.XmlAttrHanging.Value; if not ifnil(_obj.XmlAttrHangingChars.Value) then {self.}XmlAttrHangingChars.Value := _obj.XmlAttrHangingChars.Value; end; function Ind.ReadXmlAttrFirstLineChars(); begin return {self.}XmlAttrFirstLineChars.Value; end; function Ind.WriteXmlAttrFirstLineChars(_value); begin {self.}XmlAttrFirstLineChars.Value := _value; end; function Ind.ReadXmlAttrFirstLine(); begin return {self.}XmlAttrFirstLine.Value; end; function Ind.WriteXmlAttrFirstLine(_value); begin {self.}XmlAttrFirstLine.Value := _value; end; function Ind.ReadXmlAttrRightChars(); begin return {self.}XmlAttrRightChars.Value; end; function Ind.WriteXmlAttrRightChars(_value); begin {self.}XmlAttrRightChars.Value := _value; end; function Ind.ReadXmlAttrRight(); begin return {self.}XmlAttrRight.Value; end; function Ind.WriteXmlAttrRight(_value); begin {self.}XmlAttrRight.Value := _value; end; function Ind.ReadXmlAttrLeftChars(); begin return {self.}XmlAttrLeftChars.Value; end; function Ind.WriteXmlAttrLeftChars(_value); begin {self.}XmlAttrLeftChars.Value := _value; end; function Ind.ReadXmlAttrLeft(); begin return {self.}XmlAttrLeft.Value; end; function Ind.WriteXmlAttrLeft(_value); begin {self.}XmlAttrLeft.Value := _value; end; function Ind.ReadXmlAttrHanging(); begin return {self.}XmlAttrHanging.Value; end; function Ind.WriteXmlAttrHanging(_value); begin {self.}XmlAttrHanging.Value := _value; end; function Ind.ReadXmlAttrHangingChars(); begin return {self.}XmlAttrHangingChars.Value; end; function Ind.WriteXmlAttrHangingChars(_value); begin {self.}XmlAttrHangingChars.Value := _value; end;