type PgSz = 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 W read ReadXmlAttrW write WriteXmlAttrW; property H read ReadXmlAttrH write WriteXmlAttrH; property Orient read ReadXmlAttrOrient write WriteXmlAttrOrient; function ReadXmlAttrW(); function WriteXmlAttrW(_value); function ReadXmlAttrH(); function WriteXmlAttrH(_value); function ReadXmlAttrOrient(); function WriteXmlAttrOrient(_value); public // Attributes XmlAttrW; XmlAttrH; XmlAttrOrient; // Children end; function PgSz.Create();overload; begin self.Create(nil, "w", "pgSz"); end; function PgSz.Create(_node);overload; begin class(OpenXmlElement).Create(_node); end; function PgSz.Create(_parent, _prefix, _local_name);overload; begin class(OpenXmlElement).Create(_parent, _prefix, _local_name); end; function PgSz.Init();override; begin self.XmlAttrW := new OpenXmlAttribute(self.Prefix, "w", nil); self.XmlAttrH := new OpenXmlAttribute(self.Prefix, "h", nil); self.XmlAttrOrient := new OpenXmlAttribute(self.Prefix, "orient", nil); end; function PgSz.InitAttributes();override; begin attributes_ := array( self.XmlAttrW, self.XmlAttrH, self.XmlAttrOrient, ); end; function PgSz.InitChildren();override; begin child_elements_ := array( ); sorted_child_ := array( "": -1, ); end; function PgSz.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; end; function PgSz.Copy(_obj);override; begin if not ifnil(_obj.XmlAttrW.Value) then self.XmlAttrW.Value := _obj.XmlAttrW.Value; if not ifnil(_obj.XmlAttrH.Value) then self.XmlAttrH.Value := _obj.XmlAttrH.Value; if not ifnil(_obj.XmlAttrOrient.Value) then self.XmlAttrOrient.Value := _obj.XmlAttrOrient.Value; end; function PgSz.ReadXmlAttrW(); begin return self.XmlAttrW.Value; end; function PgSz.WriteXmlAttrW(_value); begin self.XmlAttrW.Value := _value; end; function PgSz.ReadXmlAttrH(); begin return self.XmlAttrH.Value; end; function PgSz.WriteXmlAttrH(_value); begin self.XmlAttrH.Value := _value; end; function PgSz.ReadXmlAttrOrient(); begin return self.XmlAttrOrient.Value; end; function PgSz.WriteXmlAttrOrient(_value); begin self.XmlAttrOrient.Value := _value; end;