diff --git a/autounit/DocxML.tsf b/autounit/DocxML.tsf index 3d2ec2f..6280664 100644 --- a/autounit/DocxML.tsf +++ b/autounit/DocxML.tsf @@ -4,11 +4,12 @@ uses TSSafeUnitConverter, SharedML, VML, DrawingML; type Properties = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Properties);override; + function Clone(): Properties;override; function ConvertToPoint();override; public @@ -85,11 +86,12 @@ end; type Document = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Document);override; + function Clone(): Document;override; function ConvertToPoint();override; public @@ -113,11 +115,12 @@ end; type Body = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Body);override; + function Clone(): Body;override; function ConvertToPoint();override; public @@ -151,11 +154,12 @@ end; type P = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: P);override; + function Clone(): P;override; function ConvertToPoint();override; public @@ -257,11 +261,12 @@ end; type FldSimple = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FldSimple);override; + function Clone(): FldSimple;override; function ConvertToPoint();override; public @@ -294,11 +299,12 @@ end; type CommentRange = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CommentRange);override; + function Clone(): CommentRange;override; function ConvertToPoint();override; public @@ -315,11 +321,12 @@ end; type HyperLink = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: HyperLink);override; + function Clone(): HyperLink;override; function ConvertToPoint();override; public @@ -352,11 +359,12 @@ end; type Bookmark = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Bookmark);override; + function Clone(): Bookmark;override; function ConvertToPoint();override; public @@ -377,11 +385,12 @@ end; type PPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PPr);override; + function Clone(): PPr;override; function ConvertToPoint();override; public @@ -393,11 +402,18 @@ public property KeepNext read ReadXmlChildKeepNext write WriteXmlChildKeepNext; property KeepLines read ReadXmlChildKeepLines write WriteXmlChildKeepLines; property MirrorIndents read ReadXmlChildMirrorIndents write WriteXmlChildMirrorIndents; + property Kinsoku read ReadXmlChildKinsoku write WriteXmlChildKinsoku; property PageBreakBefore read ReadXmlChildPageBreakBefore write WriteXmlChildPageBreakBefore; property SuppressAutoHyphens read ReadXmlChildSuppressAutoHyphens write WriteXmlChildSuppressAutoHyphens; property SuppressLineNumbers read ReadXmlChildSuppressLineNumbers write WriteXmlChildSuppressLineNumbers; property SuppressOverlap read ReadXmlChildSuppressOverlap write WriteXmlChildSuppressOverlap; + property OverflowPunct read ReadXmlChildOverflowPunct write WriteXmlChildOverflowPunct; + property AutoSpaceDE read ReadXmlChildAutoSpaceDE write WriteXmlChildAutoSpaceDE; + property AutoSpaceDN read ReadXmlChildAutoSpaceDN write WriteXmlChildAutoSpaceDN; property ContextualSpacing read ReadXmlChildContextualSpacing write WriteXmlChildContextualSpacing; + property WordWrap read ReadXmlChildWordWrap write WriteXmlChildWordWrap; + property TopLinePunct read ReadXmlChildTopLinePunct write WriteXmlChildTopLinePunct; + property Collapsed read ReadXmlChildCollapsed write WriteXmlChildCollapsed; function ReadXmlChildBidi(): OpenXmlSimpleType; function WriteXmlChildBidi(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildWidowControl(): OpenXmlSimpleType; @@ -410,6 +426,8 @@ public function WriteXmlChildKeepLines(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildMirrorIndents(): OpenXmlSimpleType; function WriteXmlChildMirrorIndents(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildKinsoku(): OpenXmlSimpleType; + function WriteXmlChildKinsoku(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildPageBreakBefore(): OpenXmlSimpleType; function WriteXmlChildPageBreakBefore(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildSuppressAutoHyphens(): OpenXmlSimpleType; @@ -418,8 +436,20 @@ public function WriteXmlChildSuppressLineNumbers(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildSuppressOverlap(): OpenXmlSimpleType; function WriteXmlChildSuppressOverlap(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildOverflowPunct(): OpenXmlSimpleType; + function WriteXmlChildOverflowPunct(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildAutoSpaceDE(): OpenXmlSimpleType; + function WriteXmlChildAutoSpaceDE(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildAutoSpaceDN(): OpenXmlSimpleType; + function WriteXmlChildAutoSpaceDN(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildContextualSpacing(): OpenXmlSimpleType; function WriteXmlChildContextualSpacing(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildWordWrap(): OpenXmlSimpleType; + function WriteXmlChildWordWrap(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildTopLinePunct(): OpenXmlSimpleType; + function WriteXmlChildTopLinePunct(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildCollapsed(): OpenXmlSimpleType; + function WriteXmlChildCollapsed(_value: nil_or_OpenXmlSimpleType); // normal property property SectPr read ReadXmlChildSectPr write WriteXmlChildSectPr; @@ -428,25 +458,18 @@ public property NumPr read ReadXmlChildNumPr write WriteXmlChildNumPr; property Jc read ReadXmlChildJc write WriteXmlChildJc; property Ind read ReadXmlChildInd write WriteXmlChildInd; - property Kinsoku read ReadXmlChildKinsoku write WriteXmlChildKinsoku; - property OverflowPunct read ReadXmlChildOverflowPunct write WriteXmlChildOverflowPunct; property AdjustRightInd read ReadXmlChildAdjustRightInd write WriteXmlChildAdjustRightInd; property Spacing read ReadXmlChildSpacing write WriteXmlChildSpacing; property OutlineLvl read ReadXmlChildOutlineLvl write WriteXmlChildOutlineLvl; - property AutoSpaceDE read ReadXmlChildAutoSpaceDE write WriteXmlChildAutoSpaceDE; - property AutoSpaceDN read ReadXmlChildAutoSpaceDN write WriteXmlChildAutoSpaceDN; property RPr read ReadXmlChildRPr write WriteXmlChildRPr; property PBdr read ReadXmlChildPBdr write WriteXmlChildPBdr; property Shd read ReadXmlChildShd write WriteXmlChildShd; - property WordWrap read ReadXmlChildWordWrap write WriteXmlChildWordWrap; property DivId read ReadXmlChildDivId write WriteXmlChildDivId; property CnfStyle read ReadXmlChildCnfStyle write WriteXmlChildCnfStyle; property FramePr read ReadXmlChildFramePr write WriteXmlChildFramePr; property TextboxTightWrap read ReadXmlChildTextboxTightWrap write WriteXmlChildTextboxTightWrap; - property TopLinePunct read ReadXmlChildTopLinePunct write WriteXmlChildTopLinePunct; property TextAlignment read ReadXmlChildTextAlignment write WriteXmlChildTextAlignment; property TextDirection read ReadXmlChildTextDirection write WriteXmlChildTextDirection; - property Collapsed read ReadXmlChildCollapsed write WriteXmlChildCollapsed; function ReadXmlChildSectPr(): SectPr; function WriteXmlChildSectPr(_p1: any; _p2: any); function ReadXmlChildTabs(): Tabs; @@ -459,28 +482,18 @@ public function WriteXmlChildJc(_p1: any; _p2: any); function ReadXmlChildInd(): Ind; function WriteXmlChildInd(_p1: any; _p2: any); - function ReadXmlChildKinsoku(): PureWVal; - function WriteXmlChildKinsoku(_p1: any; _p2: any); - function ReadXmlChildOverflowPunct(): PureWVal; - function WriteXmlChildOverflowPunct(_p1: any; _p2: any); function ReadXmlChildAdjustRightInd(): PureWVal; function WriteXmlChildAdjustRightInd(_p1: any; _p2: any); function ReadXmlChildSpacing(): Spacing; function WriteXmlChildSpacing(_p1: any; _p2: any); function ReadXmlChildOutlineLvl(): PureWVal; function WriteXmlChildOutlineLvl(_p1: any; _p2: any); - function ReadXmlChildAutoSpaceDE(): PureWVal; - function WriteXmlChildAutoSpaceDE(_p1: any; _p2: any); - function ReadXmlChildAutoSpaceDN(): PureWVal; - function WriteXmlChildAutoSpaceDN(_p1: any; _p2: any); function ReadXmlChildRPr(): RPr; function WriteXmlChildRPr(_p1: any; _p2: any); function ReadXmlChildPBdr(): PBdr; function WriteXmlChildPBdr(_p1: any; _p2: any); function ReadXmlChildShd(): Shd; function WriteXmlChildShd(_p1: any; _p2: any); - function ReadXmlChildWordWrap(): PureWVal; - function WriteXmlChildWordWrap(_p1: any; _p2: any); function ReadXmlChildDivId(): PureWVal; function WriteXmlChildDivId(_p1: any; _p2: any); function ReadXmlChildCnfStyle(): PureWVal; @@ -489,14 +502,10 @@ public function WriteXmlChildFramePr(_p1: any; _p2: any); function ReadXmlChildTextboxTightWrap(): PureWVal; function WriteXmlChildTextboxTightWrap(_p1: any; _p2: any); - function ReadXmlChildTopLinePunct(): PureWVal; - function WriteXmlChildTopLinePunct(_p1: any; _p2: any); function ReadXmlChildTextAlignment(): PureWVal; function WriteXmlChildTextAlignment(_p1: any; _p2: any); function ReadXmlChildTextDirection(): PureWVal; function WriteXmlChildTextDirection(_p1: any; _p2: any); - function ReadXmlChildCollapsed(): PureWVal; - function WriteXmlChildCollapsed(_p1: any; _p2: any); public // Children @@ -512,76 +521,82 @@ public XmlChildKeepNext: OpenXmlSimpleType; XmlChildKeepLines: OpenXmlSimpleType; XmlChildMirrorIndents: OpenXmlSimpleType; - XmlChildKinsoku: PureWVal; + XmlChildKinsoku: OpenXmlSimpleType; XmlChildPageBreakBefore: OpenXmlSimpleType; XmlChildSuppressAutoHyphens: OpenXmlSimpleType; XmlChildSuppressLineNumbers: OpenXmlSimpleType; XmlChildSuppressOverlap: OpenXmlSimpleType; - XmlChildOverflowPunct: PureWVal; + XmlChildOverflowPunct: OpenXmlSimpleType; XmlChildAdjustRightInd: PureWVal; XmlChildSpacing: Spacing; XmlChildOutlineLvl: PureWVal; - XmlChildAutoSpaceDE: PureWVal; - XmlChildAutoSpaceDN: PureWVal; + XmlChildAutoSpaceDE: OpenXmlSimpleType; + XmlChildAutoSpaceDN: OpenXmlSimpleType; XmlChildRPr: RPr; XmlChildPBdr: PBdr; XmlChildContextualSpacing: OpenXmlSimpleType; XmlChildShd: Shd; - XmlChildWordWrap: PureWVal; + XmlChildWordWrap: OpenXmlSimpleType; XmlChildDivId: PureWVal; XmlChildCnfStyle: PureWVal; XmlChildFramePr: FramePr; XmlChildTextboxTightWrap: PureWVal; - XmlChildTopLinePunct: PureWVal; + XmlChildTopLinePunct: OpenXmlSimpleType; XmlChildTextAlignment: PureWVal; XmlChildTextDirection: PureWVal; - XmlChildCollapsed: PureWVal; + XmlChildCollapsed: OpenXmlSimpleType; end; type PBdr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PBdr);override; + function Clone(): PBdr;override; function ConvertToPoint();override; public // normal property + property Bar read ReadXmlChildBar write WriteXmlChildBar; property Top read ReadXmlChildTop write WriteXmlChildTop; property Left read ReadXmlChildLeft write WriteXmlChildLeft; property Right read ReadXmlChildRight write WriteXmlChildRight; property Bottom read ReadXmlChildBottom write WriteXmlChildBottom; property Between read ReadXmlChildBetween write WriteXmlChildBetween; - function ReadXmlChildTop(): PBorder; + function ReadXmlChildBar(): Bdr; + function WriteXmlChildBar(_p1: any; _p2: any); + function ReadXmlChildTop(): Bdr; function WriteXmlChildTop(_p1: any; _p2: any); - function ReadXmlChildLeft(): PBorder; + function ReadXmlChildLeft(): Bdr; function WriteXmlChildLeft(_p1: any; _p2: any); - function ReadXmlChildRight(): PBorder; + function ReadXmlChildRight(): Bdr; function WriteXmlChildRight(_p1: any; _p2: any); - function ReadXmlChildBottom(): PBorder; + function ReadXmlChildBottom(): Bdr; function WriteXmlChildBottom(_p1: any; _p2: any); - function ReadXmlChildBetween(): PBorder; + function ReadXmlChildBetween(): Bdr; function WriteXmlChildBetween(_p1: any; _p2: any); public // Children - XmlChildTop: PBorder; - XmlChildLeft: PBorder; - XmlChildRight: PBorder; - XmlChildBottom: PBorder; - XmlChildBetween: PBorder; + XmlChildBar: Bdr; + XmlChildTop: Bdr; + XmlChildLeft: Bdr; + XmlChildRight: Bdr; + XmlChildBottom: Bdr; + XmlChildBetween: Bdr; end; type FramePr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FramePr);override; + function Clone(): FramePr;override; function ConvertToPoint();override; public @@ -656,66 +671,14 @@ public end; -type PBorder = class(OpenXmlCompositeElement) -public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; - function Init();override; - function Copy(_obj: PBorder);override; - function ConvertToPoint();override; - -public - // attributes property - property Val read ReadXmlAttrVal write WriteXmlAttrVal; - property Color read ReadXmlAttrColor write WriteXmlAttrColor; - property Space read ReadXmlAttrSpace write WriteXmlAttrSpace; - property Frame read ReadXmlAttrFrame write WriteXmlAttrFrame; - property Shadow read ReadXmlAttrShadow write WriteXmlAttrShadow; - property ThemeColor read ReadXmlAttrThemeColor write WriteXmlAttrThemeColor; - property ThemeShade read ReadXmlAttrThemeShade write WriteXmlAttrThemeShade; - property ThemeTint read ReadXmlAttrThemeTint write WriteXmlAttrThemeTint; - property Sz read ReadXmlAttrSz write WriteXmlAttrSz; - function ReadXmlAttrVal(); - function WriteXmlAttrVal(_value: any); - function ReadXmlAttrColor(); - function WriteXmlAttrColor(_value: any); - function ReadXmlAttrSpace(); - function WriteXmlAttrSpace(_value: any); - function ReadXmlAttrFrame(); - function WriteXmlAttrFrame(_value: any); - function ReadXmlAttrShadow(); - function WriteXmlAttrShadow(_value: any); - function ReadXmlAttrThemeColor(); - function WriteXmlAttrThemeColor(_value: any); - function ReadXmlAttrThemeShade(); - function WriteXmlAttrThemeShade(_value: any); - function ReadXmlAttrThemeTint(); - function WriteXmlAttrThemeTint(_value: any); - function ReadXmlAttrSz(); - function WriteXmlAttrSz(_value: any); - -public - // Attributes - XmlAttrVal: OpenXmlAttribute; - XmlAttrColor: OpenXmlAttribute; - XmlAttrSpace: OpenXmlAttribute; - XmlAttrFrame: OpenXmlAttribute; - XmlAttrShadow: OpenXmlAttribute; - XmlAttrThemeColor: OpenXmlAttribute; - XmlAttrThemeShade: OpenXmlAttribute; - XmlAttrThemeTint: OpenXmlAttribute; - XmlAttrSz: OpenXmlAttribute; - -end; - type Tabs = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Tabs);override; + function Clone(): Tabs;override; function ConvertToPoint();override; public @@ -733,11 +696,12 @@ end; type Tab = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Tab);override; + function Clone(): Tab;override; function ConvertToPoint();override; public @@ -762,11 +726,12 @@ end; type NumPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: NumPr);override; + function Clone(): NumPr;override; function ConvertToPoint();override; public @@ -787,11 +752,12 @@ end; type Ind = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Ind);override; + function Clone(): Ind;override; function ConvertToPoint();override; public @@ -836,11 +802,12 @@ end; type Spacing = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Spacing);override; + function Clone(): Spacing;override; function ConvertToPoint();override; public @@ -885,27 +852,40 @@ end; type RPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: RPr);override; + function Clone(): RPr;override; function ConvertToPoint();override; public // simple_type property + property NoProof read ReadXmlChildNoProof write WriteXmlChildNoProof; + property Outline read ReadXmlChildOutline write WriteXmlChildOutline; 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 Caps read ReadXmlChildCaps write WriteXmlChildCaps; property Strike read ReadXmlChildStrike write WriteXmlChildStrike; + property DStrike read ReadXmlChildDStrike write WriteXmlChildDStrike; + property Emboss read ReadXmlChildEmboss write WriteXmlChildEmboss; + property Imprint read ReadXmlChildImprint write WriteXmlChildImprint; property Cs read ReadXmlChildCs write WriteXmlChildCs; - property U read ReadXmlChildU write WriteXmlChildU; property OMath read ReadXmlChildOMath write WriteXmlChildOMath; property Shadow read ReadXmlChildShadow write WriteXmlChildShadow; property SpecVanish read ReadXmlChildSpecVanish write WriteXmlChildSpecVanish; property Vanish read ReadXmlChildVanish write WriteXmlChildVanish; + property SmallCaps read ReadXmlChildSmallCaps write WriteXmlChildSmallCaps; + property SnapToGrid read ReadXmlChildSnapToGrid write WriteXmlChildSnapToGrid; + property CntxtAlts read ReadXmlChildCntxtAlts write WriteXmlChildCntxtAlts; + function ReadXmlChildNoProof(): OpenXmlSimpleType; + function WriteXmlChildNoProof(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildOutline(): OpenXmlSimpleType; + function WriteXmlChildOutline(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildI(): OpenXmlSimpleType; function WriteXmlChildI(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildICs(): OpenXmlSimpleType; @@ -914,12 +894,18 @@ public function WriteXmlChildB(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildBCs(): OpenXmlSimpleType; function WriteXmlChildBCs(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildCaps(): OpenXmlSimpleType; + function WriteXmlChildCaps(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildStrike(): OpenXmlSimpleType; function WriteXmlChildStrike(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildDStrike(): OpenXmlSimpleType; + function WriteXmlChildDStrike(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildEmboss(): OpenXmlSimpleType; + function WriteXmlChildEmboss(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildImprint(): OpenXmlSimpleType; + function WriteXmlChildImprint(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildCs(): OpenXmlSimpleType; function WriteXmlChildCs(_value: nil_or_OpenXmlSimpleType); - function ReadXmlChildU(): OpenXmlSimpleType; - function WriteXmlChildU(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildOMath(): OpenXmlSimpleType; function WriteXmlChildOMath(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildShadow(): OpenXmlSimpleType; @@ -928,42 +914,41 @@ public function WriteXmlChildSpecVanish(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildVanish(): OpenXmlSimpleType; function WriteXmlChildVanish(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildSmallCaps(): OpenXmlSimpleType; + function WriteXmlChildSmallCaps(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildSnapToGrid(): OpenXmlSimpleType; + function WriteXmlChildSnapToGrid(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildCntxtAlts(): OpenXmlSimpleType; + function WriteXmlChildCntxtAlts(_value: nil_or_OpenXmlSimpleType); // normal property - property NoProof read ReadXmlChildNoProof write WriteXmlChildNoProof; - property Outline read ReadXmlChildOutline write WriteXmlChildOutline; property Position read ReadXmlChildPosition write WriteXmlChildPosition; property WebHidden read ReadXmlChildWebHidden write WriteXmlChildWebHidden; property RStyle read ReadXmlChildRStyle write WriteXmlChildRStyle; property Ins read ReadXmlChildIns write WriteXmlChildIns; property RFonts read ReadXmlChildRFonts write WriteXmlChildRFonts; property Kern read ReadXmlChildKern write WriteXmlChildKern; + property Spacing read ReadXmlChildSpacing write WriteXmlChildSpacing; property Bdr read ReadXmlChildBdr write WriteXmlChildBdr; - property Caps read ReadXmlChildCaps write WriteXmlChildCaps; property Del read ReadXmlChildDel write WriteXmlChildDel; - property DStrike read ReadXmlChildDStrike write WriteXmlChildDStrike; property Effect read ReadXmlChildEffect write WriteXmlChildEffect; property Em read ReadXmlChildEm write WriteXmlChildEm; - property Emboss read ReadXmlChildEmboss write WriteXmlChildEmboss; property FitText read ReadXmlChildFitText write WriteXmlChildFitText; property Highlight read ReadXmlChildHighlight write WriteXmlChildHighlight; property Color read ReadXmlChildColor write WriteXmlChildColor; property EastAsianLayout read ReadXmlChildEastAsianLayout write WriteXmlChildEastAsianLayout; property Sz read ReadXmlChildSz write WriteXmlChildSz; property SzCs read ReadXmlChildSzCs write WriteXmlChildSzCs; + property U read ReadXmlChildU write WriteXmlChildU; property Lang read ReadXmlChildLang write WriteXmlChildLang; - property Imprint read ReadXmlChildImprint write WriteXmlChildImprint; property VertAlign read ReadXmlChildVertAlign write WriteXmlChildVertAlign; - property Ligatures read ReadXmlChildLigatures write WriteXmlChildLigatures; property Rtl read ReadXmlChildRtl write WriteXmlChildRtl; property Shd read ReadXmlChildShd write WriteXmlChildShd; - property SmallCaps read ReadXmlChildSmallCaps write WriteXmlChildSmallCaps; property W read ReadXmlChildW write WriteXmlChildW; - function ReadXmlChildNoProof(): PureVal; - function WriteXmlChildNoProof(_p1: any; _p2: any); - function ReadXmlChildOutline(): PureVal; - function WriteXmlChildOutline(_p1: any; _p2: any); - function ReadXmlChildPosition(): PureVal; + property Ligatures read ReadXmlChildLigatures write WriteXmlChildLigatures; + property NumForm read ReadXmlChildNumForm write WriteXmlChildNumForm; + property NumSpacing read ReadXmlChildNumSpacing write WriteXmlChildNumSpacing; + function ReadXmlChildPosition(): PureWVal; function WriteXmlChildPosition(_p1: any; _p2: any); function ReadXmlChildWebHidden(): PureWVal; function WriteXmlChildWebHidden(_p1: any; _p2: any); @@ -975,20 +960,16 @@ public function WriteXmlChildRFonts(_p1: any; _p2: any); function ReadXmlChildKern(): PureWVal; function WriteXmlChildKern(_p1: any; _p2: any); + function ReadXmlChildSpacing(): PureWVal; + function WriteXmlChildSpacing(_p1: any; _p2: any); function ReadXmlChildBdr(): Bdr; function WriteXmlChildBdr(_p1: any; _p2: any); - function ReadXmlChildCaps(): PureWVal; - function WriteXmlChildCaps(_p1: any; _p2: any); function ReadXmlChildDel(): Del; function WriteXmlChildDel(_p1: any; _p2: any); - function ReadXmlChildDStrike(): PureWVal; - function WriteXmlChildDStrike(_p1: any; _p2: any); function ReadXmlChildEffect(): PureWVal; function WriteXmlChildEffect(_p1: any; _p2: any); function ReadXmlChildEm(): PureWVal; function WriteXmlChildEm(_p1: any; _p2: any); - function ReadXmlChildEmboss(): PureWVal; - function WriteXmlChildEmboss(_p1: any; _p2: any); function ReadXmlChildFitText(): FitText; function WriteXmlChildFitText(_p1: any; _p2: any); function ReadXmlChildHighlight(): Highlight; @@ -1001,45 +982,49 @@ public function WriteXmlChildSz(_p1: any; _p2: any); function ReadXmlChildSzCs(): SzCs; function WriteXmlChildSzCs(_p1: any; _p2: any); + function ReadXmlChildU(): U; + function WriteXmlChildU(_p1: any; _p2: any); function ReadXmlChildLang(): Lang; function WriteXmlChildLang(_p1: any; _p2: any); - function ReadXmlChildImprint(): PureWVal; - function WriteXmlChildImprint(_p1: any; _p2: any); function ReadXmlChildVertAlign(): PureWVal; function WriteXmlChildVertAlign(_p1: any; _p2: any); - function ReadXmlChildLigatures(): PureWVal; - function WriteXmlChildLigatures(_p1: any; _p2: any); function ReadXmlChildRtl(): PureWVal; function WriteXmlChildRtl(_p1: any; _p2: any); function ReadXmlChildShd(): Shd; function WriteXmlChildShd(_p1: any; _p2: any); - function ReadXmlChildSmallCaps(): PureWVal; - function WriteXmlChildSmallCaps(_p1: any; _p2: any); function ReadXmlChildW(): PureWVal; function WriteXmlChildW(_p1: any; _p2: any); + function ReadXmlChildLigatures(): PureWVal; + function WriteXmlChildLigatures(_p1: any; _p2: any); + function ReadXmlChildNumForm(): PureWVal; + function WriteXmlChildNumForm(_p1: any; _p2: any); + function ReadXmlChildNumSpacing(): PureWVal; + function WriteXmlChildNumSpacing(_p1: any; _p2: any); public // Children - XmlChildNoProof: PureVal; - XmlChildOutline: PureVal; - XmlChildPosition: PureVal; + XmlChildNoProof: OpenXmlSimpleType; + XmlChildOutline: OpenXmlSimpleType; + XmlChildPosition: PureWVal; XmlChildWebHidden: PureWVal; XmlChildRStyle: PureWVal; XmlChildIns: Ins; XmlChildRFonts: RFonts; XmlChildKern: PureWVal; + XmlChildSpacing: PureWVal; XmlChildI: OpenXmlSimpleType; XmlChildICs: OpenXmlSimpleType; XmlChildB: OpenXmlSimpleType; XmlChildBCs: OpenXmlSimpleType; XmlChildBdr: Bdr; - XmlChildCaps: PureWVal; + XmlChildCaps: OpenXmlSimpleType; XmlChildDel: Del; XmlChildStrike: OpenXmlSimpleType; - XmlChildDStrike: PureWVal; + XmlChildDStrike: OpenXmlSimpleType; XmlChildEffect: PureWVal; XmlChildEm: PureWVal; - XmlChildEmboss: PureWVal; + XmlChildEmboss: OpenXmlSimpleType; + XmlChildImprint: OpenXmlSimpleType; XmlChildFitText: FitText; XmlChildHighlight: Highlight; XmlChildColor: Color; @@ -1047,28 +1032,58 @@ public XmlChildCs: OpenXmlSimpleType; XmlChildSz: Sz; XmlChildSzCs: SzCs; - XmlChildU: OpenXmlSimpleType; + XmlChildU: U; XmlChildLang: Lang; - XmlChildImprint: PureWVal; XmlChildVertAlign: PureWVal; - XmlChildLigatures: PureWVal; XmlChildRtl: PureWVal; XmlChildOMath: OpenXmlSimpleType; XmlChildShadow: OpenXmlSimpleType; XmlChildSpecVanish: OpenXmlSimpleType; XmlChildVanish: OpenXmlSimpleType; XmlChildShd: Shd; - XmlChildSmallCaps: PureWVal; + XmlChildSmallCaps: OpenXmlSimpleType; XmlChildW: PureWVal; + XmlChildSnapToGrid: OpenXmlSimpleType; + XmlChildLigatures: PureWVal; + XmlChildCntxtAlts: OpenXmlSimpleType; + XmlChildNumForm: PureWVal; + XmlChildNumSpacing: PureWVal; +end; + +type U = class(OpenXmlCompositeElement) +public + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function Copy(_obj: U);override; + function Clone(): U;override; + function ConvertToPoint();override; + +public + // attributes property + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + property Color read ReadXmlAttrColor write WriteXmlAttrColor; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value: any); + function ReadXmlAttrColor(); + function WriteXmlAttrColor(_value: any); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + XmlAttrColor: OpenXmlAttribute; + end; type Shd = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Shd);override; + function Clone(): Shd;override; function ConvertToPoint();override; public @@ -1117,11 +1132,12 @@ end; type Highlight = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Highlight);override; + function Clone(): Highlight;override; function ConvertToPoint();override; public @@ -1138,11 +1154,12 @@ end; type FitText = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FitText);override; + function Clone(): FitText;override; function ConvertToPoint();override; public @@ -1163,11 +1180,12 @@ end; type EastAsianLayout = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: EastAsianLayout);override; + function Clone(): EastAsianLayout;override; function ConvertToPoint();override; public @@ -1200,11 +1218,12 @@ end; type Del = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Del);override; + function Clone(): Del;override; function ConvertToPoint();override; public @@ -1253,11 +1272,12 @@ end; type Bdr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Bdr);override; + function Clone(): Bdr;override; function ConvertToPoint();override; public @@ -1306,11 +1326,12 @@ end; type RFonts = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: RFonts);override; + function Clone(): RFonts;override; function ConvertToPoint();override; public @@ -1359,11 +1380,12 @@ end; type SzCs = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SzCs);override; + function Clone(): SzCs;override; function ConvertToPoint();override; public @@ -1380,11 +1402,12 @@ end; type Sz = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Sz);override; + function Clone(): Sz;override; function ConvertToPoint();override; public @@ -1401,11 +1424,12 @@ end; type PureVal = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PureVal);override; + function Clone(): PureVal;override; function ConvertToPoint();override; public @@ -1422,11 +1446,12 @@ end; type PureWVal = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PureWVal);override; + function Clone(): PureWVal;override; function ConvertToPoint();override; public @@ -1443,11 +1468,12 @@ end; type Color = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Color);override; + function Clone(): Color;override; function ConvertToPoint();override; public @@ -1468,11 +1494,12 @@ end; type Lang = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Lang);override; + function Clone(): Lang;override; function ConvertToPoint();override; public @@ -1497,11 +1524,12 @@ end; type R = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: R);override; + function Clone(): R;override; function ConvertToPoint();override; public @@ -1598,11 +1626,12 @@ end; type CommentReference = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CommentReference);override; + function Clone(): CommentReference;override; function ConvertToPoint();override; public @@ -1619,11 +1648,12 @@ end; type Object = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Object);override; + function Clone(): Object;override; function ConvertToPoint();override; public @@ -1663,11 +1693,12 @@ end; type FootnoteReference = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FootnoteReference);override; + function Clone(): FootnoteReference;override; function ConvertToPoint();override; public @@ -1684,11 +1715,12 @@ end; type FldChar = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FldChar);override; + function Clone(): FldChar;override; function ConvertToPoint();override; public @@ -1713,11 +1745,12 @@ end; type InstrText = class(OpenXmlTextElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: InstrText);override; + function Clone(): InstrText;override; function ConvertToPoint();override; public @@ -1734,11 +1767,12 @@ end; type Br = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Br);override; + function Clone(): Br;override; function ConvertToPoint();override; public @@ -1755,11 +1789,12 @@ end; type TxbxContent = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TxbxContent);override; + function Clone(): TxbxContent;override; function ConvertToPoint();override; public @@ -1777,11 +1812,12 @@ end; type Drawing = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Drawing);override; + function Clone(): Drawing;override; function ConvertToPoint();override; public @@ -1802,11 +1838,12 @@ end; type T = class(OpenXmlTextElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: T);override; + function Clone(): T;override; function ConvertToPoint();override; public @@ -1823,11 +1860,12 @@ end; type Tbl = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Tbl);override; + function Clone(): Tbl;override; function ConvertToPoint();override; public @@ -1860,15 +1898,21 @@ end; type TblPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblPr);override; + function Clone(): TblPr;override; function ConvertToPoint();override; public + // simple_type property + property BidiVisual read ReadXmlChildBidiVisual write WriteXmlChildBidiVisual; + function ReadXmlChildBidiVisual(): OpenXmlSimpleType; + function WriteXmlChildBidiVisual(_value: nil_or_OpenXmlSimpleType); + // normal property property Jc read ReadXmlChildJc write WriteXmlChildJc; property Shd read ReadXmlChildShd write WriteXmlChildShd; @@ -1892,7 +1936,7 @@ public function WriteXmlChildTblStyle(_p1: any; _p2: any); function ReadXmlChildTblW(): TblW; function WriteXmlChildTblW(_p1: any; _p2: any); - function ReadXmlChildTblInd(): TblW; + function ReadXmlChildTblInd(): TblInd; function WriteXmlChildTblInd(_p1: any; _p2: any); function ReadXmlChildTblLayout(): TblLayout; function WriteXmlChildTblLayout(_p1: any; _p2: any); @@ -1918,8 +1962,9 @@ public XmlChildJc: PureWVal; XmlChildShd: Shd; XmlChildTblStyle: PureWVal; + XmlChildBidiVisual: OpenXmlSimpleType; XmlChildTblW: TblW; - XmlChildTblInd: TblW; + XmlChildTblInd: TblInd; XmlChildTblLayout: TblLayout; XmlChildTblLook: TblLook; XmlChildTblBorders: TblBorders; @@ -1933,11 +1978,12 @@ end; type TblCellSpacing = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblCellSpacing);override; + function Clone(): TblCellSpacing;override; function ConvertToPoint();override; public @@ -1958,11 +2004,12 @@ end; type TblW = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblW);override; + function Clone(): TblW;override; function ConvertToPoint();override; public @@ -1983,11 +2030,12 @@ end; type TblLayout = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblLayout);override; + function Clone(): TblLayout;override; function ConvertToPoint();override; public @@ -2004,11 +2052,12 @@ end; type TblLook = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblLook);override; + function Clone(): TblLook;override; function ConvertToPoint();override; public @@ -2049,11 +2098,12 @@ end; type TblBorders = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblBorders);override; + function Clone(): TblBorders;override; function ConvertToPoint();override; public @@ -2065,77 +2115,37 @@ public property Right read ReadXmlChildRight write WriteXmlChildRight; property InsideH read ReadXmlChildInsideH write WriteXmlChildInsideH; property InsideV read ReadXmlChildInsideV write WriteXmlChildInsideV; - function ReadXmlChildTop(): TblBorder; + function ReadXmlChildTop(): Bdr; function WriteXmlChildTop(_p1: any; _p2: any); - function ReadXmlChildLeft(): TblBorder; + function ReadXmlChildLeft(): Bdr; function WriteXmlChildLeft(_p1: any; _p2: any); - function ReadXmlChildBottom(): TblBorder; + function ReadXmlChildBottom(): Bdr; function WriteXmlChildBottom(_p1: any; _p2: any); - function ReadXmlChildRight(): TblBorder; + function ReadXmlChildRight(): Bdr; function WriteXmlChildRight(_p1: any; _p2: any); - function ReadXmlChildInsideH(): TblBorder; + function ReadXmlChildInsideH(): Bdr; function WriteXmlChildInsideH(_p1: any; _p2: any); - function ReadXmlChildInsideV(): TblBorder; + function ReadXmlChildInsideV(): Bdr; function WriteXmlChildInsideV(_p1: any; _p2: any); public // Children - XmlChildTop: TblBorder; - XmlChildLeft: TblBorder; - XmlChildBottom: TblBorder; - XmlChildRight: TblBorder; - XmlChildInsideH: TblBorder; - XmlChildInsideV: TblBorder; -end; - -type TblBorder = class(OpenXmlCompositeElement) -public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; - function Init();override; - function Copy(_obj: TblBorder);override; - function ConvertToPoint();override; - -public - // attributes property - property Val read ReadXmlAttrVal write WriteXmlAttrVal; - property Color read ReadXmlAttrColor write WriteXmlAttrColor; - property Space read ReadXmlAttrSpace write WriteXmlAttrSpace; - property ThemeColor read ReadXmlAttrThemeColor write WriteXmlAttrThemeColor; - property ThemeTint read ReadXmlAttrThemeTint write WriteXmlAttrThemeTint; - property Sz read ReadXmlAttrSz write WriteXmlAttrSz; - function ReadXmlAttrVal(); - function WriteXmlAttrVal(_value: any); - function ReadXmlAttrColor(); - function WriteXmlAttrColor(_value: any); - function ReadXmlAttrSpace(); - function WriteXmlAttrSpace(_value: any); - function ReadXmlAttrThemeColor(); - function WriteXmlAttrThemeColor(_value: any); - function ReadXmlAttrThemeTint(); - function WriteXmlAttrThemeTint(_value: any); - function ReadXmlAttrSz(); - function WriteXmlAttrSz(_value: any); - -public - // Attributes - XmlAttrVal: OpenXmlAttribute; - XmlAttrColor: OpenXmlAttribute; - XmlAttrSpace: OpenXmlAttribute; - XmlAttrThemeColor: OpenXmlAttribute; - XmlAttrThemeTint: OpenXmlAttribute; - XmlAttrSz: OpenXmlAttribute; - + XmlChildTop: Bdr; + XmlChildLeft: Bdr; + XmlChildBottom: Bdr; + XmlChildRight: Bdr; + XmlChildInsideH: Bdr; + XmlChildInsideV: Bdr; end; type TblGrid = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblGrid);override; + function Clone(): TblGrid;override; function ConvertToPoint();override; public @@ -2153,11 +2163,12 @@ end; type GridCol = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: GridCol);override; + function Clone(): GridCol;override; function ConvertToPoint();override; public @@ -2174,11 +2185,12 @@ end; type Tr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Tr);override; + function Clone(): Tr;override; function ConvertToPoint();override; public @@ -2197,7 +2209,10 @@ public function WriteXmlAttrRsidTr(_value: any); // normal property + property TblPrEx read ReadXmlChildTblPrEx write WriteXmlChildTblPrEx; property TrPr read ReadXmlChildTrPr write WriteXmlChildTrPr; + function ReadXmlChildTblPrEx(): TblPrEx; + function WriteXmlChildTblPrEx(_p1: any; _p2: any); function ReadXmlChildTrPr(): TrPr; function WriteXmlChildTrPr(_p1: any; _p2: any); @@ -2221,16 +2236,113 @@ public XmlAttrRsidTr: OpenXmlAttribute; // Children + XmlChildTblPrEx: TblPrEx; XmlChildTrPr: TrPr; end; +type TblPrEx = class(OpenXmlCompositeElement) +public + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function Copy(_obj: TblPrEx);override; + function Clone(): TblPrEx;override; + function ConvertToPoint();override; + +public + + // normal property + property Jc read ReadXmlChildJc write WriteXmlChildJc; + property Shd read ReadXmlChildShd write WriteXmlChildShd; + property TblBorders read ReadXmlChildTblBorders write WriteXmlChildTblBorders; + property TblCellMar read ReadXmlChildTblCellMar write WriteXmlChildTblCellMar; + property TblCellSpacing read ReadXmlChildTblCellSpacing write WriteXmlChildTblCellSpacing; + property TblInd read ReadXmlChildTblInd write WriteXmlChildTblInd; + property TblLayout read ReadXmlChildTblLayout write WriteXmlChildTblLayout; + property TblLook read ReadXmlChildTblLook write WriteXmlChildTblLook; + property TblW read ReadXmlChildTblW write WriteXmlChildTblW; + property TblPrExChange read ReadXmlChildTblPrExChange write WriteXmlChildTblPrExChange; + function ReadXmlChildJc(): PureWVal; + function WriteXmlChildJc(_p1: any; _p2: any); + function ReadXmlChildShd(): Shd; + function WriteXmlChildShd(_p1: any; _p2: any); + function ReadXmlChildTblBorders(): TblBorders; + function WriteXmlChildTblBorders(_p1: any; _p2: any); + function ReadXmlChildTblCellMar(): TblCellMar; + function WriteXmlChildTblCellMar(_p1: any; _p2: any); + function ReadXmlChildTblCellSpacing(): TblCellSpacing; + function WriteXmlChildTblCellSpacing(_p1: any; _p2: any); + function ReadXmlChildTblInd(): TblInd; + function WriteXmlChildTblInd(_p1: any; _p2: any); + function ReadXmlChildTblLayout(): TblLayout; + function WriteXmlChildTblLayout(_p1: any; _p2: any); + function ReadXmlChildTblLook(): TblLook; + function WriteXmlChildTblLook(_p1: any; _p2: any); + function ReadXmlChildTblW(): TblW; + function WriteXmlChildTblW(_p1: any; _p2: any); + function ReadXmlChildTblPrExChange(): TblPrExChange; + function WriteXmlChildTblPrExChange(_p1: any; _p2: any); + +public + // Children + XmlChildJc: PureWVal; + XmlChildShd: Shd; + XmlChildTblBorders: TblBorders; + XmlChildTblCellMar: TblCellMar; + XmlChildTblCellSpacing: TblCellSpacing; + XmlChildTblInd: TblInd; + XmlChildTblLayout: TblLayout; + XmlChildTblLook: TblLook; + XmlChildTblW: TblW; + XmlChildTblPrExChange: TblPrExChange; +end; + +type TblPrExChange = class(OpenXmlCompositeElement) +public + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function Copy(_obj: TblPrExChange);override; + function Clone(): TblPrExChange;override; + function ConvertToPoint();override; + +public + // attributes property + property Author read ReadXmlAttrAuthor write WriteXmlAttrAuthor; + property Date read ReadXmlAttrDate write WriteXmlAttrDate; + property Id read ReadXmlAttrId write WriteXmlAttrId; + function ReadXmlAttrAuthor(); + function WriteXmlAttrAuthor(_value: any); + function ReadXmlAttrDate(); + function WriteXmlAttrDate(_value: any); + function ReadXmlAttrId(); + function WriteXmlAttrId(_value: any); + + // normal property + property TblPrEx read ReadXmlChildTblPrEx write WriteXmlChildTblPrEx; + function ReadXmlChildTblPrEx(): TblPrEx; + function WriteXmlChildTblPrEx(_p1: any; _p2: any); + +public + // Attributes + XmlAttrAuthor: OpenXmlAttribute; + XmlAttrDate: OpenXmlAttribute; + XmlAttrId: OpenXmlAttribute; + + // Children + XmlChildTblPrEx: TblPrEx; +end; + type TrPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TrPr);override; + function Clone(): TrPr;override; function ConvertToPoint();override; public @@ -2273,11 +2385,12 @@ end; type Ins = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Ins);override; + function Clone(): Ins;override; function ConvertToPoint();override; public @@ -2314,11 +2427,12 @@ end; type CnfStyle = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CnfStyle);override; + function Clone(): CnfStyle;override; function ConvertToPoint();override; public @@ -2383,36 +2497,38 @@ end; type TrHeight = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TrHeight);override; + function Clone(): TrHeight;override; function ConvertToPoint();override; public // attributes property property HRule read ReadXmlAttrHRule write WriteXmlAttrHRule; - property val read ReadXmlAttrval write WriteXmlAttrval; + property Val read ReadXmlAttrVal write WriteXmlAttrVal; function ReadXmlAttrHRule(); function WriteXmlAttrHRule(_value: any); - function ReadXmlAttrval(); - function WriteXmlAttrval(_value: any); + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value: any); public // Attributes XmlAttrHRule: OpenXmlAttribute; - XmlAttrval: OpenXmlAttribute; + XmlAttrVal: OpenXmlAttribute; end; type Tc = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Tc);override; + function Clone(): Tc;override; function ConvertToPoint();override; public @@ -2441,28 +2557,36 @@ end; type TcPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TcPr);override; + function Clone(): TcPr;override; function ConvertToPoint();override; public // simple_type property property VMerge read ReadXmlChildVMerge write WriteXmlChildVMerge; + property NoWrap read ReadXmlChildNoWrap write WriteXmlChildNoWrap; property HideMark read ReadXmlChildHideMark write WriteXmlChildHideMark; + property TcFitText read ReadXmlChildTcFitText write WriteXmlChildTcFitText; function ReadXmlChildVMerge(): OpenXmlSimpleType; function WriteXmlChildVMerge(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildNoWrap(): OpenXmlSimpleType; + function WriteXmlChildNoWrap(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildHideMark(): OpenXmlSimpleType; function WriteXmlChildHideMark(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildTcFitText(): OpenXmlSimpleType; + function WriteXmlChildTcFitText(_value: nil_or_OpenXmlSimpleType); // normal property property TcW read ReadXmlChildTcW write WriteXmlChildTcW; property GridSpan read ReadXmlChildGridSpan write WriteXmlChildGridSpan; property VAlign read ReadXmlChildVAlign write WriteXmlChildVAlign; property Shd read ReadXmlChildShd write WriteXmlChildShd; + property TcMar read ReadXmlChildTcMar write WriteXmlChildTcMar; property TcBorders read ReadXmlChildTcBorders write WriteXmlChildTcBorders; property TextDirection read ReadXmlChildTextDirection write WriteXmlChildTextDirection; function ReadXmlChildTcW(): TblW; @@ -2473,6 +2597,8 @@ public function WriteXmlChildVAlign(_p1: any; _p2: any); function ReadXmlChildShd(): Shd; function WriteXmlChildShd(_p1: any; _p2: any); + function ReadXmlChildTcMar(): TcMar; + function WriteXmlChildTcMar(_p1: any; _p2: any); function ReadXmlChildTcBorders(): TcBorders; function WriteXmlChildTcBorders(_p1: any; _p2: any); function ReadXmlChildTextDirection(): PureWVal; @@ -2484,19 +2610,83 @@ public XmlChildGridSpan: GridSpan; XmlChildVMerge: OpenXmlSimpleType; XmlChildVAlign: PureWVal; + XmlChildNoWrap: OpenXmlSimpleType; XmlChildHideMark: OpenXmlSimpleType; XmlChildShd: Shd; + XmlChildTcMar: TcMar; XmlChildTcBorders: TcBorders; XmlChildTextDirection: PureWVal; + XmlChildTcFitText: OpenXmlSimpleType; +end; + +type TcMar = class(OpenXmlCompositeElement) +public + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function Copy(_obj: TcMar);override; + function Clone(): TcMar;override; + function ConvertToPoint();override; + +public + + // normal property + property Top read ReadXmlChildTop write WriteXmlChildTop; + property Left read ReadXmlChildLeft write WriteXmlChildLeft; + property Bottom read ReadXmlChildBottom write WriteXmlChildBottom; + property Right read ReadXmlChildRight write WriteXmlChildRight; + function ReadXmlChildTop(): TcMargin; + function WriteXmlChildTop(_p1: any; _p2: any); + function ReadXmlChildLeft(): TcMargin; + function WriteXmlChildLeft(_p1: any; _p2: any); + function ReadXmlChildBottom(): TcMargin; + function WriteXmlChildBottom(_p1: any; _p2: any); + function ReadXmlChildRight(): TcMargin; + function WriteXmlChildRight(_p1: any; _p2: any); + +public + // Children + XmlChildTop: TcMargin; + XmlChildLeft: TcMargin; + XmlChildBottom: TcMargin; + XmlChildRight: TcMargin; +end; + +type TcMargin = class(OpenXmlCompositeElement) +public + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function Copy(_obj: TcMargin);override; + function Clone(): TcMargin;override; + function ConvertToPoint();override; + +public + // attributes property + property W read ReadXmlAttrW write WriteXmlAttrW; + property Type read ReadXmlAttrType write WriteXmlAttrType; + function ReadXmlAttrW(); + function WriteXmlAttrW(_value: any); + function ReadXmlAttrType(); + function WriteXmlAttrType(_value: any); + +public + // Attributes + XmlAttrW: OpenXmlAttribute; + XmlAttrType: OpenXmlAttribute; + end; type TcBorders = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TcBorders);override; + function Clone(): TcBorders;override; function ConvertToPoint();override; public @@ -2510,83 +2700,43 @@ public property Tr2Bl read ReadXmlChildTr2Bl write WriteXmlChildTr2Bl; property InsideH read ReadXmlChildInsideH write WriteXmlChildInsideH; property InsideV read ReadXmlChildInsideV write WriteXmlChildInsideV; - function ReadXmlChildTop(): TcBorder; + function ReadXmlChildTop(): Bdr; function WriteXmlChildTop(_p1: any; _p2: any); - function ReadXmlChildLeft(): TcBorder; + function ReadXmlChildLeft(): Bdr; function WriteXmlChildLeft(_p1: any; _p2: any); - function ReadXmlChildBottom(): TcBorder; + function ReadXmlChildBottom(): Bdr; function WriteXmlChildBottom(_p1: any; _p2: any); - function ReadXmlChildRight(): TcBorder; + function ReadXmlChildRight(): Bdr; function WriteXmlChildRight(_p1: any; _p2: any); - function ReadXmlChildTl2Br(): TcBorder; + function ReadXmlChildTl2Br(): Bdr; function WriteXmlChildTl2Br(_p1: any; _p2: any); - function ReadXmlChildTr2Bl(): TcBorder; + function ReadXmlChildTr2Bl(): Bdr; function WriteXmlChildTr2Bl(_p1: any; _p2: any); - function ReadXmlChildInsideH(): TcBorder; + function ReadXmlChildInsideH(): Bdr; function WriteXmlChildInsideH(_p1: any; _p2: any); - function ReadXmlChildInsideV(): TcBorder; + function ReadXmlChildInsideV(): Bdr; function WriteXmlChildInsideV(_p1: any; _p2: any); public // Children - XmlChildTop: TcBorder; - XmlChildLeft: TcBorder; - XmlChildBottom: TcBorder; - XmlChildRight: TcBorder; - XmlChildTl2Br: TcBorder; - XmlChildTr2Bl: TcBorder; - XmlChildInsideH: TcBorder; - XmlChildInsideV: TcBorder; -end; - -type TcBorder = class(OpenXmlCompositeElement) -public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; - function Init();override; - function Copy(_obj: TcBorder);override; - function ConvertToPoint();override; - -public - // attributes property - property Val read ReadXmlAttrVal write WriteXmlAttrVal; - property Color read ReadXmlAttrColor write WriteXmlAttrColor; - property Space read ReadXmlAttrSpace write WriteXmlAttrSpace; - property ThemeColor read ReadXmlAttrThemeColor write WriteXmlAttrThemeColor; - property ThemeTint read ReadXmlAttrThemeTint write WriteXmlAttrThemeTint; - property Sz read ReadXmlAttrSz write WriteXmlAttrSz; - function ReadXmlAttrVal(); - function WriteXmlAttrVal(_value: any); - function ReadXmlAttrColor(); - function WriteXmlAttrColor(_value: any); - function ReadXmlAttrSpace(); - function WriteXmlAttrSpace(_value: any); - function ReadXmlAttrThemeColor(); - function WriteXmlAttrThemeColor(_value: any); - function ReadXmlAttrThemeTint(); - function WriteXmlAttrThemeTint(_value: any); - function ReadXmlAttrSz(); - function WriteXmlAttrSz(_value: any); - -public - // Attributes - XmlAttrVal: OpenXmlAttribute; - XmlAttrColor: OpenXmlAttribute; - XmlAttrSpace: OpenXmlAttribute; - XmlAttrThemeColor: OpenXmlAttribute; - XmlAttrThemeTint: OpenXmlAttribute; - XmlAttrSz: OpenXmlAttribute; - + XmlChildTop: Bdr; + XmlChildLeft: Bdr; + XmlChildBottom: Bdr; + XmlChildRight: Bdr; + XmlChildTl2Br: Bdr; + XmlChildTr2Bl: Bdr; + XmlChildInsideH: Bdr; + XmlChildInsideV: Bdr; end; type GridSpan = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: GridSpan);override; + function Clone(): GridSpan;override; function ConvertToPoint();override; public @@ -2603,11 +2753,12 @@ end; type Sdt = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Sdt);override; + function Clone(): Sdt;override; function ConvertToPoint();override; public @@ -2632,11 +2783,12 @@ end; type SdtPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SdtPr);override; + function Clone(): SdtPr;override; function ConvertToPoint();override; public @@ -2661,11 +2813,12 @@ end; type DocPartObj = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: DocPartObj);override; + function Clone(): DocPartObj;override; function ConvertToPoint();override; public @@ -2675,22 +2828,23 @@ public property DocPartUnique read ReadXmlChildDocPartUnique write WriteXmlChildDocPartUnique; function ReadXmlChildDocPartGallery(): PureWVal; function WriteXmlChildDocPartGallery(_p1: any; _p2: any); - function ReadXmlChildDocPartUnique(): PureVal; + function ReadXmlChildDocPartUnique(): PureWVal; function WriteXmlChildDocPartUnique(_p1: any; _p2: any); public // Children XmlChildDocPartGallery: PureWVal; - XmlChildDocPartUnique: PureVal; + XmlChildDocPartUnique: PureWVal; end; type SdtEndPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SdtEndPr);override; + function Clone(): SdtEndPr;override; function ConvertToPoint();override; public @@ -2707,11 +2861,12 @@ end; type SdtContent = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SdtContent);override; + function Clone(): SdtContent;override; function ConvertToPoint();override; public @@ -2740,11 +2895,12 @@ end; type SectPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SectPr);override; + function Clone(): SectPr;override; function ConvertToPoint();override; public @@ -2822,11 +2978,12 @@ end; type Reference = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Reference);override; + function Clone(): Reference;override; function ConvertToPoint();override; public @@ -2847,11 +3004,12 @@ end; type PgNumType = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PgNumType);override; + function Clone(): PgNumType;override; function ConvertToPoint();override; public @@ -2868,11 +3026,12 @@ end; type PgSz = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PgSz);override; + function Clone(): PgSz;override; function ConvertToPoint();override; public @@ -2901,11 +3060,12 @@ end; type PgMar = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PgMar);override; + function Clone(): PgMar;override; function ConvertToPoint();override; public @@ -2946,11 +3106,12 @@ end; type Cols = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Cols);override; + function Clone(): Cols;override; function ConvertToPoint();override; public @@ -2983,11 +3144,12 @@ end; type Col = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Col);override; + function Clone(): Col;override; function ConvertToPoint();override; public @@ -3008,11 +3170,12 @@ end; type DocGrid = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: DocGrid);override; + function Clone(): DocGrid;override; function ConvertToPoint();override; public @@ -3033,11 +3196,12 @@ end; type Endnotes = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Endnotes);override; + function Clone(): Endnotes;override; function ConvertToPoint();override; public @@ -3062,11 +3226,12 @@ end; type Endnote = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Endnote);override; + function Clone(): Endnote;override; function ConvertToPoint();override; public @@ -3095,11 +3260,12 @@ end; type Footnotes = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Footnotes);override; + function Clone(): Footnotes;override; function ConvertToPoint();override; public @@ -3124,11 +3290,12 @@ end; type Footnote = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Footnote);override; + function Clone(): Footnote;override; function ConvertToPoint();override; public @@ -3157,11 +3324,12 @@ end; type Fonts = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Fonts);override; + function Clone(): Fonts;override; function ConvertToPoint();override; public @@ -3186,11 +3354,12 @@ end; type Font = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Font);override; + function Clone(): Font;override; function ConvertToPoint();override; public @@ -3234,11 +3403,12 @@ end; type Sig = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Sig);override; + function Clone(): Sig;override; function ConvertToPoint();override; public @@ -3275,11 +3445,12 @@ end; type Settings = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Settings);override; + function Clone(): Settings;override; function ConvertToPoint();override; public @@ -3310,14 +3481,77 @@ public function WriteXmlAttrSigN(_value: any); // simple_type property + property BordersDoNotSurroundHeader read ReadXmlChildBordersDoNotSurroundHeader write WriteXmlChildBordersDoNotSurroundHeader; + property BordersDoNotSurroundFooter read ReadXmlChildBordersDoNotSurroundFooter write WriteXmlChildBordersDoNotSurroundFooter; + property EvenAndOddHeaders read ReadXmlChildEvenAndOddHeaders write WriteXmlChildEvenAndOddHeaders; + property DoNotIncludeSubdocsInStats read ReadXmlChildDoNotIncludeSubdocsInStats write WriteXmlChildDoNotIncludeSubdocsInStats; property ChartTrackingRefBased read ReadXmlChildChartTrackingRefBased write WriteXmlChildChartTrackingRefBased; + function ReadXmlChildBordersDoNotSurroundHeader(): OpenXmlSimpleType; + function WriteXmlChildBordersDoNotSurroundHeader(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildBordersDoNotSurroundFooter(): OpenXmlSimpleType; + function WriteXmlChildBordersDoNotSurroundFooter(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildEvenAndOddHeaders(): OpenXmlSimpleType; + function WriteXmlChildEvenAndOddHeaders(_value: nil_or_OpenXmlSimpleType); + function ReadXmlChildDoNotIncludeSubdocsInStats(): OpenXmlSimpleType; + function WriteXmlChildDoNotIncludeSubdocsInStats(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildChartTrackingRefBased(): OpenXmlSimpleType; function WriteXmlChildChartTrackingRefBased(_value: nil_or_OpenXmlSimpleType); // normal property + property Zoom read ReadXmlChildZoom write WriteXmlChildZoom; + property DefaultTabStop read ReadXmlChildDefaultTabStop write WriteXmlChildDefaultTabStop; + property DrawingGridVerticalSpacing read ReadXmlChildDrawingGridVerticalSpacing write WriteXmlChildDrawingGridVerticalSpacing; + property DisplayHorizontalDrawingGridEvery read ReadXmlChildDisplayHorizontalDrawingGridEvery write WriteXmlChildDisplayHorizontalDrawingGridEvery; + property DisplayVerticalDrawingGridEvery read ReadXmlChildDisplayVerticalDrawingGridEvery write WriteXmlChildDisplayVerticalDrawingGridEvery; + property CharacterSpacingControl read ReadXmlChildCharacterSpacingControl write WriteXmlChildCharacterSpacingControl; + property HdrShapeDefaults read ReadXmlChildHdrShapeDefaults write WriteXmlChildHdrShapeDefaults; + property FootnotePr read ReadXmlChildFootnotePr write WriteXmlChildFootnotePr; + property EndnotePr read ReadXmlChildEndnotePr write WriteXmlChildEndnotePr; + property Compat read ReadXmlChildCompat write WriteXmlChildCompat; + property Rsids read ReadXmlChildRsids write WriteXmlChildRsids; + property MathPr read ReadXmlChildMathPr write WriteXmlChildMathPr; + property ThemeFontLang read ReadXmlChildThemeFontLang write WriteXmlChildThemeFontLang; + property ClrSchemeMapping read ReadXmlChildClrSchemeMapping write WriteXmlChildClrSchemeMapping; + property ShapeDefaults read ReadXmlChildShapeDefaults write WriteXmlChildShapeDefaults; + property DecimalSymbol read ReadXmlChildDecimalSymbol write WriteXmlChildDecimalSymbol; + property ListSeparator read ReadXmlChildListSeparator write WriteXmlChildListSeparator; property DocId read ReadXmlChildDocId write WriteXmlChildDocId; property W14DocId read ReadXmlChildW14DocId write WriteXmlChildW14DocId; property W15DocId read ReadXmlChildW15DocId write WriteXmlChildW15DocId; + function ReadXmlChildZoom(): Zoom; + function WriteXmlChildZoom(_p1: any; _p2: any); + function ReadXmlChildDefaultTabStop(): PureWVal; + function WriteXmlChildDefaultTabStop(_p1: any; _p2: any); + function ReadXmlChildDrawingGridVerticalSpacing(): PureWVal; + function WriteXmlChildDrawingGridVerticalSpacing(_p1: any; _p2: any); + function ReadXmlChildDisplayHorizontalDrawingGridEvery(): PureWVal; + function WriteXmlChildDisplayHorizontalDrawingGridEvery(_p1: any; _p2: any); + function ReadXmlChildDisplayVerticalDrawingGridEvery(): PureWVal; + function WriteXmlChildDisplayVerticalDrawingGridEvery(_p1: any; _p2: any); + function ReadXmlChildCharacterSpacingControl(): PureWVal; + function WriteXmlChildCharacterSpacingControl(_p1: any; _p2: any); + function ReadXmlChildHdrShapeDefaults(): HdrShapeDefaults; + function WriteXmlChildHdrShapeDefaults(_p1: any; _p2: any); + function ReadXmlChildFootnotePr(): FootnotePr; + function WriteXmlChildFootnotePr(_p1: any; _p2: any); + function ReadXmlChildEndnotePr(): EndnotePr; + function WriteXmlChildEndnotePr(_p1: any; _p2: any); + function ReadXmlChildCompat(): Compat; + function WriteXmlChildCompat(_p1: any; _p2: any); + function ReadXmlChildRsids(): Rsids; + function WriteXmlChildRsids(_p1: any; _p2: any); + function ReadXmlChildMathPr(): MathPr; + function WriteXmlChildMathPr(_p1: any; _p2: any); + function ReadXmlChildThemeFontLang(): ThemeFontLang; + function WriteXmlChildThemeFontLang(_p1: any; _p2: any); + function ReadXmlChildClrSchemeMapping(): ClrSchemeMapping; + function WriteXmlChildClrSchemeMapping(_p1: any; _p2: any); + function ReadXmlChildShapeDefaults(): ShapeDefaults2; + function WriteXmlChildShapeDefaults(_p1: any; _p2: any); + function ReadXmlChildDecimalSymbol(): PureWVal; + function WriteXmlChildDecimalSymbol(_p1: any; _p2: any); + function ReadXmlChildListSeparator(): PureWVal; + function WriteXmlChildListSeparator(_p1: any; _p2: any); function ReadXmlChildDocId(_ns: string): PureWVal; function WriteXmlChildDocId(_p1: any; _p2: any); function ReadXmlChildW14DocId(): PureWVal; @@ -3337,6 +3571,27 @@ public XmlAttrSigN: OpenXmlAttribute; // Children + XmlChildZoom: Zoom; + XmlChildBordersDoNotSurroundHeader: OpenXmlSimpleType; + XmlChildBordersDoNotSurroundFooter: OpenXmlSimpleType; + XmlChildDefaultTabStop: PureWVal; + XmlChildEvenAndOddHeaders: OpenXmlSimpleType; + XmlChildDrawingGridVerticalSpacing: PureWVal; + XmlChildDisplayHorizontalDrawingGridEvery: PureWVal; + XmlChildDisplayVerticalDrawingGridEvery: PureWVal; + XmlChildCharacterSpacingControl: PureWVal; + XmlChildHdrShapeDefaults: HdrShapeDefaults; + XmlChildFootnotePr: FootnotePr; + XmlChildEndnotePr: EndnotePr; + XmlChildCompat: Compat; + XmlChildRsids: Rsids; + XmlChildMathPr: MathPr; + XmlChildThemeFontLang: ThemeFontLang; + XmlChildClrSchemeMapping: ClrSchemeMapping; + XmlChildDoNotIncludeSubdocsInStats: OpenXmlSimpleType; + XmlChildShapeDefaults: ShapeDefaults2; + XmlChildDecimalSymbol: PureWVal; + XmlChildListSeparator: PureWVal; XmlChildDocId: PureWVal; XmlChildW14DocId: PureWVal; XmlChildW15DocId: PureWVal; @@ -3345,11 +3600,12 @@ end; type Zoom = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Zoom);override; + function Clone(): Zoom;override; function ConvertToPoint();override; public @@ -3366,11 +3622,12 @@ end; type HdrShapeDefaults = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: HdrShapeDefaults);override; + function Clone(): HdrShapeDefaults;override; function ConvertToPoint();override; public @@ -3387,11 +3644,12 @@ end; type ShapeDefaults = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ShapeDefaults);override; + function Clone(): ShapeDefaults;override; function ConvertToPoint();override; public @@ -3412,11 +3670,12 @@ end; type FootnotePr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FootnotePr);override; + function Clone(): FootnotePr;override; function ConvertToPoint();override; public @@ -3452,11 +3711,12 @@ end; type EndnotePr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: EndnotePr);override; + function Clone(): EndnotePr;override; function ConvertToPoint();override; public @@ -3492,11 +3752,12 @@ end; type Compat = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Compat);override; + function Clone(): Compat;override; function ConvertToPoint();override; public @@ -3547,11 +3808,12 @@ end; type CompatSetting = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CompatSetting);override; + function Clone(): CompatSetting;override; function ConvertToPoint();override; public @@ -3576,11 +3838,12 @@ end; type Rsids = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Rsids);override; + function Clone(): Rsids;override; function ConvertToPoint();override; public @@ -3604,11 +3867,12 @@ end; type ThemeFontLang = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ThemeFontLang);override; + function Clone(): ThemeFontLang;override; function ConvertToPoint();override; public @@ -3629,11 +3893,12 @@ end; type ClrSchemeMapping = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ClrSchemeMapping);override; + function Clone(): ClrSchemeMapping;override; function ConvertToPoint();override; public @@ -3694,11 +3959,12 @@ end; type ShapeDefaults2 = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ShapeDefaults2);override; + function Clone(): ShapeDefaults2;override; function ConvertToPoint();override; public @@ -3719,11 +3985,12 @@ end; type ShapeLayout = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ShapeLayout);override; + function Clone(): ShapeLayout;override; function ConvertToPoint();override; public @@ -3747,11 +4014,12 @@ end; type IdMap = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: IdMap);override; + function Clone(): IdMap;override; function ConvertToPoint();override; public @@ -3772,11 +4040,12 @@ end; type Styles = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Styles);override; + function Clone(): Styles;override; function ConvertToPoint();override; public @@ -3811,11 +4080,12 @@ end; type DocDefaults = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: DocDefaults);override; + function Clone(): DocDefaults;override; function ConvertToPoint();override; public @@ -3836,11 +4106,12 @@ end; type RPrDefault = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: RPrDefault);override; + function Clone(): RPrDefault;override; function ConvertToPoint();override; public @@ -3857,11 +4128,12 @@ end; type PPrDefault = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PPrDefault);override; + function Clone(): PPrDefault;override; function ConvertToPoint();override; public @@ -3878,11 +4150,12 @@ end; type LatenStyles = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: LatenStyles);override; + function Clone(): LatenStyles;override; function ConvertToPoint();override; public @@ -3927,11 +4200,12 @@ end; type LsdException = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: LsdException);override; + function Clone(): LsdException;override; function ConvertToPoint();override; public @@ -3964,11 +4238,12 @@ end; type Style = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Style);override; + function Clone(): Style;override; function ConvertToPoint();override; public @@ -4065,11 +4340,12 @@ end; type TblStylePr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblStylePr);override; + function Clone(): TblStylePr;override; function ConvertToPoint();override; public @@ -4109,11 +4385,12 @@ end; type TblInd = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblInd);override; + function Clone(): TblInd;override; function ConvertToPoint();override; public @@ -4134,11 +4411,12 @@ end; type TblCellMar = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TblCellMar);override; + function Clone(): TblCellMar;override; function ConvertToPoint();override; public @@ -4167,11 +4445,12 @@ end; type WebSettings = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: WebSettings);override; + function Clone(): WebSettings;override; function ConvertToPoint();override; public @@ -4199,11 +4478,12 @@ end; type AlternateContent = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: AlternateContent);override; + function Clone(): AlternateContent;override; function ConvertToPoint();override; public @@ -4224,11 +4504,12 @@ end; type Choice = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Choice);override; + function Clone(): Choice;override; function ConvertToPoint();override; public @@ -4256,11 +4537,12 @@ end; type Fallback = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Fallback);override; + function Clone(): Fallback;override; function ConvertToPoint();override; public @@ -4281,11 +4563,12 @@ end; type Pict = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Pict);override; + function Clone(): Pict;override; function ConvertToPoint();override; public @@ -4310,11 +4593,12 @@ end; type Control = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Control);override; + function Clone(): Control;override; function ConvertToPoint();override; public @@ -4339,11 +4623,12 @@ end; type Ftr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Ftr);override; + function Clone(): Ftr;override; function ConvertToPoint();override; public @@ -4374,11 +4659,12 @@ end; type Hdr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Hdr);override; + function Clone(): Hdr;override; function ConvertToPoint();override; public @@ -4409,11 +4695,12 @@ end; type Comments = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Comments);override; + function Clone(): Comments;override; function ConvertToPoint();override; public @@ -4438,11 +4725,12 @@ end; type Comment = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Comment);override; + function Clone(): Comment;override; function ConvertToPoint();override; public @@ -4475,11 +4763,12 @@ end; type Numbering = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Numbering);override; + function Clone(): Numbering;override; function ConvertToPoint();override; public @@ -4509,11 +4798,12 @@ end; type Num = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Num);override; + function Clone(): Num;override; function ConvertToPoint();override; public @@ -4537,11 +4827,12 @@ end; type AbstractNum = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: AbstractNum);override; + function Clone(): AbstractNum;override; function ConvertToPoint();override; public @@ -4584,11 +4875,12 @@ end; type Lvl = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Lvl);override; + function Clone(): Lvl;override; function ConvertToPoint();override; public @@ -4644,20 +4936,20 @@ end; implementation -function Properties.Create();overload; +function Properties.create();overload; begin - {self.}Create(nil, "", "Properties"); + {self.}create(nil, "", "Properties"); end; -function Properties.Create(_node: XmlNode);overload; +function Properties.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Properties.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Properties.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Properties.Init();override; @@ -4691,7 +4983,7 @@ function Properties.Copy(_obj: Properties);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTemplate) then {self.}Template.Copy(_obj.XmlChildTemplate); if not ifnil(_obj.XmlChildTotalTime) then @@ -4727,24 +5019,39 @@ begin tslassigning := tslassigning_backup; end; +function Properties.Clone(): Properties;override; +begin + obj := new Properties(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "Template": obj.Template := element.Clone(); + "TotalTime": obj.TotalTime := element.Clone(); + "Pages": obj.Pages := element.Clone(); + "Words": obj.Words := element.Clone(); + "Characters": obj.Characters := element.Clone(); + "Application": obj.Application := element.Clone(); + "DocSecurity": obj.DocSecurity := element.Clone(); + "Lines": obj.Lines := element.Clone(); + "Paragraphs": obj.Paragraphs := element.Clone(); + "ScaleCrop": obj.ScaleCrop := element.Clone(); + "Company": obj.Company := element.Clone(); + "LinksUpToDate": obj.LinksUpToDate := element.Clone(); + "charactersWithSpaces": obj.CharactersWithSpaces := element.Clone(); + "SharedDoc": obj.SharedDoc := element.Clone(); + "HyperlinksChanged": obj.HyperlinksChanged := element.Clone(); + "AppVersion": obj.AppVersion := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Properties.ConvertToPoint();override; begin - if not ifnil({self.}XmlChildTemplate) then - if not ifnil({self.}XmlChildTotalTime) then - if not ifnil({self.}XmlChildPages) then - if not ifnil({self.}XmlChildWords) then - if not ifnil({self.}XmlChildCharacters) then - if not ifnil({self.}XmlChildApplication) then - if not ifnil({self.}XmlChildDocSecurity) then - if not ifnil({self.}XmlChildLines) then - if not ifnil({self.}XmlChildParagraphs) then - if not ifnil({self.}XmlChildScaleCrop) then - if not ifnil({self.}XmlChildCompany) then - if not ifnil({self.}XmlChildLinksUpToDate) then - if not ifnil({self.}XmlChildCharactersWithSpaces) then - if not ifnil({self.}XmlChildSharedDoc) then - if not ifnil({self.}XmlChildHyperlinksChanged) then - if not ifnil({self.}XmlChildAppVersion) then + end; function Properties.ReadXmlChildTemplate(); @@ -4754,7 +5061,7 @@ begin {self.}XmlChildTemplate := new OpenXmlTextElement(self, "", "Template"); container_.Set({self.}XmlChildTemplate); end - return {self.}XmlChildTemplate and not {self.}XmlChildTemplate.Removed ? {self.}XmlChildTemplate : fallback_.XmlChildTemplate; + return {self.}XmlChildTemplate and not {self.}XmlChildTemplate.Removed ? {self.}XmlChildTemplate : fallback_.Template; end; function Properties.WriteXmlChildTemplate(_value: nil_or_OpenXmlTextElement); @@ -4766,6 +5073,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildTemplate := _value; container_.Set({self.}XmlChildTemplate); end @@ -4781,7 +5089,7 @@ begin {self.}XmlChildTotalTime := new OpenXmlTextElement(self, "", "TotalTime"); container_.Set({self.}XmlChildTotalTime); end - return {self.}XmlChildTotalTime and not {self.}XmlChildTotalTime.Removed ? {self.}XmlChildTotalTime : fallback_.XmlChildTotalTime; + return {self.}XmlChildTotalTime and not {self.}XmlChildTotalTime.Removed ? {self.}XmlChildTotalTime : fallback_.TotalTime; end; function Properties.WriteXmlChildTotalTime(_value: nil_or_OpenXmlTextElement); @@ -4793,6 +5101,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildTotalTime := _value; container_.Set({self.}XmlChildTotalTime); end @@ -4808,7 +5117,7 @@ begin {self.}XmlChildPages := new OpenXmlTextElement(self, "", "Pages"); container_.Set({self.}XmlChildPages); end - return {self.}XmlChildPages and not {self.}XmlChildPages.Removed ? {self.}XmlChildPages : fallback_.XmlChildPages; + return {self.}XmlChildPages and not {self.}XmlChildPages.Removed ? {self.}XmlChildPages : fallback_.Pages; end; function Properties.WriteXmlChildPages(_value: nil_or_OpenXmlTextElement); @@ -4820,6 +5129,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildPages := _value; container_.Set({self.}XmlChildPages); end @@ -4835,7 +5145,7 @@ begin {self.}XmlChildWords := new OpenXmlTextElement(self, "", "Words"); container_.Set({self.}XmlChildWords); end - return {self.}XmlChildWords and not {self.}XmlChildWords.Removed ? {self.}XmlChildWords : fallback_.XmlChildWords; + return {self.}XmlChildWords and not {self.}XmlChildWords.Removed ? {self.}XmlChildWords : fallback_.Words; end; function Properties.WriteXmlChildWords(_value: nil_or_OpenXmlTextElement); @@ -4847,6 +5157,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildWords := _value; container_.Set({self.}XmlChildWords); end @@ -4862,7 +5173,7 @@ begin {self.}XmlChildCharacters := new OpenXmlTextElement(self, "", "Characters"); container_.Set({self.}XmlChildCharacters); end - return {self.}XmlChildCharacters and not {self.}XmlChildCharacters.Removed ? {self.}XmlChildCharacters : fallback_.XmlChildCharacters; + return {self.}XmlChildCharacters and not {self.}XmlChildCharacters.Removed ? {self.}XmlChildCharacters : fallback_.Characters; end; function Properties.WriteXmlChildCharacters(_value: nil_or_OpenXmlTextElement); @@ -4874,6 +5185,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildCharacters := _value; container_.Set({self.}XmlChildCharacters); end @@ -4889,7 +5201,7 @@ begin {self.}XmlChildApplication := new OpenXmlTextElement(self, "", "Application"); container_.Set({self.}XmlChildApplication); end - return {self.}XmlChildApplication and not {self.}XmlChildApplication.Removed ? {self.}XmlChildApplication : fallback_.XmlChildApplication; + return {self.}XmlChildApplication and not {self.}XmlChildApplication.Removed ? {self.}XmlChildApplication : fallback_.Application; end; function Properties.WriteXmlChildApplication(_value: nil_or_OpenXmlTextElement); @@ -4901,6 +5213,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildApplication := _value; container_.Set({self.}XmlChildApplication); end @@ -4916,7 +5229,7 @@ begin {self.}XmlChildDocSecurity := new OpenXmlTextElement(self, "", "DocSecurity"); container_.Set({self.}XmlChildDocSecurity); end - return {self.}XmlChildDocSecurity and not {self.}XmlChildDocSecurity.Removed ? {self.}XmlChildDocSecurity : fallback_.XmlChildDocSecurity; + return {self.}XmlChildDocSecurity and not {self.}XmlChildDocSecurity.Removed ? {self.}XmlChildDocSecurity : fallback_.DocSecurity; end; function Properties.WriteXmlChildDocSecurity(_value: nil_or_OpenXmlTextElement); @@ -4928,6 +5241,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildDocSecurity := _value; container_.Set({self.}XmlChildDocSecurity); end @@ -4943,7 +5257,7 @@ begin {self.}XmlChildLines := new OpenXmlTextElement(self, "", "Lines"); container_.Set({self.}XmlChildLines); end - return {self.}XmlChildLines and not {self.}XmlChildLines.Removed ? {self.}XmlChildLines : fallback_.XmlChildLines; + return {self.}XmlChildLines and not {self.}XmlChildLines.Removed ? {self.}XmlChildLines : fallback_.Lines; end; function Properties.WriteXmlChildLines(_value: nil_or_OpenXmlTextElement); @@ -4955,6 +5269,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildLines := _value; container_.Set({self.}XmlChildLines); end @@ -4970,7 +5285,7 @@ begin {self.}XmlChildParagraphs := new OpenXmlTextElement(self, "", "Paragraphs"); container_.Set({self.}XmlChildParagraphs); end - return {self.}XmlChildParagraphs and not {self.}XmlChildParagraphs.Removed ? {self.}XmlChildParagraphs : fallback_.XmlChildParagraphs; + return {self.}XmlChildParagraphs and not {self.}XmlChildParagraphs.Removed ? {self.}XmlChildParagraphs : fallback_.Paragraphs; end; function Properties.WriteXmlChildParagraphs(_value: nil_or_OpenXmlTextElement); @@ -4982,6 +5297,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildParagraphs := _value; container_.Set({self.}XmlChildParagraphs); end @@ -4997,7 +5313,7 @@ begin {self.}XmlChildScaleCrop := new OpenXmlTextElement(self, "", "ScaleCrop"); container_.Set({self.}XmlChildScaleCrop); end - return {self.}XmlChildScaleCrop and not {self.}XmlChildScaleCrop.Removed ? {self.}XmlChildScaleCrop : fallback_.XmlChildScaleCrop; + return {self.}XmlChildScaleCrop and not {self.}XmlChildScaleCrop.Removed ? {self.}XmlChildScaleCrop : fallback_.ScaleCrop; end; function Properties.WriteXmlChildScaleCrop(_value: nil_or_OpenXmlTextElement); @@ -5009,6 +5325,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildScaleCrop := _value; container_.Set({self.}XmlChildScaleCrop); end @@ -5024,7 +5341,7 @@ begin {self.}XmlChildCompany := new OpenXmlTextElement(self, "", "Company"); container_.Set({self.}XmlChildCompany); end - return {self.}XmlChildCompany and not {self.}XmlChildCompany.Removed ? {self.}XmlChildCompany : fallback_.XmlChildCompany; + return {self.}XmlChildCompany and not {self.}XmlChildCompany.Removed ? {self.}XmlChildCompany : fallback_.Company; end; function Properties.WriteXmlChildCompany(_value: nil_or_OpenXmlTextElement); @@ -5036,6 +5353,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildCompany := _value; container_.Set({self.}XmlChildCompany); end @@ -5051,7 +5369,7 @@ begin {self.}XmlChildLinksUpToDate := new OpenXmlTextElement(self, "", "LinksUpToDate"); container_.Set({self.}XmlChildLinksUpToDate); end - return {self.}XmlChildLinksUpToDate and not {self.}XmlChildLinksUpToDate.Removed ? {self.}XmlChildLinksUpToDate : fallback_.XmlChildLinksUpToDate; + return {self.}XmlChildLinksUpToDate and not {self.}XmlChildLinksUpToDate.Removed ? {self.}XmlChildLinksUpToDate : fallback_.LinksUpToDate; end; function Properties.WriteXmlChildLinksUpToDate(_value: nil_or_OpenXmlTextElement); @@ -5063,6 +5381,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildLinksUpToDate := _value; container_.Set({self.}XmlChildLinksUpToDate); end @@ -5078,7 +5397,7 @@ begin {self.}XmlChildCharactersWithSpaces := new OpenXmlTextElement(self, "", "charactersWithSpaces"); container_.Set({self.}XmlChildCharactersWithSpaces); end - return {self.}XmlChildCharactersWithSpaces and not {self.}XmlChildCharactersWithSpaces.Removed ? {self.}XmlChildCharactersWithSpaces : fallback_.XmlChildCharactersWithSpaces; + return {self.}XmlChildCharactersWithSpaces and not {self.}XmlChildCharactersWithSpaces.Removed ? {self.}XmlChildCharactersWithSpaces : fallback_.CharactersWithSpaces; end; function Properties.WriteXmlChildCharactersWithSpaces(_value: nil_or_OpenXmlTextElement); @@ -5090,6 +5409,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildCharactersWithSpaces := _value; container_.Set({self.}XmlChildCharactersWithSpaces); end @@ -5105,7 +5425,7 @@ begin {self.}XmlChildSharedDoc := new OpenXmlTextElement(self, "", "SharedDoc"); container_.Set({self.}XmlChildSharedDoc); end - return {self.}XmlChildSharedDoc and not {self.}XmlChildSharedDoc.Removed ? {self.}XmlChildSharedDoc : fallback_.XmlChildSharedDoc; + return {self.}XmlChildSharedDoc and not {self.}XmlChildSharedDoc.Removed ? {self.}XmlChildSharedDoc : fallback_.SharedDoc; end; function Properties.WriteXmlChildSharedDoc(_value: nil_or_OpenXmlTextElement); @@ -5117,6 +5437,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildSharedDoc := _value; container_.Set({self.}XmlChildSharedDoc); end @@ -5132,7 +5453,7 @@ begin {self.}XmlChildHyperlinksChanged := new OpenXmlTextElement(self, "", "HyperlinksChanged"); container_.Set({self.}XmlChildHyperlinksChanged); end - return {self.}XmlChildHyperlinksChanged and not {self.}XmlChildHyperlinksChanged.Removed ? {self.}XmlChildHyperlinksChanged : fallback_.XmlChildHyperlinksChanged; + return {self.}XmlChildHyperlinksChanged and not {self.}XmlChildHyperlinksChanged.Removed ? {self.}XmlChildHyperlinksChanged : fallback_.HyperlinksChanged; end; function Properties.WriteXmlChildHyperlinksChanged(_value: nil_or_OpenXmlTextElement); @@ -5144,6 +5465,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildHyperlinksChanged := _value; container_.Set({self.}XmlChildHyperlinksChanged); end @@ -5159,7 +5481,7 @@ begin {self.}XmlChildAppVersion := new OpenXmlTextElement(self, "", "AppVersion"); container_.Set({self.}XmlChildAppVersion); end - return {self.}XmlChildAppVersion and not {self.}XmlChildAppVersion.Removed ? {self.}XmlChildAppVersion : fallback_.XmlChildAppVersion; + return {self.}XmlChildAppVersion and not {self.}XmlChildAppVersion.Removed ? {self.}XmlChildAppVersion : fallback_.AppVersion; end; function Properties.WriteXmlChildAppVersion(_value: nil_or_OpenXmlTextElement); @@ -5171,6 +5493,7 @@ begin end else if _value is class(OpenXmlTextElement) then begin + _value.Parent := self; {self.}XmlChildAppVersion := _value; container_.Set({self.}XmlChildAppVersion); end @@ -5179,20 +5502,20 @@ begin end end; -function Document.Create();overload; +function Document.create();overload; begin - {self.}Create(nil, "w", "document"); + {self.}create(nil, "w", "document"); end; -function Document.Create(_node: XmlNode);overload; +function Document.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Document.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Document.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Document.Init();override; @@ -5212,7 +5535,7 @@ function Document.Copy(_obj: Document);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; if not ifnil(_obj.XmlChildBody) then @@ -5220,6 +5543,23 @@ begin tslassigning := tslassigning_backup; end; +function Document.Clone(): Document;override; +begin + obj := new Document(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "body": obj.Body := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Document.ConvertToPoint();override; begin if not ifnil({self.}XmlChildBody) then @@ -5248,7 +5588,7 @@ begin {self.}XmlChildBody := new Body(self, {self.}Prefix, "body"); container_.Set({self.}XmlChildBody); end - return {self.}XmlChildBody and not {self.}XmlChildBody.Removed ? {self.}XmlChildBody : fallback_.XmlChildBody; + return {self.}XmlChildBody and not {self.}XmlChildBody.Removed ? {self.}XmlChildBody : fallback_.Body; end; function Document.WriteXmlChildBody(_p1: any; _p2: any); @@ -5261,6 +5601,7 @@ begin end else if v is class(Body) then begin + v.Parent := self; {self.}XmlChildBody := v; container_.Set({self.}XmlChildBody); end @@ -5269,20 +5610,20 @@ begin end end; -function Body.Create();overload; +function Body.create();overload; begin - {self.}Create(nil, "w", "body"); + {self.}create(nil, "w", "body"); end; -function Body.Create(_node: XmlNode);overload; +function Body.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Body.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Body.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Body.Init();override; @@ -5304,12 +5645,27 @@ function Body.Copy(_obj: Body);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSectPr) then {self.}SectPr.Copy(_obj.XmlChildSectPr); tslassigning := tslassigning_backup; end; +function Body.Clone(): Body;override; +begin + obj := new Body(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sectPr": obj.SectPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Body.ConvertToPoint();override; begin elems := {self.}Ps(); @@ -5330,9 +5686,9 @@ begin if tslassigning and (ifnil({self.}XmlChildSectPr) or {self.}XmlChildSectPr.Removed) then begin {self.}XmlChildSectPr := new SectPr(self, {self.}Prefix, "sectPr"); - container_.Append({self.}XmlChildSectPr); + container_.Set({self.}XmlChildSectPr); end - return {self.}XmlChildSectPr and not {self.}XmlChildSectPr.Removed ? {self.}XmlChildSectPr : fallback_.XmlChildSectPr; + return {self.}XmlChildSectPr and not {self.}XmlChildSectPr.Removed ? {self.}XmlChildSectPr : fallback_.SectPr; end; function Body.WriteXmlChildSectPr(_p1: any; _p2: any); @@ -5345,6 +5701,7 @@ begin end else if v is class(SectPr) then begin + v.Parent := self; {self.}XmlChildSectPr := v; container_.Set({self.}XmlChildSectPr); end @@ -5434,6 +5791,7 @@ end; function Body.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5441,6 +5799,7 @@ end; function Body.AddTbl(): Tbl; begin obj := new Tbl(self, {self.}Prefix, "tbl"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5448,6 +5807,7 @@ end; function Body.AddSdt(): Sdt; begin obj := new Sdt(self, {self.}Prefix, "sdt"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5455,6 +5815,7 @@ end; function Body.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5462,6 +5823,7 @@ end; function Body.AppendTbl(): Tbl; begin obj := new Tbl(self, {self.}Prefix, "tbl"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5469,24 +5831,25 @@ end; function Body.AppendSdt(): Sdt; begin obj := new Sdt(self, {self.}Prefix, "sdt"); + obj.Enable := true; container_.Append(obj); return obj; end; -function P.Create();overload; +function P.create();overload; begin - {self.}Create(nil, "w", "p"); + {self.}create(nil, "w", "p"); end; -function P.Create(_node: XmlNode);overload; +function P.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function P.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function P.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function P.Init();override; @@ -5523,7 +5886,7 @@ function P.Copy(_obj: P);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.ParaId) then {self.}ParaId := _obj.ParaId; if not ifnil(_obj.TextId) then @@ -5549,6 +5912,37 @@ begin tslassigning := tslassigning_backup; end; +function P.Clone(): P;override; +begin + obj := new P(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}ParaId) then + obj.ParaId := {self.}ParaId; + if not ifnil({self.}TextId) then + obj.TextId := {self.}TextId; + if not ifnil({self.}RsidR) then + obj.RsidR := {self.}RsidR; + if not ifnil({self.}RsidRPr) then + obj.RsidRPr := {self.}RsidRPr; + if not ifnil({self.}RsidRDefault) then + obj.RsidRDefault := {self.}RsidRDefault; + if not ifnil({self.}RsidP) then + obj.RsidP := {self.}RsidP; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "pPr": obj.PPr := element.Clone(); + "m:oMathPara": obj.OMathPara := element.Clone(); + "m:oMath": obj.OMath := element.Clone(); + pre + "ins": obj.Ins := element.Clone(); + pre + "del": obj.Del := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function P.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPPr) then @@ -5684,7 +6078,7 @@ begin {self.}XmlChildPPr := new PPr(self, {self.}Prefix, "pPr"); container_.Set({self.}XmlChildPPr); end - return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.XmlChildPPr; + return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.PPr; end; function P.WriteXmlChildPPr(_p1: any; _p2: any); @@ -5697,6 +6091,7 @@ begin end else if v is class(PPr) then begin + v.Parent := self; {self.}XmlChildPPr := v; container_.Set({self.}XmlChildPPr); end @@ -5712,7 +6107,7 @@ begin {self.}XmlChildOMathPara := new SharedML.OMathPara(self, "m", "oMathPara"); container_.Set({self.}XmlChildOMathPara); end - return {self.}XmlChildOMathPara and not {self.}XmlChildOMathPara.Removed ? {self.}XmlChildOMathPara : fallback_.XmlChildOMathPara; + return {self.}XmlChildOMathPara and not {self.}XmlChildOMathPara.Removed ? {self.}XmlChildOMathPara : fallback_.OMathPara; end; function P.WriteXmlChildOMathPara(_p1: any; _p2: any); @@ -5725,6 +6120,7 @@ begin end else if v is class(OMathPara) then begin + v.Parent := self; {self.}XmlChildOMathPara := v; container_.Set({self.}XmlChildOMathPara); end @@ -5740,7 +6136,7 @@ begin {self.}XmlChildOMath := new SharedML.OMath(self, "m", "oMath"); container_.Set({self.}XmlChildOMath); end - return {self.}XmlChildOMath and not {self.}XmlChildOMath.Removed ? {self.}XmlChildOMath : fallback_.XmlChildOMath; + return {self.}XmlChildOMath and not {self.}XmlChildOMath.Removed ? {self.}XmlChildOMath : fallback_.OMath; end; function P.WriteXmlChildOMath(_p1: any; _p2: any); @@ -5753,6 +6149,7 @@ begin end else if v is class(OMath) then begin + v.Parent := self; {self.}XmlChildOMath := v; container_.Set({self.}XmlChildOMath); end @@ -5768,7 +6165,7 @@ begin {self.}XmlChildIns := new Ins(self, {self.}Prefix, "ins"); container_.Set({self.}XmlChildIns); end - return {self.}XmlChildIns and not {self.}XmlChildIns.Removed ? {self.}XmlChildIns : fallback_.XmlChildIns; + return {self.}XmlChildIns and not {self.}XmlChildIns.Removed ? {self.}XmlChildIns : fallback_.Ins; end; function P.WriteXmlChildIns(_p1: any; _p2: any); @@ -5781,6 +6178,7 @@ begin end else if v is class(Ins) then begin + v.Parent := self; {self.}XmlChildIns := v; container_.Set({self.}XmlChildIns); end @@ -5796,7 +6194,7 @@ begin {self.}XmlChildDel := new Del(self, {self.}Prefix, "del"); container_.Set({self.}XmlChildDel); end - return {self.}XmlChildDel and not {self.}XmlChildDel.Removed ? {self.}XmlChildDel : fallback_.XmlChildDel; + return {self.}XmlChildDel and not {self.}XmlChildDel.Removed ? {self.}XmlChildDel : fallback_.Del; end; function P.WriteXmlChildDel(_p1: any; _p2: any); @@ -5809,6 +6207,7 @@ begin end else if v is class(Del) then begin + v.Parent := self; {self.}XmlChildDel := v; container_.Set({self.}XmlChildDel); end @@ -6028,6 +6427,7 @@ end; function P.AddSdt(): Sdt; begin obj := new Sdt(self, {self.}Prefix, "sdt"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6035,6 +6435,7 @@ end; function P.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6042,6 +6443,7 @@ end; function P.AddCommentRangeStart(): CommentRange; begin obj := new CommentRange(self, {self.}Prefix, "commentRangeStart"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6049,6 +6451,7 @@ end; function P.AddCommentRangeEnd(): CommentRange; begin obj := new CommentRange(self, {self.}Prefix, "commentRangeEnd"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6056,6 +6459,7 @@ end; function P.AddBookmarkStart(): Bookmark; begin obj := new Bookmark(self, {self.}Prefix, "bookmarkStart"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6063,6 +6467,7 @@ end; function P.AddBookmarkEnd(): Bookmark; begin obj := new Bookmark(self, {self.}Prefix, "bookmarkEnd"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6070,6 +6475,7 @@ end; function P.AddHyperLink(): HyperLink; begin obj := new HyperLink(self, {self.}Prefix, "hyperlink"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6077,6 +6483,7 @@ end; function P.AddFldSimple(): FldSimple; begin obj := new FldSimple(self, {self.}Prefix, "fldSimple"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6084,6 +6491,7 @@ end; function P.AppendSdt(): Sdt; begin obj := new Sdt(self, {self.}Prefix, "sdt"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -6091,6 +6499,7 @@ end; function P.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -6098,6 +6507,7 @@ end; function P.AppendCommentRangeStart(): CommentRange; begin obj := new CommentRange(self, {self.}Prefix, "commentRangeStart"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -6105,6 +6515,7 @@ end; function P.AppendCommentRangeEnd(): CommentRange; begin obj := new CommentRange(self, {self.}Prefix, "commentRangeEnd"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -6112,6 +6523,7 @@ end; function P.AppendBookmarkStart(): Bookmark; begin obj := new Bookmark(self, {self.}Prefix, "bookmarkStart"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -6119,6 +6531,7 @@ end; function P.AppendBookmarkEnd(): Bookmark; begin obj := new Bookmark(self, {self.}Prefix, "bookmarkEnd"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -6126,6 +6539,7 @@ end; function P.AppendHyperLink(): HyperLink; begin obj := new HyperLink(self, {self.}Prefix, "hyperlink"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -6133,24 +6547,25 @@ end; function P.AppendFldSimple(): FldSimple; begin obj := new FldSimple(self, {self.}Prefix, "fldSimple"); + obj.Enable := true; container_.Append(obj); return obj; end; -function FldSimple.Create();overload; +function FldSimple.create();overload; begin - {self.}Create(nil, "w", "fldSimple"); + {self.}create(nil, "w", "fldSimple"); end; -function FldSimple.Create(_node: XmlNode);overload; +function FldSimple.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function FldSimple.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FldSimple.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FldSimple.Init();override; @@ -6172,7 +6587,7 @@ function FldSimple.Copy(_obj: FldSimple);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Dirty) then {self.}Dirty := _obj.Dirty; if not ifnil(_obj.FldLock) then @@ -6182,6 +6597,21 @@ begin tslassigning := tslassigning_backup; end; +function FldSimple.Clone(): FldSimple;override; +begin + obj := new FldSimple(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Dirty) then + obj.Dirty := {self.}Dirty; + if not ifnil({self.}FldLock) then + obj.FldLock := {self.}FldLock; + if not ifnil({self.}Instr) then + obj.Instr := {self.}Instr; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function FldSimple.ConvertToPoint();override; begin elems := {self.}Rs(); @@ -6263,6 +6693,7 @@ end; function FldSimple.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6270,24 +6701,25 @@ end; function FldSimple.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; -function CommentRange.Create();overload; +function CommentRange.create();overload; begin - {self.}Create(nil, "w", ""); + {self.}create(nil, "w", ""); end; -function CommentRange.Create(_node: XmlNode);overload; +function CommentRange.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function CommentRange.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CommentRange.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CommentRange.Init();override; @@ -6306,12 +6738,20 @@ function CommentRange.Copy(_obj: CommentRange);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; tslassigning := tslassigning_backup; end; +function CommentRange.Clone(): CommentRange;override; +begin + obj := new CommentRange(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + return obj; +end; + function CommentRange.ConvertToPoint();override; begin @@ -6332,20 +6772,20 @@ begin {self.}XmlAttrId.Value := _value; end; -function HyperLink.Create();overload; +function HyperLink.create();overload; begin - {self.}Create(nil, "w", "hyperlink"); + {self.}create(nil, "w", "hyperlink"); end; -function HyperLink.Create(_node: XmlNode);overload; +function HyperLink.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function HyperLink.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function HyperLink.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function HyperLink.Init();override; @@ -6367,7 +6807,7 @@ function HyperLink.Copy(_obj: HyperLink);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Anchor) then {self.}Anchor := _obj.Anchor; if not ifnil(_obj.Id) then @@ -6377,6 +6817,21 @@ begin tslassigning := tslassigning_backup; end; +function HyperLink.Clone(): HyperLink;override; +begin + obj := new HyperLink(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Anchor) then + obj.Anchor := {self.}Anchor; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}History) then + obj.History := {self.}History; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function HyperLink.ConvertToPoint();override; begin elems := {self.}Rs(); @@ -6458,6 +6913,7 @@ end; function HyperLink.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6465,24 +6921,25 @@ end; function HyperLink.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Bookmark.Create();overload; +function Bookmark.create();overload; begin - {self.}Create(nil, "w", ""); + {self.}create(nil, "w", ""); end; -function Bookmark.Create(_node: XmlNode);overload; +function Bookmark.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Bookmark.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Bookmark.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Bookmark.Init();override; @@ -6502,7 +6959,7 @@ function Bookmark.Copy(_obj: Bookmark);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.Id) then @@ -6510,6 +6967,16 @@ begin tslassigning := tslassigning_backup; end; +function Bookmark.Clone(): Bookmark;override; +begin + obj := new Bookmark(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + return obj; +end; + function Bookmark.ConvertToPoint();override; begin @@ -6545,20 +7012,20 @@ begin {self.}XmlAttrId.Value := _value; end; -function PPr.Create();overload; +function PPr.create();overload; begin - {self.}Create(nil, "w", "pPr"); + {self.}create(nil, "w", "pPr"); end; -function PPr.Create(_node: XmlNode);overload; +function PPr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function PPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PPr.Init();override; @@ -6603,7 +7070,7 @@ begin pre + "topLinePunct": array(32, makeweakref(thisFunction(ReadXmlChildTopLinePunct))), pre + "textAlignment": array(33, makeweakref(thisFunction(ReadXmlChildTextAlignment))), pre + "textDirection": array(34, makeweakref(thisFunction(ReadXmlChildTextDirection))), - "w15:wordWrap": array(35, makeweakref(thisFunction(ReadXmlChildCollapsed))), + "w15:collapsed": array(35, makeweakref(thisFunction(ReadXmlChildCollapsed))), ); container_ := new TSOfficeContainer(sorted_child_); end; @@ -6612,7 +7079,7 @@ function PPr.Copy(_obj: PPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSectPr) then {self.}SectPr.Copy(_obj.XmlChildSectPr); if not ifnil(_obj.XmlChildTabs) then @@ -6638,7 +7105,7 @@ begin if not ifnil(_obj.XmlChildMirrorIndents) then ifnil({self.}XmlChildMirrorIndents) ? {self.}MirrorIndents.Copy(_obj.XmlChildMirrorIndents) : {self.}XmlChildMirrorIndents.Copy(_obj.XmlChildMirrorIndents); if not ifnil(_obj.XmlChildKinsoku) then - {self.}Kinsoku.Copy(_obj.XmlChildKinsoku); + ifnil({self.}XmlChildKinsoku) ? {self.}Kinsoku.Copy(_obj.XmlChildKinsoku) : {self.}XmlChildKinsoku.Copy(_obj.XmlChildKinsoku); if not ifnil(_obj.XmlChildPageBreakBefore) then ifnil({self.}XmlChildPageBreakBefore) ? {self.}PageBreakBefore.Copy(_obj.XmlChildPageBreakBefore) : {self.}XmlChildPageBreakBefore.Copy(_obj.XmlChildPageBreakBefore); if not ifnil(_obj.XmlChildSuppressAutoHyphens) then @@ -6648,7 +7115,7 @@ begin if not ifnil(_obj.XmlChildSuppressOverlap) then ifnil({self.}XmlChildSuppressOverlap) ? {self.}SuppressOverlap.Copy(_obj.XmlChildSuppressOverlap) : {self.}XmlChildSuppressOverlap.Copy(_obj.XmlChildSuppressOverlap); if not ifnil(_obj.XmlChildOverflowPunct) then - {self.}OverflowPunct.Copy(_obj.XmlChildOverflowPunct); + ifnil({self.}XmlChildOverflowPunct) ? {self.}OverflowPunct.Copy(_obj.XmlChildOverflowPunct) : {self.}XmlChildOverflowPunct.Copy(_obj.XmlChildOverflowPunct); if not ifnil(_obj.XmlChildAdjustRightInd) then {self.}AdjustRightInd.Copy(_obj.XmlChildAdjustRightInd); if not ifnil(_obj.XmlChildSpacing) then @@ -6656,9 +7123,9 @@ begin if not ifnil(_obj.XmlChildOutlineLvl) then {self.}OutlineLvl.Copy(_obj.XmlChildOutlineLvl); if not ifnil(_obj.XmlChildAutoSpaceDE) then - {self.}AutoSpaceDE.Copy(_obj.XmlChildAutoSpaceDE); + ifnil({self.}XmlChildAutoSpaceDE) ? {self.}AutoSpaceDE.Copy(_obj.XmlChildAutoSpaceDE) : {self.}XmlChildAutoSpaceDE.Copy(_obj.XmlChildAutoSpaceDE); if not ifnil(_obj.XmlChildAutoSpaceDN) then - {self.}AutoSpaceDN.Copy(_obj.XmlChildAutoSpaceDN); + ifnil({self.}XmlChildAutoSpaceDN) ? {self.}AutoSpaceDN.Copy(_obj.XmlChildAutoSpaceDN) : {self.}XmlChildAutoSpaceDN.Copy(_obj.XmlChildAutoSpaceDN); if not ifnil(_obj.XmlChildRPr) then {self.}RPr.Copy(_obj.XmlChildRPr); if not ifnil(_obj.XmlChildPBdr) then @@ -6668,7 +7135,7 @@ begin if not ifnil(_obj.XmlChildShd) then {self.}Shd.Copy(_obj.XmlChildShd); if not ifnil(_obj.XmlChildWordWrap) then - {self.}WordWrap.Copy(_obj.XmlChildWordWrap); + ifnil({self.}XmlChildWordWrap) ? {self.}WordWrap.Copy(_obj.XmlChildWordWrap) : {self.}XmlChildWordWrap.Copy(_obj.XmlChildWordWrap); if not ifnil(_obj.XmlChildDivId) then {self.}DivId.Copy(_obj.XmlChildDivId); if not ifnil(_obj.XmlChildCnfStyle) then @@ -6678,16 +7145,66 @@ begin if not ifnil(_obj.XmlChildTextboxTightWrap) then {self.}TextboxTightWrap.Copy(_obj.XmlChildTextboxTightWrap); if not ifnil(_obj.XmlChildTopLinePunct) then - {self.}TopLinePunct.Copy(_obj.XmlChildTopLinePunct); + ifnil({self.}XmlChildTopLinePunct) ? {self.}TopLinePunct.Copy(_obj.XmlChildTopLinePunct) : {self.}XmlChildTopLinePunct.Copy(_obj.XmlChildTopLinePunct); if not ifnil(_obj.XmlChildTextAlignment) then {self.}TextAlignment.Copy(_obj.XmlChildTextAlignment); if not ifnil(_obj.XmlChildTextDirection) then {self.}TextDirection.Copy(_obj.XmlChildTextDirection); if not ifnil(_obj.XmlChildCollapsed) then - {self.}Collapsed.Copy(_obj.XmlChildCollapsed); + ifnil({self.}XmlChildCollapsed) ? {self.}Collapsed.Copy(_obj.XmlChildCollapsed) : {self.}XmlChildCollapsed.Copy(_obj.XmlChildCollapsed); tslassigning := tslassigning_backup; end; +function PPr.Clone(): PPr;override; +begin + obj := new PPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sectPr": obj.SectPr := element.Clone(); + pre + "tabs": obj.Tabs := element.Clone(); + pre + "bidi": obj.Bidi := element.Clone(); + pre + "widowControl": obj.WidowControl := element.Clone(); + pre + "snapToGrid": obj.SnapToGrid := element.Clone(); + pre + "pStyle": obj.PStyle := element.Clone(); + pre + "numPr": obj.NumPr := element.Clone(); + pre + "jc": obj.Jc := element.Clone(); + pre + "ind": obj.Ind := element.Clone(); + pre + "keepNext": obj.KeepNext := element.Clone(); + pre + "keepLines": obj.KeepLines := element.Clone(); + pre + "mirrorIndents": obj.MirrorIndents := element.Clone(); + pre + "kinsoku": obj.Kinsoku := element.Clone(); + pre + "pageBreakBefore": obj.PageBreakBefore := element.Clone(); + pre + "suppressAutoHyphens": obj.SuppressAutoHyphens := element.Clone(); + pre + "suppressLineNumbers": obj.SuppressLineNumbers := element.Clone(); + pre + "suppressOverlap": obj.SuppressOverlap := element.Clone(); + pre + "overflowPunct": obj.OverflowPunct := element.Clone(); + pre + "adjustRightInd": obj.AdjustRightInd := element.Clone(); + pre + "spacing": obj.Spacing := element.Clone(); + pre + "outlineLvl": obj.OutlineLvl := element.Clone(); + pre + "autoSpaceDE": obj.AutoSpaceDE := element.Clone(); + pre + "autoSpaceDN": obj.AutoSpaceDN := element.Clone(); + pre + "rPr": obj.RPr := element.Clone(); + pre + "pBdr": obj.PBdr := element.Clone(); + pre + "contextualSpacing": obj.ContextualSpacing := element.Clone(); + pre + "shd": obj.Shd := element.Clone(); + pre + "wordWrap": obj.WordWrap := element.Clone(); + pre + "divId": obj.DivId := element.Clone(); + pre + "cnfStyle": obj.CnfStyle := element.Clone(); + pre + "framePr": obj.FramePr := element.Clone(); + pre + "textboxTightWrap": obj.TextboxTightWrap := element.Clone(); + pre + "topLinePunct": obj.TopLinePunct := element.Clone(); + pre + "textAlignment": obj.TextAlignment := element.Clone(); + pre + "textDirection": obj.TextDirection := element.Clone(); + "w15:collapsed": obj.Collapsed := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function PPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSectPr) then @@ -6702,28 +7219,18 @@ begin {self.}XmlChildJc.ConvertToPoint(); if not ifnil({self.}XmlChildInd) then {self.}XmlChildInd.ConvertToPoint(); - if not ifnil({self.}XmlChildKinsoku) then - {self.}XmlChildKinsoku.ConvertToPoint(); - if not ifnil({self.}XmlChildOverflowPunct) then - {self.}XmlChildOverflowPunct.ConvertToPoint(); if not ifnil({self.}XmlChildAdjustRightInd) then {self.}XmlChildAdjustRightInd.ConvertToPoint(); if not ifnil({self.}XmlChildSpacing) then {self.}XmlChildSpacing.ConvertToPoint(); if not ifnil({self.}XmlChildOutlineLvl) then {self.}XmlChildOutlineLvl.ConvertToPoint(); - if not ifnil({self.}XmlChildAutoSpaceDE) then - {self.}XmlChildAutoSpaceDE.ConvertToPoint(); - if not ifnil({self.}XmlChildAutoSpaceDN) then - {self.}XmlChildAutoSpaceDN.ConvertToPoint(); if not ifnil({self.}XmlChildRPr) then {self.}XmlChildRPr.ConvertToPoint(); if not ifnil({self.}XmlChildPBdr) then {self.}XmlChildPBdr.ConvertToPoint(); if not ifnil({self.}XmlChildShd) then {self.}XmlChildShd.ConvertToPoint(); - if not ifnil({self.}XmlChildWordWrap) then - {self.}XmlChildWordWrap.ConvertToPoint(); if not ifnil({self.}XmlChildDivId) then {self.}XmlChildDivId.ConvertToPoint(); if not ifnil({self.}XmlChildCnfStyle) then @@ -6732,14 +7239,10 @@ begin {self.}XmlChildFramePr.ConvertToPoint(); if not ifnil({self.}XmlChildTextboxTightWrap) then {self.}XmlChildTextboxTightWrap.ConvertToPoint(); - if not ifnil({self.}XmlChildTopLinePunct) then - {self.}XmlChildTopLinePunct.ConvertToPoint(); if not ifnil({self.}XmlChildTextAlignment) then {self.}XmlChildTextAlignment.ConvertToPoint(); if not ifnil({self.}XmlChildTextDirection) then {self.}XmlChildTextDirection.ConvertToPoint(); - if not ifnil({self.}XmlChildCollapsed) then - {self.}XmlChildCollapsed.ConvertToPoint(); end; function PPr.ReadXmlChildBidi(); @@ -6749,7 +7252,7 @@ begin {self.}XmlChildBidi := new OpenXmlSimpleType(self, {self.}Prefix, "bidi"); container_.Set({self.}XmlChildBidi); end - return {self.}XmlChildBidi and not {self.}XmlChildBidi.Removed ? {self.}XmlChildBidi : fallback_.XmlChildBidi; + return {self.}XmlChildBidi and not {self.}XmlChildBidi.Removed ? {self.}XmlChildBidi : fallback_.Bidi; end; function PPr.WriteXmlChildBidi(_value: nil_or_OpenXmlSimpleType); @@ -6761,6 +7264,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildBidi := _value; container_.Set({self.}XmlChildBidi); end @@ -6776,7 +7280,7 @@ begin {self.}XmlChildWidowControl := new OpenXmlSimpleType(self, {self.}Prefix, "widowControl"); container_.Set({self.}XmlChildWidowControl); end - return {self.}XmlChildWidowControl and not {self.}XmlChildWidowControl.Removed ? {self.}XmlChildWidowControl : fallback_.XmlChildWidowControl; + return {self.}XmlChildWidowControl and not {self.}XmlChildWidowControl.Removed ? {self.}XmlChildWidowControl : fallback_.WidowControl; end; function PPr.WriteXmlChildWidowControl(_value: nil_or_OpenXmlSimpleType); @@ -6788,6 +7292,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildWidowControl := _value; container_.Set({self.}XmlChildWidowControl); end @@ -6803,7 +7308,7 @@ begin {self.}XmlChildSnapToGrid := new OpenXmlSimpleType(self, {self.}Prefix, "snapToGrid"); container_.Set({self.}XmlChildSnapToGrid); end - return {self.}XmlChildSnapToGrid and not {self.}XmlChildSnapToGrid.Removed ? {self.}XmlChildSnapToGrid : fallback_.XmlChildSnapToGrid; + return {self.}XmlChildSnapToGrid and not {self.}XmlChildSnapToGrid.Removed ? {self.}XmlChildSnapToGrid : fallback_.SnapToGrid; end; function PPr.WriteXmlChildSnapToGrid(_value: nil_or_OpenXmlSimpleType); @@ -6815,6 +7320,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildSnapToGrid := _value; container_.Set({self.}XmlChildSnapToGrid); end @@ -6830,7 +7336,7 @@ begin {self.}XmlChildKeepNext := new OpenXmlSimpleType(self, {self.}Prefix, "keepNext"); container_.Set({self.}XmlChildKeepNext); end - return {self.}XmlChildKeepNext and not {self.}XmlChildKeepNext.Removed ? {self.}XmlChildKeepNext : fallback_.XmlChildKeepNext; + return {self.}XmlChildKeepNext and not {self.}XmlChildKeepNext.Removed ? {self.}XmlChildKeepNext : fallback_.KeepNext; end; function PPr.WriteXmlChildKeepNext(_value: nil_or_OpenXmlSimpleType); @@ -6842,6 +7348,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildKeepNext := _value; container_.Set({self.}XmlChildKeepNext); end @@ -6857,7 +7364,7 @@ begin {self.}XmlChildKeepLines := new OpenXmlSimpleType(self, {self.}Prefix, "keepLines"); container_.Set({self.}XmlChildKeepLines); end - return {self.}XmlChildKeepLines and not {self.}XmlChildKeepLines.Removed ? {self.}XmlChildKeepLines : fallback_.XmlChildKeepLines; + return {self.}XmlChildKeepLines and not {self.}XmlChildKeepLines.Removed ? {self.}XmlChildKeepLines : fallback_.KeepLines; end; function PPr.WriteXmlChildKeepLines(_value: nil_or_OpenXmlSimpleType); @@ -6869,6 +7376,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildKeepLines := _value; container_.Set({self.}XmlChildKeepLines); end @@ -6884,7 +7392,7 @@ begin {self.}XmlChildMirrorIndents := new OpenXmlSimpleType(self, {self.}Prefix, "mirrorIndents"); container_.Set({self.}XmlChildMirrorIndents); end - return {self.}XmlChildMirrorIndents and not {self.}XmlChildMirrorIndents.Removed ? {self.}XmlChildMirrorIndents : fallback_.XmlChildMirrorIndents; + return {self.}XmlChildMirrorIndents and not {self.}XmlChildMirrorIndents.Removed ? {self.}XmlChildMirrorIndents : fallback_.MirrorIndents; end; function PPr.WriteXmlChildMirrorIndents(_value: nil_or_OpenXmlSimpleType); @@ -6896,6 +7404,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildMirrorIndents := _value; container_.Set({self.}XmlChildMirrorIndents); end @@ -6904,6 +7413,34 @@ begin end end; +function PPr.ReadXmlChildKinsoku(); +begin + if tslassigning and (ifnil({self.}XmlChildKinsoku) or {self.}XmlChildKinsoku.Removed) then + begin + {self.}XmlChildKinsoku := new OpenXmlSimpleType(self, {self.}Prefix, "kinsoku"); + container_.Set({self.}XmlChildKinsoku); + end + return {self.}XmlChildKinsoku and not {self.}XmlChildKinsoku.Removed ? {self.}XmlChildKinsoku : fallback_.Kinsoku; +end; + +function PPr.WriteXmlChildKinsoku(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildKinsoku) then + {self.}RemoveChild({self.}XmlChildKinsoku); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildKinsoku := _value; + container_.Set({self.}XmlChildKinsoku); + end + else begin + raise "Invalid assignment: Kinsoku expects nil or OpenXmlSimpleType"; + end +end; + function PPr.ReadXmlChildPageBreakBefore(); begin if tslassigning and (ifnil({self.}XmlChildPageBreakBefore) or {self.}XmlChildPageBreakBefore.Removed) then @@ -6911,7 +7448,7 @@ begin {self.}XmlChildPageBreakBefore := new OpenXmlSimpleType(self, {self.}Prefix, "pageBreakBefore"); container_.Set({self.}XmlChildPageBreakBefore); end - return {self.}XmlChildPageBreakBefore and not {self.}XmlChildPageBreakBefore.Removed ? {self.}XmlChildPageBreakBefore : fallback_.XmlChildPageBreakBefore; + return {self.}XmlChildPageBreakBefore and not {self.}XmlChildPageBreakBefore.Removed ? {self.}XmlChildPageBreakBefore : fallback_.PageBreakBefore; end; function PPr.WriteXmlChildPageBreakBefore(_value: nil_or_OpenXmlSimpleType); @@ -6923,6 +7460,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildPageBreakBefore := _value; container_.Set({self.}XmlChildPageBreakBefore); end @@ -6938,7 +7476,7 @@ begin {self.}XmlChildSuppressAutoHyphens := new OpenXmlSimpleType(self, {self.}Prefix, "suppressAutoHyphens"); container_.Set({self.}XmlChildSuppressAutoHyphens); end - return {self.}XmlChildSuppressAutoHyphens and not {self.}XmlChildSuppressAutoHyphens.Removed ? {self.}XmlChildSuppressAutoHyphens : fallback_.XmlChildSuppressAutoHyphens; + return {self.}XmlChildSuppressAutoHyphens and not {self.}XmlChildSuppressAutoHyphens.Removed ? {self.}XmlChildSuppressAutoHyphens : fallback_.SuppressAutoHyphens; end; function PPr.WriteXmlChildSuppressAutoHyphens(_value: nil_or_OpenXmlSimpleType); @@ -6950,6 +7488,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildSuppressAutoHyphens := _value; container_.Set({self.}XmlChildSuppressAutoHyphens); end @@ -6965,7 +7504,7 @@ begin {self.}XmlChildSuppressLineNumbers := new OpenXmlSimpleType(self, {self.}Prefix, "suppressLineNumbers"); container_.Set({self.}XmlChildSuppressLineNumbers); end - return {self.}XmlChildSuppressLineNumbers and not {self.}XmlChildSuppressLineNumbers.Removed ? {self.}XmlChildSuppressLineNumbers : fallback_.XmlChildSuppressLineNumbers; + return {self.}XmlChildSuppressLineNumbers and not {self.}XmlChildSuppressLineNumbers.Removed ? {self.}XmlChildSuppressLineNumbers : fallback_.SuppressLineNumbers; end; function PPr.WriteXmlChildSuppressLineNumbers(_value: nil_or_OpenXmlSimpleType); @@ -6977,6 +7516,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildSuppressLineNumbers := _value; container_.Set({self.}XmlChildSuppressLineNumbers); end @@ -6992,7 +7532,7 @@ begin {self.}XmlChildSuppressOverlap := new OpenXmlSimpleType(self, {self.}Prefix, "suppressOverlap"); container_.Set({self.}XmlChildSuppressOverlap); end - return {self.}XmlChildSuppressOverlap and not {self.}XmlChildSuppressOverlap.Removed ? {self.}XmlChildSuppressOverlap : fallback_.XmlChildSuppressOverlap; + return {self.}XmlChildSuppressOverlap and not {self.}XmlChildSuppressOverlap.Removed ? {self.}XmlChildSuppressOverlap : fallback_.SuppressOverlap; end; function PPr.WriteXmlChildSuppressOverlap(_value: nil_or_OpenXmlSimpleType); @@ -7004,6 +7544,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildSuppressOverlap := _value; container_.Set({self.}XmlChildSuppressOverlap); end @@ -7012,6 +7553,90 @@ begin end end; +function PPr.ReadXmlChildOverflowPunct(); +begin + if tslassigning and (ifnil({self.}XmlChildOverflowPunct) or {self.}XmlChildOverflowPunct.Removed) then + begin + {self.}XmlChildOverflowPunct := new OpenXmlSimpleType(self, {self.}Prefix, "overflowPunct"); + container_.Set({self.}XmlChildOverflowPunct); + end + return {self.}XmlChildOverflowPunct and not {self.}XmlChildOverflowPunct.Removed ? {self.}XmlChildOverflowPunct : fallback_.OverflowPunct; +end; + +function PPr.WriteXmlChildOverflowPunct(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildOverflowPunct) then + {self.}RemoveChild({self.}XmlChildOverflowPunct); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildOverflowPunct := _value; + container_.Set({self.}XmlChildOverflowPunct); + end + else begin + raise "Invalid assignment: OverflowPunct expects nil or OpenXmlSimpleType"; + end +end; + +function PPr.ReadXmlChildAutoSpaceDE(); +begin + if tslassigning and (ifnil({self.}XmlChildAutoSpaceDE) or {self.}XmlChildAutoSpaceDE.Removed) then + begin + {self.}XmlChildAutoSpaceDE := new OpenXmlSimpleType(self, {self.}Prefix, "autoSpaceDE"); + container_.Set({self.}XmlChildAutoSpaceDE); + end + return {self.}XmlChildAutoSpaceDE and not {self.}XmlChildAutoSpaceDE.Removed ? {self.}XmlChildAutoSpaceDE : fallback_.AutoSpaceDE; +end; + +function PPr.WriteXmlChildAutoSpaceDE(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildAutoSpaceDE) then + {self.}RemoveChild({self.}XmlChildAutoSpaceDE); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildAutoSpaceDE := _value; + container_.Set({self.}XmlChildAutoSpaceDE); + end + else begin + raise "Invalid assignment: AutoSpaceDE expects nil or OpenXmlSimpleType"; + end +end; + +function PPr.ReadXmlChildAutoSpaceDN(); +begin + if tslassigning and (ifnil({self.}XmlChildAutoSpaceDN) or {self.}XmlChildAutoSpaceDN.Removed) then + begin + {self.}XmlChildAutoSpaceDN := new OpenXmlSimpleType(self, {self.}Prefix, "autoSpaceDN"); + container_.Set({self.}XmlChildAutoSpaceDN); + end + return {self.}XmlChildAutoSpaceDN and not {self.}XmlChildAutoSpaceDN.Removed ? {self.}XmlChildAutoSpaceDN : fallback_.AutoSpaceDN; +end; + +function PPr.WriteXmlChildAutoSpaceDN(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildAutoSpaceDN) then + {self.}RemoveChild({self.}XmlChildAutoSpaceDN); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildAutoSpaceDN := _value; + container_.Set({self.}XmlChildAutoSpaceDN); + end + else begin + raise "Invalid assignment: AutoSpaceDN expects nil or OpenXmlSimpleType"; + end +end; + function PPr.ReadXmlChildContextualSpacing(); begin if tslassigning and (ifnil({self.}XmlChildContextualSpacing) or {self.}XmlChildContextualSpacing.Removed) then @@ -7019,7 +7644,7 @@ begin {self.}XmlChildContextualSpacing := new OpenXmlSimpleType(self, {self.}Prefix, "contextualSpacing"); container_.Set({self.}XmlChildContextualSpacing); end - return {self.}XmlChildContextualSpacing and not {self.}XmlChildContextualSpacing.Removed ? {self.}XmlChildContextualSpacing : fallback_.XmlChildContextualSpacing; + return {self.}XmlChildContextualSpacing and not {self.}XmlChildContextualSpacing.Removed ? {self.}XmlChildContextualSpacing : fallback_.ContextualSpacing; end; function PPr.WriteXmlChildContextualSpacing(_value: nil_or_OpenXmlSimpleType); @@ -7031,6 +7656,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildContextualSpacing := _value; container_.Set({self.}XmlChildContextualSpacing); end @@ -7039,6 +7665,90 @@ begin end end; +function PPr.ReadXmlChildWordWrap(); +begin + if tslassigning and (ifnil({self.}XmlChildWordWrap) or {self.}XmlChildWordWrap.Removed) then + begin + {self.}XmlChildWordWrap := new OpenXmlSimpleType(self, {self.}Prefix, "wordWrap"); + container_.Set({self.}XmlChildWordWrap); + end + return {self.}XmlChildWordWrap and not {self.}XmlChildWordWrap.Removed ? {self.}XmlChildWordWrap : fallback_.WordWrap; +end; + +function PPr.WriteXmlChildWordWrap(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildWordWrap) then + {self.}RemoveChild({self.}XmlChildWordWrap); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildWordWrap := _value; + container_.Set({self.}XmlChildWordWrap); + end + else begin + raise "Invalid assignment: WordWrap expects nil or OpenXmlSimpleType"; + end +end; + +function PPr.ReadXmlChildTopLinePunct(); +begin + if tslassigning and (ifnil({self.}XmlChildTopLinePunct) or {self.}XmlChildTopLinePunct.Removed) then + begin + {self.}XmlChildTopLinePunct := new OpenXmlSimpleType(self, {self.}Prefix, "topLinePunct"); + container_.Set({self.}XmlChildTopLinePunct); + end + return {self.}XmlChildTopLinePunct and not {self.}XmlChildTopLinePunct.Removed ? {self.}XmlChildTopLinePunct : fallback_.TopLinePunct; +end; + +function PPr.WriteXmlChildTopLinePunct(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildTopLinePunct) then + {self.}RemoveChild({self.}XmlChildTopLinePunct); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildTopLinePunct := _value; + container_.Set({self.}XmlChildTopLinePunct); + end + else begin + raise "Invalid assignment: TopLinePunct expects nil or OpenXmlSimpleType"; + end +end; + +function PPr.ReadXmlChildCollapsed(); +begin + if tslassigning and (ifnil({self.}XmlChildCollapsed) or {self.}XmlChildCollapsed.Removed) then + begin + {self.}XmlChildCollapsed := new OpenXmlSimpleType(self, "w15", "collapsed"); + container_.Set({self.}XmlChildCollapsed); + end + return {self.}XmlChildCollapsed and not {self.}XmlChildCollapsed.Removed ? {self.}XmlChildCollapsed : fallback_.Collapsed; +end; + +function PPr.WriteXmlChildCollapsed(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildCollapsed) then + {self.}RemoveChild({self.}XmlChildCollapsed); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildCollapsed := _value; + container_.Set({self.}XmlChildCollapsed); + end + else begin + raise "Invalid assignment: Collapsed expects nil or OpenXmlSimpleType"; + end +end; + function PPr.ReadXmlChildSectPr(): SectPr; begin if tslassigning and (ifnil({self.}XmlChildSectPr) or {self.}XmlChildSectPr.Removed) then @@ -7046,7 +7756,7 @@ begin {self.}XmlChildSectPr := new SectPr(self, {self.}Prefix, "sectPr"); container_.Set({self.}XmlChildSectPr); end - return {self.}XmlChildSectPr and not {self.}XmlChildSectPr.Removed ? {self.}XmlChildSectPr : fallback_.XmlChildSectPr; + return {self.}XmlChildSectPr and not {self.}XmlChildSectPr.Removed ? {self.}XmlChildSectPr : fallback_.SectPr; end; function PPr.WriteXmlChildSectPr(_p1: any; _p2: any); @@ -7059,6 +7769,7 @@ begin end else if v is class(SectPr) then begin + v.Parent := self; {self.}XmlChildSectPr := v; container_.Set({self.}XmlChildSectPr); end @@ -7074,7 +7785,7 @@ begin {self.}XmlChildTabs := new Tabs(self, {self.}Prefix, "tabs"); container_.Set({self.}XmlChildTabs); end - return {self.}XmlChildTabs and not {self.}XmlChildTabs.Removed ? {self.}XmlChildTabs : fallback_.XmlChildTabs; + return {self.}XmlChildTabs and not {self.}XmlChildTabs.Removed ? {self.}XmlChildTabs : fallback_.Tabs; end; function PPr.WriteXmlChildTabs(_p1: any; _p2: any); @@ -7087,6 +7798,7 @@ begin end else if v is class(Tabs) then begin + v.Parent := self; {self.}XmlChildTabs := v; container_.Set({self.}XmlChildTabs); end @@ -7102,7 +7814,7 @@ begin {self.}XmlChildPStyle := new PureWVal(self, {self.}Prefix, "pStyle"); container_.Set({self.}XmlChildPStyle); end - return {self.}XmlChildPStyle and not {self.}XmlChildPStyle.Removed ? {self.}XmlChildPStyle : fallback_.XmlChildPStyle; + return {self.}XmlChildPStyle and not {self.}XmlChildPStyle.Removed ? {self.}XmlChildPStyle : fallback_.PStyle; end; function PPr.WriteXmlChildPStyle(_p1: any; _p2: any); @@ -7115,6 +7827,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildPStyle := v; container_.Set({self.}XmlChildPStyle); end @@ -7130,7 +7843,7 @@ begin {self.}XmlChildNumPr := new NumPr(self, {self.}Prefix, "numPr"); container_.Set({self.}XmlChildNumPr); end - return {self.}XmlChildNumPr and not {self.}XmlChildNumPr.Removed ? {self.}XmlChildNumPr : fallback_.XmlChildNumPr; + return {self.}XmlChildNumPr and not {self.}XmlChildNumPr.Removed ? {self.}XmlChildNumPr : fallback_.NumPr; end; function PPr.WriteXmlChildNumPr(_p1: any; _p2: any); @@ -7143,6 +7856,7 @@ begin end else if v is class(NumPr) then begin + v.Parent := self; {self.}XmlChildNumPr := v; container_.Set({self.}XmlChildNumPr); end @@ -7158,7 +7872,7 @@ begin {self.}XmlChildJc := new PureWVal(self, {self.}Prefix, "jc"); container_.Set({self.}XmlChildJc); end - return {self.}XmlChildJc and not {self.}XmlChildJc.Removed ? {self.}XmlChildJc : fallback_.XmlChildJc; + return {self.}XmlChildJc and not {self.}XmlChildJc.Removed ? {self.}XmlChildJc : fallback_.Jc; end; function PPr.WriteXmlChildJc(_p1: any; _p2: any); @@ -7171,6 +7885,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildJc := v; container_.Set({self.}XmlChildJc); end @@ -7186,7 +7901,7 @@ begin {self.}XmlChildInd := new Ind(self, {self.}Prefix, "ind"); container_.Set({self.}XmlChildInd); end - return {self.}XmlChildInd and not {self.}XmlChildInd.Removed ? {self.}XmlChildInd : fallback_.XmlChildInd; + return {self.}XmlChildInd and not {self.}XmlChildInd.Removed ? {self.}XmlChildInd : fallback_.Ind; end; function PPr.WriteXmlChildInd(_p1: any; _p2: any); @@ -7199,6 +7914,7 @@ begin end else if v is class(Ind) then begin + v.Parent := self; {self.}XmlChildInd := v; container_.Set({self.}XmlChildInd); end @@ -7207,62 +7923,6 @@ begin end end; -function PPr.ReadXmlChildKinsoku(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildKinsoku) or {self.}XmlChildKinsoku.Removed) then - begin - {self.}XmlChildKinsoku := new PureWVal(self, {self.}Prefix, "kinsoku"); - container_.Set({self.}XmlChildKinsoku); - end - return {self.}XmlChildKinsoku and not {self.}XmlChildKinsoku.Removed ? {self.}XmlChildKinsoku : fallback_.XmlChildKinsoku; -end; - -function PPr.WriteXmlChildKinsoku(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildKinsoku) then - {self.}RemoveChild({self.}XmlChildKinsoku); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildKinsoku := v; - container_.Set({self.}XmlChildKinsoku); - end - else begin - raise "Invalid assignment: Kinsoku expects PureWVal or nil"; - end -end; - -function PPr.ReadXmlChildOverflowPunct(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildOverflowPunct) or {self.}XmlChildOverflowPunct.Removed) then - begin - {self.}XmlChildOverflowPunct := new PureWVal(self, {self.}Prefix, "overflowPunct"); - container_.Set({self.}XmlChildOverflowPunct); - end - return {self.}XmlChildOverflowPunct and not {self.}XmlChildOverflowPunct.Removed ? {self.}XmlChildOverflowPunct : fallback_.XmlChildOverflowPunct; -end; - -function PPr.WriteXmlChildOverflowPunct(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildOverflowPunct) then - {self.}RemoveChild({self.}XmlChildOverflowPunct); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildOverflowPunct := v; - container_.Set({self.}XmlChildOverflowPunct); - end - else begin - raise "Invalid assignment: OverflowPunct expects PureWVal or nil"; - end -end; - function PPr.ReadXmlChildAdjustRightInd(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildAdjustRightInd) or {self.}XmlChildAdjustRightInd.Removed) then @@ -7270,7 +7930,7 @@ begin {self.}XmlChildAdjustRightInd := new PureWVal(self, {self.}Prefix, "adjustRightInd"); container_.Set({self.}XmlChildAdjustRightInd); end - return {self.}XmlChildAdjustRightInd and not {self.}XmlChildAdjustRightInd.Removed ? {self.}XmlChildAdjustRightInd : fallback_.XmlChildAdjustRightInd; + return {self.}XmlChildAdjustRightInd and not {self.}XmlChildAdjustRightInd.Removed ? {self.}XmlChildAdjustRightInd : fallback_.AdjustRightInd; end; function PPr.WriteXmlChildAdjustRightInd(_p1: any; _p2: any); @@ -7283,6 +7943,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildAdjustRightInd := v; container_.Set({self.}XmlChildAdjustRightInd); end @@ -7298,7 +7959,7 @@ begin {self.}XmlChildSpacing := new Spacing(self, {self.}Prefix, "spacing"); container_.Set({self.}XmlChildSpacing); end - return {self.}XmlChildSpacing and not {self.}XmlChildSpacing.Removed ? {self.}XmlChildSpacing : fallback_.XmlChildSpacing; + return {self.}XmlChildSpacing and not {self.}XmlChildSpacing.Removed ? {self.}XmlChildSpacing : fallback_.Spacing; end; function PPr.WriteXmlChildSpacing(_p1: any; _p2: any); @@ -7311,6 +7972,7 @@ begin end else if v is class(Spacing) then begin + v.Parent := self; {self.}XmlChildSpacing := v; container_.Set({self.}XmlChildSpacing); end @@ -7326,7 +7988,7 @@ begin {self.}XmlChildOutlineLvl := new PureWVal(self, {self.}Prefix, "outlineLvl"); container_.Set({self.}XmlChildOutlineLvl); end - return {self.}XmlChildOutlineLvl and not {self.}XmlChildOutlineLvl.Removed ? {self.}XmlChildOutlineLvl : fallback_.XmlChildOutlineLvl; + return {self.}XmlChildOutlineLvl and not {self.}XmlChildOutlineLvl.Removed ? {self.}XmlChildOutlineLvl : fallback_.OutlineLvl; end; function PPr.WriteXmlChildOutlineLvl(_p1: any; _p2: any); @@ -7339,6 +8001,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildOutlineLvl := v; container_.Set({self.}XmlChildOutlineLvl); end @@ -7347,62 +8010,6 @@ begin end end; -function PPr.ReadXmlChildAutoSpaceDE(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildAutoSpaceDE) or {self.}XmlChildAutoSpaceDE.Removed) then - begin - {self.}XmlChildAutoSpaceDE := new PureWVal(self, {self.}Prefix, "autoSpaceDE"); - container_.Set({self.}XmlChildAutoSpaceDE); - end - return {self.}XmlChildAutoSpaceDE and not {self.}XmlChildAutoSpaceDE.Removed ? {self.}XmlChildAutoSpaceDE : fallback_.XmlChildAutoSpaceDE; -end; - -function PPr.WriteXmlChildAutoSpaceDE(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildAutoSpaceDE) then - {self.}RemoveChild({self.}XmlChildAutoSpaceDE); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildAutoSpaceDE := v; - container_.Set({self.}XmlChildAutoSpaceDE); - end - else begin - raise "Invalid assignment: AutoSpaceDE expects PureWVal or nil"; - end -end; - -function PPr.ReadXmlChildAutoSpaceDN(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildAutoSpaceDN) or {self.}XmlChildAutoSpaceDN.Removed) then - begin - {self.}XmlChildAutoSpaceDN := new PureWVal(self, {self.}Prefix, "autoSpaceDN"); - container_.Set({self.}XmlChildAutoSpaceDN); - end - return {self.}XmlChildAutoSpaceDN and not {self.}XmlChildAutoSpaceDN.Removed ? {self.}XmlChildAutoSpaceDN : fallback_.XmlChildAutoSpaceDN; -end; - -function PPr.WriteXmlChildAutoSpaceDN(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildAutoSpaceDN) then - {self.}RemoveChild({self.}XmlChildAutoSpaceDN); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildAutoSpaceDN := v; - container_.Set({self.}XmlChildAutoSpaceDN); - end - else begin - raise "Invalid assignment: AutoSpaceDN expects PureWVal or nil"; - end -end; - function PPr.ReadXmlChildRPr(): RPr; begin if tslassigning and (ifnil({self.}XmlChildRPr) or {self.}XmlChildRPr.Removed) then @@ -7410,7 +8017,7 @@ begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; end; function PPr.WriteXmlChildRPr(_p1: any; _p2: any); @@ -7423,6 +8030,7 @@ begin end else if v is class(RPr) then begin + v.Parent := self; {self.}XmlChildRPr := v; container_.Set({self.}XmlChildRPr); end @@ -7438,7 +8046,7 @@ begin {self.}XmlChildPBdr := new PBdr(self, {self.}Prefix, "pBdr"); container_.Set({self.}XmlChildPBdr); end - return {self.}XmlChildPBdr and not {self.}XmlChildPBdr.Removed ? {self.}XmlChildPBdr : fallback_.XmlChildPBdr; + return {self.}XmlChildPBdr and not {self.}XmlChildPBdr.Removed ? {self.}XmlChildPBdr : fallback_.PBdr; end; function PPr.WriteXmlChildPBdr(_p1: any; _p2: any); @@ -7451,6 +8059,7 @@ begin end else if v is class(PBdr) then begin + v.Parent := self; {self.}XmlChildPBdr := v; container_.Set({self.}XmlChildPBdr); end @@ -7466,7 +8075,7 @@ begin {self.}XmlChildShd := new Shd(self, {self.}Prefix, "shd"); container_.Set({self.}XmlChildShd); end - return {self.}XmlChildShd and not {self.}XmlChildShd.Removed ? {self.}XmlChildShd : fallback_.XmlChildShd; + return {self.}XmlChildShd and not {self.}XmlChildShd.Removed ? {self.}XmlChildShd : fallback_.Shd; end; function PPr.WriteXmlChildShd(_p1: any; _p2: any); @@ -7479,6 +8088,7 @@ begin end else if v is class(Shd) then begin + v.Parent := self; {self.}XmlChildShd := v; container_.Set({self.}XmlChildShd); end @@ -7487,34 +8097,6 @@ begin end end; -function PPr.ReadXmlChildWordWrap(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildWordWrap) or {self.}XmlChildWordWrap.Removed) then - begin - {self.}XmlChildWordWrap := new PureWVal(self, {self.}Prefix, "wordWrap"); - container_.Set({self.}XmlChildWordWrap); - end - return {self.}XmlChildWordWrap and not {self.}XmlChildWordWrap.Removed ? {self.}XmlChildWordWrap : fallback_.XmlChildWordWrap; -end; - -function PPr.WriteXmlChildWordWrap(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildWordWrap) then - {self.}RemoveChild({self.}XmlChildWordWrap); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildWordWrap := v; - container_.Set({self.}XmlChildWordWrap); - end - else begin - raise "Invalid assignment: WordWrap expects PureWVal or nil"; - end -end; - function PPr.ReadXmlChildDivId(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildDivId) or {self.}XmlChildDivId.Removed) then @@ -7522,7 +8104,7 @@ begin {self.}XmlChildDivId := new PureWVal(self, {self.}Prefix, "divId"); container_.Set({self.}XmlChildDivId); end - return {self.}XmlChildDivId and not {self.}XmlChildDivId.Removed ? {self.}XmlChildDivId : fallback_.XmlChildDivId; + return {self.}XmlChildDivId and not {self.}XmlChildDivId.Removed ? {self.}XmlChildDivId : fallback_.DivId; end; function PPr.WriteXmlChildDivId(_p1: any; _p2: any); @@ -7535,6 +8117,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildDivId := v; container_.Set({self.}XmlChildDivId); end @@ -7550,7 +8133,7 @@ begin {self.}XmlChildCnfStyle := new PureWVal(self, {self.}Prefix, "cnfStyle"); container_.Set({self.}XmlChildCnfStyle); end - return {self.}XmlChildCnfStyle and not {self.}XmlChildCnfStyle.Removed ? {self.}XmlChildCnfStyle : fallback_.XmlChildCnfStyle; + return {self.}XmlChildCnfStyle and not {self.}XmlChildCnfStyle.Removed ? {self.}XmlChildCnfStyle : fallback_.CnfStyle; end; function PPr.WriteXmlChildCnfStyle(_p1: any; _p2: any); @@ -7563,6 +8146,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildCnfStyle := v; container_.Set({self.}XmlChildCnfStyle); end @@ -7578,7 +8162,7 @@ begin {self.}XmlChildFramePr := new FramePr(self, {self.}Prefix, "framePr"); container_.Set({self.}XmlChildFramePr); end - return {self.}XmlChildFramePr and not {self.}XmlChildFramePr.Removed ? {self.}XmlChildFramePr : fallback_.XmlChildFramePr; + return {self.}XmlChildFramePr and not {self.}XmlChildFramePr.Removed ? {self.}XmlChildFramePr : fallback_.FramePr; end; function PPr.WriteXmlChildFramePr(_p1: any; _p2: any); @@ -7591,6 +8175,7 @@ begin end else if v is class(FramePr) then begin + v.Parent := self; {self.}XmlChildFramePr := v; container_.Set({self.}XmlChildFramePr); end @@ -7606,7 +8191,7 @@ begin {self.}XmlChildTextboxTightWrap := new PureWVal(self, {self.}Prefix, "textboxTightWrap"); container_.Set({self.}XmlChildTextboxTightWrap); end - return {self.}XmlChildTextboxTightWrap and not {self.}XmlChildTextboxTightWrap.Removed ? {self.}XmlChildTextboxTightWrap : fallback_.XmlChildTextboxTightWrap; + return {self.}XmlChildTextboxTightWrap and not {self.}XmlChildTextboxTightWrap.Removed ? {self.}XmlChildTextboxTightWrap : fallback_.TextboxTightWrap; end; function PPr.WriteXmlChildTextboxTightWrap(_p1: any; _p2: any); @@ -7619,6 +8204,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTextboxTightWrap := v; container_.Set({self.}XmlChildTextboxTightWrap); end @@ -7627,34 +8213,6 @@ begin end end; -function PPr.ReadXmlChildTopLinePunct(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildTopLinePunct) or {self.}XmlChildTopLinePunct.Removed) then - begin - {self.}XmlChildTopLinePunct := new PureWVal(self, {self.}Prefix, "topLinePunct"); - container_.Set({self.}XmlChildTopLinePunct); - end - return {self.}XmlChildTopLinePunct and not {self.}XmlChildTopLinePunct.Removed ? {self.}XmlChildTopLinePunct : fallback_.XmlChildTopLinePunct; -end; - -function PPr.WriteXmlChildTopLinePunct(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildTopLinePunct) then - {self.}RemoveChild({self.}XmlChildTopLinePunct); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildTopLinePunct := v; - container_.Set({self.}XmlChildTopLinePunct); - end - else begin - raise "Invalid assignment: TopLinePunct expects PureWVal or nil"; - end -end; - function PPr.ReadXmlChildTextAlignment(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildTextAlignment) or {self.}XmlChildTextAlignment.Removed) then @@ -7662,7 +8220,7 @@ begin {self.}XmlChildTextAlignment := new PureWVal(self, {self.}Prefix, "textAlignment"); container_.Set({self.}XmlChildTextAlignment); end - return {self.}XmlChildTextAlignment and not {self.}XmlChildTextAlignment.Removed ? {self.}XmlChildTextAlignment : fallback_.XmlChildTextAlignment; + return {self.}XmlChildTextAlignment and not {self.}XmlChildTextAlignment.Removed ? {self.}XmlChildTextAlignment : fallback_.TextAlignment; end; function PPr.WriteXmlChildTextAlignment(_p1: any; _p2: any); @@ -7675,6 +8233,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTextAlignment := v; container_.Set({self.}XmlChildTextAlignment); end @@ -7690,7 +8249,7 @@ begin {self.}XmlChildTextDirection := new PureWVal(self, {self.}Prefix, "textDirection"); container_.Set({self.}XmlChildTextDirection); end - return {self.}XmlChildTextDirection and not {self.}XmlChildTextDirection.Removed ? {self.}XmlChildTextDirection : fallback_.XmlChildTextDirection; + return {self.}XmlChildTextDirection and not {self.}XmlChildTextDirection.Removed ? {self.}XmlChildTextDirection : fallback_.TextDirection; end; function PPr.WriteXmlChildTextDirection(_p1: any; _p2: any); @@ -7703,6 +8262,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTextDirection := v; container_.Set({self.}XmlChildTextDirection); end @@ -7711,48 +8271,20 @@ begin end end; -function PPr.ReadXmlChildCollapsed(): PureWVal; +function PBdr.create();overload; begin - if tslassigning and (ifnil({self.}XmlChildCollapsed) or {self.}XmlChildCollapsed.Removed) then - begin - {self.}XmlChildCollapsed := new PureWVal(self, "w15", "wordWrap"); - container_.Set({self.}XmlChildCollapsed); - end - return {self.}XmlChildCollapsed and not {self.}XmlChildCollapsed.Removed ? {self.}XmlChildCollapsed : fallback_.XmlChildCollapsed; + {self.}create(nil, "w", "pBdr"); end; -function PPr.WriteXmlChildCollapsed(_p1: any; _p2: any); +function PBdr.create(_node: XmlNode);overload; begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildCollapsed) then - {self.}RemoveChild({self.}XmlChildCollapsed); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildCollapsed := v; - container_.Set({self.}XmlChildCollapsed); - end - else begin - raise "Invalid assignment: Collapsed expects PureWVal or nil"; - end + inherited create(_node); end; -function PBdr.Create();overload; -begin - {self.}Create(nil, "w", "pBdr"); -end; - -function PBdr.Create(_node: XmlNode);overload; -begin - inherited Create(_node: XmlNode); -end; - -function PBdr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PBdr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PBdr.Init();override; @@ -7762,11 +8294,12 @@ begin attributes_pf_ := array( ); sorted_child_ := array( - pre + "top": array(0, makeweakref(thisFunction(ReadXmlChildTop))), - pre + "left": array(1, makeweakref(thisFunction(ReadXmlChildLeft))), - pre + "right": array(2, makeweakref(thisFunction(ReadXmlChildRight))), - pre + "bottom": array(3, makeweakref(thisFunction(ReadXmlChildBottom))), - pre + "between": array(4, makeweakref(thisFunction(ReadXmlChildBetween))), + pre + "bar": array(0, makeweakref(thisFunction(ReadXmlChildBar))), + pre + "top": array(1, makeweakref(thisFunction(ReadXmlChildTop))), + pre + "left": array(2, makeweakref(thisFunction(ReadXmlChildLeft))), + pre + "right": array(3, makeweakref(thisFunction(ReadXmlChildRight))), + pre + "bottom": array(4, makeweakref(thisFunction(ReadXmlChildBottom))), + pre + "between": array(5, makeweakref(thisFunction(ReadXmlChildBetween))), ); container_ := new TSOfficeContainer(sorted_child_); end; @@ -7775,7 +8308,9 @@ function PBdr.Copy(_obj: PBdr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); + if not ifnil(_obj.XmlChildBar) then + {self.}Bar.Copy(_obj.XmlChildBar); if not ifnil(_obj.XmlChildTop) then {self.}Top.Copy(_obj.XmlChildTop); if not ifnil(_obj.XmlChildLeft) then @@ -7789,8 +8324,30 @@ begin tslassigning := tslassigning_backup; end; +function PBdr.Clone(): PBdr;override; +begin + obj := new PBdr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "bar": obj.Bar := element.Clone(); + pre + "top": obj.Top := element.Clone(); + pre + "left": obj.Left := element.Clone(); + pre + "right": obj.Right := element.Clone(); + pre + "bottom": obj.Bottom := element.Clone(); + pre + "between": obj.Between := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function PBdr.ConvertToPoint();override; begin + if not ifnil({self.}XmlChildBar) then + {self.}XmlChildBar.ConvertToPoint(); if not ifnil({self.}XmlChildTop) then {self.}XmlChildTop.ConvertToPoint(); if not ifnil({self.}XmlChildLeft) then @@ -7803,14 +8360,43 @@ begin {self.}XmlChildBetween.ConvertToPoint(); end; -function PBdr.ReadXmlChildTop(): PBorder; +function PBdr.ReadXmlChildBar(): Bdr; +begin + if tslassigning and (ifnil({self.}XmlChildBar) or {self.}XmlChildBar.Removed) then + begin + {self.}XmlChildBar := new Bdr(self, {self.}Prefix, "bar"); + container_.Set({self.}XmlChildBar); + end + return {self.}XmlChildBar and not {self.}XmlChildBar.Removed ? {self.}XmlChildBar : fallback_.Bar; +end; + +function PBdr.WriteXmlChildBar(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBar) then + {self.}RemoveChild({self.}XmlChildBar); + end + else if v is class(Bdr) then + begin + v.Parent := self; + {self.}XmlChildBar := v; + container_.Set({self.}XmlChildBar); + end + else begin + raise "Invalid assignment: Bar expects Bdr or nil"; + end +end; + +function PBdr.ReadXmlChildTop(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildTop) or {self.}XmlChildTop.Removed) then begin - {self.}XmlChildTop := new PBorder(self, {self.}Prefix, "top"); + {self.}XmlChildTop := new Bdr(self, {self.}Prefix, "top"); container_.Set({self.}XmlChildTop); end - return {self.}XmlChildTop and not {self.}XmlChildTop.Removed ? {self.}XmlChildTop : fallback_.XmlChildTop; + return {self.}XmlChildTop and not {self.}XmlChildTop.Removed ? {self.}XmlChildTop : fallback_.Top; end; function PBdr.WriteXmlChildTop(_p1: any; _p2: any); @@ -7821,24 +8407,25 @@ begin if ifObj({self.}XmlChildTop) then {self.}RemoveChild({self.}XmlChildTop); end - else if v is class(PBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildTop := v; container_.Set({self.}XmlChildTop); end else begin - raise "Invalid assignment: Top expects PBorder or nil"; + raise "Invalid assignment: Top expects Bdr or nil"; end end; -function PBdr.ReadXmlChildLeft(): PBorder; +function PBdr.ReadXmlChildLeft(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildLeft) or {self.}XmlChildLeft.Removed) then begin - {self.}XmlChildLeft := new PBorder(self, {self.}Prefix, "left"); + {self.}XmlChildLeft := new Bdr(self, {self.}Prefix, "left"); container_.Set({self.}XmlChildLeft); end - return {self.}XmlChildLeft and not {self.}XmlChildLeft.Removed ? {self.}XmlChildLeft : fallback_.XmlChildLeft; + return {self.}XmlChildLeft and not {self.}XmlChildLeft.Removed ? {self.}XmlChildLeft : fallback_.Left; end; function PBdr.WriteXmlChildLeft(_p1: any; _p2: any); @@ -7849,24 +8436,25 @@ begin if ifObj({self.}XmlChildLeft) then {self.}RemoveChild({self.}XmlChildLeft); end - else if v is class(PBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildLeft := v; container_.Set({self.}XmlChildLeft); end else begin - raise "Invalid assignment: Left expects PBorder or nil"; + raise "Invalid assignment: Left expects Bdr or nil"; end end; -function PBdr.ReadXmlChildRight(): PBorder; +function PBdr.ReadXmlChildRight(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildRight) or {self.}XmlChildRight.Removed) then begin - {self.}XmlChildRight := new PBorder(self, {self.}Prefix, "right"); + {self.}XmlChildRight := new Bdr(self, {self.}Prefix, "right"); container_.Set({self.}XmlChildRight); end - return {self.}XmlChildRight and not {self.}XmlChildRight.Removed ? {self.}XmlChildRight : fallback_.XmlChildRight; + return {self.}XmlChildRight and not {self.}XmlChildRight.Removed ? {self.}XmlChildRight : fallback_.Right; end; function PBdr.WriteXmlChildRight(_p1: any; _p2: any); @@ -7877,24 +8465,25 @@ begin if ifObj({self.}XmlChildRight) then {self.}RemoveChild({self.}XmlChildRight); end - else if v is class(PBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildRight := v; container_.Set({self.}XmlChildRight); end else begin - raise "Invalid assignment: Right expects PBorder or nil"; + raise "Invalid assignment: Right expects Bdr or nil"; end end; -function PBdr.ReadXmlChildBottom(): PBorder; +function PBdr.ReadXmlChildBottom(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildBottom) or {self.}XmlChildBottom.Removed) then begin - {self.}XmlChildBottom := new PBorder(self, {self.}Prefix, "bottom"); + {self.}XmlChildBottom := new Bdr(self, {self.}Prefix, "bottom"); container_.Set({self.}XmlChildBottom); end - return {self.}XmlChildBottom and not {self.}XmlChildBottom.Removed ? {self.}XmlChildBottom : fallback_.XmlChildBottom; + return {self.}XmlChildBottom and not {self.}XmlChildBottom.Removed ? {self.}XmlChildBottom : fallback_.Bottom; end; function PBdr.WriteXmlChildBottom(_p1: any; _p2: any); @@ -7905,24 +8494,25 @@ begin if ifObj({self.}XmlChildBottom) then {self.}RemoveChild({self.}XmlChildBottom); end - else if v is class(PBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildBottom := v; container_.Set({self.}XmlChildBottom); end else begin - raise "Invalid assignment: Bottom expects PBorder or nil"; + raise "Invalid assignment: Bottom expects Bdr or nil"; end end; -function PBdr.ReadXmlChildBetween(): PBorder; +function PBdr.ReadXmlChildBetween(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildBetween) or {self.}XmlChildBetween.Removed) then begin - {self.}XmlChildBetween := new PBorder(self, {self.}Prefix, "between"); + {self.}XmlChildBetween := new Bdr(self, {self.}Prefix, "between"); container_.Set({self.}XmlChildBetween); end - return {self.}XmlChildBetween and not {self.}XmlChildBetween.Removed ? {self.}XmlChildBetween : fallback_.XmlChildBetween; + return {self.}XmlChildBetween and not {self.}XmlChildBetween.Removed ? {self.}XmlChildBetween : fallback_.Between; end; function PBdr.WriteXmlChildBetween(_p1: any; _p2: any); @@ -7933,30 +8523,31 @@ begin if ifObj({self.}XmlChildBetween) then {self.}RemoveChild({self.}XmlChildBetween); end - else if v is class(PBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildBetween := v; container_.Set({self.}XmlChildBetween); end else begin - raise "Invalid assignment: Between expects PBorder or nil"; + raise "Invalid assignment: Between expects Bdr or nil"; end end; -function FramePr.Create();overload; +function FramePr.create();overload; begin - {self.}Create(nil, "w", "framePr"); + {self.}create(nil, "w", "framePr"); end; -function FramePr.Create(_node: XmlNode);overload; +function FramePr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function FramePr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FramePr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FramePr.Init();override; @@ -7990,7 +8581,7 @@ function FramePr.Copy(_obj: FramePr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.AnchorLock) then {self.}AnchorLock := _obj.AnchorLock; if not ifnil(_obj.DropCap) then @@ -8026,6 +8617,44 @@ begin tslassigning := tslassigning_backup; end; +function FramePr.Clone(): FramePr;override; +begin + obj := new FramePr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}AnchorLock) then + obj.AnchorLock := {self.}AnchorLock; + if not ifnil({self.}DropCap) then + obj.DropCap := {self.}DropCap; + if not ifnil({self.}VAnchor) then + obj.VAnchor := {self.}VAnchor; + if not ifnil({self.}HAnchor) then + obj.HAnchor := {self.}HAnchor; + if not ifnil({self.}HRule) then + obj.HRule := {self.}HRule; + if not ifnil({self.}HSpace) then + obj.HSpace := {self.}HSpace; + if not ifnil({self.}VSpace) then + obj.VSpace := {self.}VSpace; + if not ifnil({self.}Lines) then + obj.Lines := {self.}Lines; + if not ifnil({self.}Wrap) then + obj.Wrap := {self.}Wrap; + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}W) then + obj.W := {self.}W; + if not ifnil({self.}H) then + obj.H := {self.}H; + if not ifnil({self.}X) then + obj.X := {self.}X; + if not ifnil({self.}Y) then + obj.Y := {self.}Y; + if not ifnil({self.}XAlign) then + obj.XAlign := {self.}XAlign; + if not ifnil({self.}YAlign) then + obj.YAlign := {self.}YAlign; + return obj; +end; + function FramePr.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrW) then @@ -8274,223 +8903,20 @@ begin {self.}XmlAttrYAlign.Value := _value; end; -function PBorder.Create();overload; +function Tabs.create();overload; begin - {self.}Create(nil, "w", ""); + {self.}create(nil, "w", "tabs"); end; -function PBorder.Create(_node: XmlNode);overload; +function Tabs.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function PBorder.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Tabs.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); -end; - -function PBorder.Init();override; -begin - pre := {self.}Prefix ? {self.}Prefix + ":" : ""; - attributes_ := array(); - attributes_pf_ := array( - pre + "val": makeweakref(thisFunction(WriteXmlAttrVal)), - pre + "color": makeweakref(thisFunction(WriteXmlAttrColor)), - pre + "space": makeweakref(thisFunction(WriteXmlAttrSpace)), - pre + "frame": makeweakref(thisFunction(WriteXmlAttrFrame)), - pre + "shadow": makeweakref(thisFunction(WriteXmlAttrShadow)), - pre + "themeColor": makeweakref(thisFunction(WriteXmlAttrThemeColor)), - pre + "themeShade": makeweakref(thisFunction(WriteXmlAttrThemeShade)), - pre + "themeTint": makeweakref(thisFunction(WriteXmlAttrThemeTint)), - pre + "sz": makeweakref(thisFunction(WriteXmlAttrSz)), - ); - sorted_child_ := array( - ); - container_ := new TSOfficeContainer(sorted_child_); -end; - -function PBorder.Copy(_obj: PBorder);override; -begin - tslassigning_backup := tslassigning; - tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); - if not ifnil(_obj.Val) then - {self.}Val := _obj.Val; - if not ifnil(_obj.Color) then - {self.}Color := _obj.Color; - if not ifnil(_obj.Space) then - {self.}Space := _obj.Space; - if not ifnil(_obj.Frame) then - {self.}Frame := _obj.Frame; - if not ifnil(_obj.Shadow) then - {self.}Shadow := _obj.Shadow; - if not ifnil(_obj.ThemeColor) then - {self.}ThemeColor := _obj.ThemeColor; - if not ifnil(_obj.ThemeShade) then - {self.}ThemeShade := _obj.ThemeShade; - if not ifnil(_obj.ThemeTint) then - {self.}ThemeTint := _obj.ThemeTint; - if not ifnil(_obj.Sz) then - {self.}Sz := _obj.Sz; - tslassigning := tslassigning_backup; -end; - -function PBorder.ConvertToPoint();override; -begin - if not ifnil({self.}XmlAttrSz) then - {self.}Sz := TSSafeUnitConverter.HalfPointToPoints({self.}XmlAttrSz.Value); -end; - -function PBorder.ReadXmlAttrVal(); -begin - return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; -end; - -function PBorder.WriteXmlAttrVal(_value: any); -begin - if ifnil({self.}XmlAttrVal) then - begin - {self.}XmlAttrVal := new OpenXmlAttribute({self.}Prefix, "val", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "val" : "val"] := {self.}XmlAttrVal; - end - {self.}XmlAttrVal.Value := _value; -end; - -function PBorder.ReadXmlAttrColor(); -begin - return ifnil({self.}XmlAttrColor.Value) ? fallback_.XmlAttrColor.Value : {self.}XmlAttrColor.Value; -end; - -function PBorder.WriteXmlAttrColor(_value: any); -begin - if ifnil({self.}XmlAttrColor) then - begin - {self.}XmlAttrColor := new OpenXmlAttribute({self.}Prefix, "color", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "color" : "color"] := {self.}XmlAttrColor; - end - {self.}XmlAttrColor.Value := _value; -end; - -function PBorder.ReadXmlAttrSpace(); -begin - return ifnil({self.}XmlAttrSpace.Value) ? fallback_.XmlAttrSpace.Value : {self.}XmlAttrSpace.Value; -end; - -function PBorder.WriteXmlAttrSpace(_value: any); -begin - if ifnil({self.}XmlAttrSpace) then - begin - {self.}XmlAttrSpace := new OpenXmlAttribute({self.}Prefix, "space", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "space" : "space"] := {self.}XmlAttrSpace; - end - {self.}XmlAttrSpace.Value := _value; -end; - -function PBorder.ReadXmlAttrFrame(); -begin - return ifnil({self.}XmlAttrFrame.Value) ? fallback_.XmlAttrFrame.Value : {self.}XmlAttrFrame.Value; -end; - -function PBorder.WriteXmlAttrFrame(_value: any); -begin - if ifnil({self.}XmlAttrFrame) then - begin - {self.}XmlAttrFrame := new OpenXmlAttribute({self.}Prefix, "frame", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "frame" : "frame"] := {self.}XmlAttrFrame; - end - {self.}XmlAttrFrame.Value := _value; -end; - -function PBorder.ReadXmlAttrShadow(); -begin - return ifnil({self.}XmlAttrShadow.Value) ? fallback_.XmlAttrShadow.Value : {self.}XmlAttrShadow.Value; -end; - -function PBorder.WriteXmlAttrShadow(_value: any); -begin - if ifnil({self.}XmlAttrShadow) then - begin - {self.}XmlAttrShadow := new OpenXmlAttribute({self.}Prefix, "shadow", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "shadow" : "shadow"] := {self.}XmlAttrShadow; - end - {self.}XmlAttrShadow.Value := _value; -end; - -function PBorder.ReadXmlAttrThemeColor(); -begin - return ifnil({self.}XmlAttrThemeColor.Value) ? fallback_.XmlAttrThemeColor.Value : {self.}XmlAttrThemeColor.Value; -end; - -function PBorder.WriteXmlAttrThemeColor(_value: any); -begin - if ifnil({self.}XmlAttrThemeColor) then - begin - {self.}XmlAttrThemeColor := new OpenXmlAttribute({self.}Prefix, "themeColor", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "themeColor" : "themeColor"] := {self.}XmlAttrThemeColor; - end - {self.}XmlAttrThemeColor.Value := _value; -end; - -function PBorder.ReadXmlAttrThemeShade(); -begin - return ifnil({self.}XmlAttrThemeShade.Value) ? fallback_.XmlAttrThemeShade.Value : {self.}XmlAttrThemeShade.Value; -end; - -function PBorder.WriteXmlAttrThemeShade(_value: any); -begin - if ifnil({self.}XmlAttrThemeShade) then - begin - {self.}XmlAttrThemeShade := new OpenXmlAttribute({self.}Prefix, "themeShade", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "themeShade" : "themeShade"] := {self.}XmlAttrThemeShade; - end - {self.}XmlAttrThemeShade.Value := _value; -end; - -function PBorder.ReadXmlAttrThemeTint(); -begin - return ifnil({self.}XmlAttrThemeTint.Value) ? fallback_.XmlAttrThemeTint.Value : {self.}XmlAttrThemeTint.Value; -end; - -function PBorder.WriteXmlAttrThemeTint(_value: any); -begin - if ifnil({self.}XmlAttrThemeTint) then - begin - {self.}XmlAttrThemeTint := new OpenXmlAttribute({self.}Prefix, "themeTint", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "themeTint" : "themeTint"] := {self.}XmlAttrThemeTint; - end - {self.}XmlAttrThemeTint.Value := _value; -end; - -function PBorder.ReadXmlAttrSz(); -begin - return ifnil({self.}XmlAttrSz.Value) ? fallback_.XmlAttrSz.Value : {self.}XmlAttrSz.Value; -end; - -function PBorder.WriteXmlAttrSz(_value: any); -begin - if ifnil({self.}XmlAttrSz) then - begin - {self.}XmlAttrSz := new OpenXmlAttribute({self.}Prefix, "sz", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "sz" : "sz"] := {self.}XmlAttrSz; - end - {self.}XmlAttrSz.Value := _value; -end; - -function Tabs.Create();overload; -begin - {self.}Create(nil, "w", "tabs"); -end; - -function Tabs.Create(_node: XmlNode);overload; -begin - inherited Create(_node: XmlNode); -end; - -function Tabs.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; -begin - setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Tabs.Init();override; @@ -8509,10 +8935,19 @@ function Tabs.Copy(_obj: Tabs);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function Tabs.Clone(): Tabs;override; +begin + obj := new Tabs(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Tabs.ConvertToPoint();override; begin elems := {self.}Tabs(); @@ -8549,6 +8984,7 @@ end; function Tabs.AddTab(): Tab; begin obj := new Tab(self, {self.}Prefix, "tab"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -8556,24 +8992,25 @@ end; function Tabs.AppendTab(): Tab; begin obj := new Tab(self, {self.}Prefix, "tab"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Tab.Create();overload; +function Tab.create();overload; begin - {self.}Create(nil, "w", "tab"); + {self.}create(nil, "w", "tab"); end; -function Tab.Create(_node: XmlNode);overload; +function Tab.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Tab.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Tab.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Tab.Init();override; @@ -8594,7 +9031,7 @@ function Tab.Copy(_obj: Tab);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.Leader) then @@ -8604,6 +9041,18 @@ begin tslassigning := tslassigning_backup; end; +function Tab.Clone(): Tab;override; +begin + obj := new Tab(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}Leader) then + obj.Leader := {self.}Leader; + if not ifnil({self.}Pos) then + obj.Pos := {self.}Pos; + return obj; +end; + function Tab.ConvertToPoint();override; begin @@ -8654,20 +9103,20 @@ begin {self.}XmlAttrPos.Value := _value; end; -function NumPr.Create();overload; +function NumPr.create();overload; begin - {self.}Create(nil, "w", "numPr"); + {self.}create(nil, "w", "numPr"); end; -function NumPr.Create(_node: XmlNode);overload; +function NumPr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function NumPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function NumPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function NumPr.Init();override; @@ -8687,7 +9136,7 @@ function NumPr.Copy(_obj: NumPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildIlvl) then {self.}Ilvl.Copy(_obj.XmlChildIlvl); if not ifnil(_obj.XmlChildNumId) then @@ -8695,6 +9144,22 @@ begin tslassigning := tslassigning_backup; end; +function NumPr.Clone(): NumPr;override; +begin + obj := new NumPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ilvl": obj.Ilvl := element.Clone(); + pre + "numId": obj.NumId := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function NumPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildIlvl) then @@ -8710,7 +9175,7 @@ begin {self.}XmlChildIlvl := new PureWVal(self, {self.}Prefix, "ilvl"); container_.Set({self.}XmlChildIlvl); end - return {self.}XmlChildIlvl and not {self.}XmlChildIlvl.Removed ? {self.}XmlChildIlvl : fallback_.XmlChildIlvl; + return {self.}XmlChildIlvl and not {self.}XmlChildIlvl.Removed ? {self.}XmlChildIlvl : fallback_.Ilvl; end; function NumPr.WriteXmlChildIlvl(_p1: any; _p2: any); @@ -8723,6 +9188,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildIlvl := v; container_.Set({self.}XmlChildIlvl); end @@ -8738,7 +9204,7 @@ begin {self.}XmlChildNumId := new PureWVal(self, {self.}Prefix, "numId"); container_.Set({self.}XmlChildNumId); end - return {self.}XmlChildNumId and not {self.}XmlChildNumId.Removed ? {self.}XmlChildNumId : fallback_.XmlChildNumId; + return {self.}XmlChildNumId and not {self.}XmlChildNumId.Removed ? {self.}XmlChildNumId : fallback_.NumId; end; function NumPr.WriteXmlChildNumId(_p1: any; _p2: any); @@ -8751,6 +9217,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNumId := v; container_.Set({self.}XmlChildNumId); end @@ -8759,20 +9226,20 @@ begin end end; -function Ind.Create();overload; +function Ind.create();overload; begin - {self.}Create(nil, "w", "ind"); + {self.}create(nil, "w", "ind"); end; -function Ind.Create(_node: XmlNode);overload; +function Ind.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Ind.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Ind.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Ind.Init();override; @@ -8798,7 +9265,7 @@ function Ind.Copy(_obj: Ind);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.FirstLineChars) then {self.}FirstLineChars := _obj.FirstLineChars; if not ifnil(_obj.FirstLine) then @@ -8818,6 +9285,28 @@ begin tslassigning := tslassigning_backup; end; +function Ind.Clone(): Ind;override; +begin + obj := new Ind(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}FirstLineChars) then + obj.FirstLineChars := {self.}FirstLineChars; + if not ifnil({self.}FirstLine) then + obj.FirstLine := {self.}FirstLine; + if not ifnil({self.}RightChars) then + obj.RightChars := {self.}RightChars; + if not ifnil({self.}Right) then + obj.Right := {self.}Right; + if not ifnil({self.}LeftChars) then + obj.LeftChars := {self.}LeftChars; + if not ifnil({self.}Left) then + obj.Left := {self.}Left; + if not ifnil({self.}Hanging) then + obj.Hanging := {self.}Hanging; + if not ifnil({self.}HangingChars) then + obj.HangingChars := {self.}HangingChars; + return obj; +end; + function Ind.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrFirstLineChars) then @@ -8958,20 +9447,20 @@ begin {self.}XmlAttrHangingChars.Value := _value; end; -function Spacing.Create();overload; +function Spacing.create();overload; begin - {self.}Create(nil, "w", "spacing"); + {self.}create(nil, "w", "spacing"); end; -function Spacing.Create(_node: XmlNode);overload; +function Spacing.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Spacing.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Spacing.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Spacing.Init();override; @@ -8997,7 +9486,7 @@ function Spacing.Copy(_obj: Spacing);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Before) then {self.}Before := _obj.Before; if not ifnil(_obj.BeforeLines) then @@ -9017,6 +9506,28 @@ begin tslassigning := tslassigning_backup; end; +function Spacing.Clone(): Spacing;override; +begin + obj := new Spacing(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Before) then + obj.Before := {self.}Before; + if not ifnil({self.}BeforeLines) then + obj.BeforeLines := {self.}BeforeLines; + if not ifnil({self.}BeforeAutospacing) then + obj.BeforeAutospacing := {self.}BeforeAutospacing; + if not ifnil({self.}After) then + obj.After := {self.}After; + if not ifnil({self.}AfterLines) then + obj.AfterLines := {self.}AfterLines; + if not ifnil({self.}AfterAutospacing) then + obj.AfterAutospacing := {self.}AfterAutospacing; + if not ifnil({self.}Line) then + obj.Line := {self.}Line; + if not ifnil({self.}LineRule) then + obj.LineRule := {self.}LineRule; + return obj; +end; + function Spacing.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrBefore) then @@ -9151,20 +9662,20 @@ begin {self.}XmlAttrLineRule.Value := _value; end; -function RPr.Create();overload; +function RPr.create();overload; begin - {self.}Create(nil, "w", "rPr"); + {self.}create(nil, "w", "rPr"); end; -function RPr.Create(_node: XmlNode);overload; +function RPr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function RPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function RPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function RPr.Init();override; @@ -9182,30 +9693,30 @@ begin pre + "ins": array(5, makeweakref(thisFunction(ReadXmlChildIns))), pre + "rFonts": array(6, makeweakref(thisFunction(ReadXmlChildRFonts))), pre + "kern": array(7, makeweakref(thisFunction(ReadXmlChildKern))), - pre + "i": array(8, makeweakref(thisFunction(ReadXmlChildI))), - pre + "iCs": array(9, makeweakref(thisFunction(ReadXmlChildICs))), - pre + "b": array(10, makeweakref(thisFunction(ReadXmlChildB))), - pre + "bCs": array(11, makeweakref(thisFunction(ReadXmlChildBCs))), - pre + "bdr": array(12, makeweakref(thisFunction(ReadXmlChildBdr))), - pre + "caps": array(13, makeweakref(thisFunction(ReadXmlChildCaps))), - pre + "del": array(14, makeweakref(thisFunction(ReadXmlChildDel))), - pre + "strike": array(15, makeweakref(thisFunction(ReadXmlChildStrike))), - pre + "dstrike": array(16, makeweakref(thisFunction(ReadXmlChildDStrike))), - pre + "effect": array(17, makeweakref(thisFunction(ReadXmlChildEffect))), - pre + "em": array(18, makeweakref(thisFunction(ReadXmlChildEm))), - pre + "emboss": array(19, makeweakref(thisFunction(ReadXmlChildEmboss))), - pre + "fitText": array(20, makeweakref(thisFunction(ReadXmlChildFitText))), - pre + "highlight": array(21, makeweakref(thisFunction(ReadXmlChildHighlight))), - pre + "color": array(22, makeweakref(thisFunction(ReadXmlChildColor))), - pre + "eastAsianLayout": array(23, makeweakref(thisFunction(ReadXmlChildEastAsianLayout))), - pre + "cs": array(24, makeweakref(thisFunction(ReadXmlChildCs))), - pre + "sz": array(25, makeweakref(thisFunction(ReadXmlChildSz))), - pre + "szCs": array(26, makeweakref(thisFunction(ReadXmlChildSzCs))), - pre + "u": array(27, makeweakref(thisFunction(ReadXmlChildU))), - pre + "lang": array(28, makeweakref(thisFunction(ReadXmlChildLang))), - pre + "imprint": array(29, makeweakref(thisFunction(ReadXmlChildImprint))), - pre + "vertAlign": array(30, makeweakref(thisFunction(ReadXmlChildVertAlign))), - "w14:ligatures": array(31, makeweakref(thisFunction(ReadXmlChildLigatures))), + pre + "spacing": array(8, makeweakref(thisFunction(ReadXmlChildSpacing))), + pre + "i": array(9, makeweakref(thisFunction(ReadXmlChildI))), + pre + "iCs": array(10, makeweakref(thisFunction(ReadXmlChildICs))), + pre + "b": array(11, makeweakref(thisFunction(ReadXmlChildB))), + pre + "bCs": array(12, makeweakref(thisFunction(ReadXmlChildBCs))), + pre + "bdr": array(13, makeweakref(thisFunction(ReadXmlChildBdr))), + pre + "caps": array(14, makeweakref(thisFunction(ReadXmlChildCaps))), + pre + "del": array(15, makeweakref(thisFunction(ReadXmlChildDel))), + pre + "strike": array(16, makeweakref(thisFunction(ReadXmlChildStrike))), + pre + "dstrike": array(17, makeweakref(thisFunction(ReadXmlChildDStrike))), + pre + "effect": array(18, makeweakref(thisFunction(ReadXmlChildEffect))), + pre + "em": array(19, makeweakref(thisFunction(ReadXmlChildEm))), + pre + "emboss": array(20, makeweakref(thisFunction(ReadXmlChildEmboss))), + pre + "imprint": array(21, makeweakref(thisFunction(ReadXmlChildImprint))), + pre + "fitText": array(22, makeweakref(thisFunction(ReadXmlChildFitText))), + pre + "highlight": array(23, makeweakref(thisFunction(ReadXmlChildHighlight))), + pre + "color": array(24, makeweakref(thisFunction(ReadXmlChildColor))), + pre + "eastAsianLayout": array(25, makeweakref(thisFunction(ReadXmlChildEastAsianLayout))), + pre + "cs": array(26, makeweakref(thisFunction(ReadXmlChildCs))), + pre + "sz": array(27, makeweakref(thisFunction(ReadXmlChildSz))), + pre + "szCs": array(28, makeweakref(thisFunction(ReadXmlChildSzCs))), + pre + "u": array(29, makeweakref(thisFunction(ReadXmlChildU))), + pre + "lang": array(30, makeweakref(thisFunction(ReadXmlChildLang))), + pre + "vertAlign": array(31, makeweakref(thisFunction(ReadXmlChildVertAlign))), pre + "rtl": array(32, makeweakref(thisFunction(ReadXmlChildRtl))), pre + "oMath": array(33, makeweakref(thisFunction(ReadXmlChildOMath))), pre + "shadow": array(34, makeweakref(thisFunction(ReadXmlChildShadow))), @@ -9214,6 +9725,11 @@ begin pre + "shd": array(37, makeweakref(thisFunction(ReadXmlChildShd))), pre + "smallCaps": array(38, makeweakref(thisFunction(ReadXmlChildSmallCaps))), pre + "w": array(39, makeweakref(thisFunction(ReadXmlChildW))), + pre + "snapToGrid": array(40, makeweakref(thisFunction(ReadXmlChildSnapToGrid))), + "w14:ligatures": array(41, makeweakref(thisFunction(ReadXmlChildLigatures))), + "w14:cntxtAlts": array(42, makeweakref(thisFunction(ReadXmlChildCntxtAlts))), + "w14:numForm": array(43, makeweakref(thisFunction(ReadXmlChildNumForm))), + "w14:numSpacing": array(44, makeweakref(thisFunction(ReadXmlChildNumSpacing))), ); container_ := new TSOfficeContainer(sorted_child_); end; @@ -9222,11 +9738,11 @@ function RPr.Copy(_obj: RPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildNoProof) then - {self.}NoProof.Copy(_obj.XmlChildNoProof); + ifnil({self.}XmlChildNoProof) ? {self.}NoProof.Copy(_obj.XmlChildNoProof) : {self.}XmlChildNoProof.Copy(_obj.XmlChildNoProof); if not ifnil(_obj.XmlChildOutline) then - {self.}Outline.Copy(_obj.XmlChildOutline); + ifnil({self.}XmlChildOutline) ? {self.}Outline.Copy(_obj.XmlChildOutline) : {self.}XmlChildOutline.Copy(_obj.XmlChildOutline); if not ifnil(_obj.XmlChildPosition) then {self.}Position.Copy(_obj.XmlChildPosition); if not ifnil(_obj.XmlChildWebHidden) then @@ -9239,6 +9755,8 @@ begin {self.}RFonts.Copy(_obj.XmlChildRFonts); if not ifnil(_obj.XmlChildKern) then {self.}Kern.Copy(_obj.XmlChildKern); + if not ifnil(_obj.XmlChildSpacing) then + {self.}Spacing.Copy(_obj.XmlChildSpacing); if not ifnil(_obj.XmlChildI) then ifnil({self.}XmlChildI) ? {self.}I.Copy(_obj.XmlChildI) : {self.}XmlChildI.Copy(_obj.XmlChildI); if not ifnil(_obj.XmlChildICs) then @@ -9250,19 +9768,21 @@ begin if not ifnil(_obj.XmlChildBdr) then {self.}Bdr.Copy(_obj.XmlChildBdr); if not ifnil(_obj.XmlChildCaps) then - {self.}Caps.Copy(_obj.XmlChildCaps); + ifnil({self.}XmlChildCaps) ? {self.}Caps.Copy(_obj.XmlChildCaps) : {self.}XmlChildCaps.Copy(_obj.XmlChildCaps); if not ifnil(_obj.XmlChildDel) then {self.}Del.Copy(_obj.XmlChildDel); if not ifnil(_obj.XmlChildStrike) then ifnil({self.}XmlChildStrike) ? {self.}Strike.Copy(_obj.XmlChildStrike) : {self.}XmlChildStrike.Copy(_obj.XmlChildStrike); if not ifnil(_obj.XmlChildDStrike) then - {self.}DStrike.Copy(_obj.XmlChildDStrike); + ifnil({self.}XmlChildDStrike) ? {self.}DStrike.Copy(_obj.XmlChildDStrike) : {self.}XmlChildDStrike.Copy(_obj.XmlChildDStrike); if not ifnil(_obj.XmlChildEffect) then {self.}Effect.Copy(_obj.XmlChildEffect); if not ifnil(_obj.XmlChildEm) then {self.}Em.Copy(_obj.XmlChildEm); if not ifnil(_obj.XmlChildEmboss) then - {self.}Emboss.Copy(_obj.XmlChildEmboss); + ifnil({self.}XmlChildEmboss) ? {self.}Emboss.Copy(_obj.XmlChildEmboss) : {self.}XmlChildEmboss.Copy(_obj.XmlChildEmboss); + if not ifnil(_obj.XmlChildImprint) then + ifnil({self.}XmlChildImprint) ? {self.}Imprint.Copy(_obj.XmlChildImprint) : {self.}XmlChildImprint.Copy(_obj.XmlChildImprint); if not ifnil(_obj.XmlChildFitText) then {self.}FitText.Copy(_obj.XmlChildFitText); if not ifnil(_obj.XmlChildHighlight) then @@ -9278,15 +9798,11 @@ begin if not ifnil(_obj.XmlChildSzCs) then {self.}SzCs.Copy(_obj.XmlChildSzCs); if not ifnil(_obj.XmlChildU) then - ifnil({self.}XmlChildU) ? {self.}U.Copy(_obj.XmlChildU) : {self.}XmlChildU.Copy(_obj.XmlChildU); + {self.}U.Copy(_obj.XmlChildU); if not ifnil(_obj.XmlChildLang) then {self.}Lang.Copy(_obj.XmlChildLang); - if not ifnil(_obj.XmlChildImprint) then - {self.}Imprint.Copy(_obj.XmlChildImprint); if not ifnil(_obj.XmlChildVertAlign) then {self.}VertAlign.Copy(_obj.XmlChildVertAlign); - if not ifnil(_obj.XmlChildLigatures) then - {self.}Ligatures.Copy(_obj.XmlChildLigatures); if not ifnil(_obj.XmlChildRtl) then {self.}Rtl.Copy(_obj.XmlChildRtl); if not ifnil(_obj.XmlChildOMath) then @@ -9300,18 +9816,83 @@ begin if not ifnil(_obj.XmlChildShd) then {self.}Shd.Copy(_obj.XmlChildShd); if not ifnil(_obj.XmlChildSmallCaps) then - {self.}SmallCaps.Copy(_obj.XmlChildSmallCaps); + ifnil({self.}XmlChildSmallCaps) ? {self.}SmallCaps.Copy(_obj.XmlChildSmallCaps) : {self.}XmlChildSmallCaps.Copy(_obj.XmlChildSmallCaps); if not ifnil(_obj.XmlChildW) then {self.}W.Copy(_obj.XmlChildW); + if not ifnil(_obj.XmlChildSnapToGrid) then + ifnil({self.}XmlChildSnapToGrid) ? {self.}SnapToGrid.Copy(_obj.XmlChildSnapToGrid) : {self.}XmlChildSnapToGrid.Copy(_obj.XmlChildSnapToGrid); + if not ifnil(_obj.XmlChildLigatures) then + {self.}Ligatures.Copy(_obj.XmlChildLigatures); + if not ifnil(_obj.XmlChildCntxtAlts) then + ifnil({self.}XmlChildCntxtAlts) ? {self.}CntxtAlts.Copy(_obj.XmlChildCntxtAlts) : {self.}XmlChildCntxtAlts.Copy(_obj.XmlChildCntxtAlts); + if not ifnil(_obj.XmlChildNumForm) then + {self.}NumForm.Copy(_obj.XmlChildNumForm); + if not ifnil(_obj.XmlChildNumSpacing) then + {self.}NumSpacing.Copy(_obj.XmlChildNumSpacing); tslassigning := tslassigning_backup; end; +function RPr.Clone(): RPr;override; +begin + obj := new RPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "noProof": obj.NoProof := element.Clone(); + pre + "outline": obj.Outline := element.Clone(); + pre + "position": obj.Position := element.Clone(); + pre + "wedHidden": obj.WebHidden := element.Clone(); + pre + "rStyle": obj.RStyle := element.Clone(); + pre + "ins": obj.Ins := element.Clone(); + pre + "rFonts": obj.RFonts := element.Clone(); + pre + "kern": obj.Kern := element.Clone(); + pre + "spacing": obj.Spacing := element.Clone(); + pre + "i": obj.I := element.Clone(); + pre + "iCs": obj.ICs := element.Clone(); + pre + "b": obj.B := element.Clone(); + pre + "bCs": obj.BCs := element.Clone(); + pre + "bdr": obj.Bdr := element.Clone(); + pre + "caps": obj.Caps := element.Clone(); + pre + "del": obj.Del := element.Clone(); + pre + "strike": obj.Strike := element.Clone(); + pre + "dstrike": obj.DStrike := element.Clone(); + pre + "effect": obj.Effect := element.Clone(); + pre + "em": obj.Em := element.Clone(); + pre + "emboss": obj.Emboss := element.Clone(); + pre + "imprint": obj.Imprint := element.Clone(); + pre + "fitText": obj.FitText := element.Clone(); + pre + "highlight": obj.Highlight := element.Clone(); + pre + "color": obj.Color := element.Clone(); + pre + "eastAsianLayout": obj.EastAsianLayout := element.Clone(); + pre + "cs": obj.Cs := element.Clone(); + pre + "sz": obj.Sz := element.Clone(); + pre + "szCs": obj.SzCs := element.Clone(); + pre + "u": obj.U := element.Clone(); + pre + "lang": obj.Lang := element.Clone(); + pre + "vertAlign": obj.VertAlign := element.Clone(); + pre + "rtl": obj.Rtl := element.Clone(); + pre + "oMath": obj.OMath := element.Clone(); + pre + "shadow": obj.Shadow := element.Clone(); + pre + "specVanish": obj.SpecVanish := element.Clone(); + pre + "vanish": obj.Vanish := element.Clone(); + pre + "shd": obj.Shd := element.Clone(); + pre + "smallCaps": obj.SmallCaps := element.Clone(); + pre + "w": obj.W := element.Clone(); + pre + "snapToGrid": obj.SnapToGrid := element.Clone(); + "w14:ligatures": obj.Ligatures := element.Clone(); + "w14:cntxtAlts": obj.CntxtAlts := element.Clone(); + "w14:numForm": obj.NumForm := element.Clone(); + "w14:numSpacing": obj.NumSpacing := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function RPr.ConvertToPoint();override; begin - if not ifnil({self.}XmlChildNoProof) then - {self.}XmlChildNoProof.ConvertToPoint(); - if not ifnil({self.}XmlChildOutline) then - {self.}XmlChildOutline.ConvertToPoint(); if not ifnil({self.}XmlChildPosition) then {self.}XmlChildPosition.ConvertToPoint(); if not ifnil({self.}XmlChildWebHidden) then @@ -9324,20 +9905,16 @@ begin {self.}XmlChildRFonts.ConvertToPoint(); if not ifnil({self.}XmlChildKern) then {self.}XmlChildKern.ConvertToPoint(); + if not ifnil({self.}XmlChildSpacing) then + {self.}XmlChildSpacing.ConvertToPoint(); if not ifnil({self.}XmlChildBdr) then {self.}XmlChildBdr.ConvertToPoint(); - if not ifnil({self.}XmlChildCaps) then - {self.}XmlChildCaps.ConvertToPoint(); if not ifnil({self.}XmlChildDel) then {self.}XmlChildDel.ConvertToPoint(); - if not ifnil({self.}XmlChildDStrike) then - {self.}XmlChildDStrike.ConvertToPoint(); if not ifnil({self.}XmlChildEffect) then {self.}XmlChildEffect.ConvertToPoint(); if not ifnil({self.}XmlChildEm) then {self.}XmlChildEm.ConvertToPoint(); - if not ifnil({self.}XmlChildEmboss) then - {self.}XmlChildEmboss.ConvertToPoint(); if not ifnil({self.}XmlChildFitText) then {self.}XmlChildFitText.ConvertToPoint(); if not ifnil({self.}XmlChildHighlight) then @@ -9350,22 +9927,80 @@ begin {self.}XmlChildSz.ConvertToPoint(); if not ifnil({self.}XmlChildSzCs) then {self.}XmlChildSzCs.ConvertToPoint(); + if not ifnil({self.}XmlChildU) then + {self.}XmlChildU.ConvertToPoint(); if not ifnil({self.}XmlChildLang) then {self.}XmlChildLang.ConvertToPoint(); - if not ifnil({self.}XmlChildImprint) then - {self.}XmlChildImprint.ConvertToPoint(); if not ifnil({self.}XmlChildVertAlign) then {self.}XmlChildVertAlign.ConvertToPoint(); - if not ifnil({self.}XmlChildLigatures) then - {self.}XmlChildLigatures.ConvertToPoint(); if not ifnil({self.}XmlChildRtl) then {self.}XmlChildRtl.ConvertToPoint(); if not ifnil({self.}XmlChildShd) then {self.}XmlChildShd.ConvertToPoint(); - if not ifnil({self.}XmlChildSmallCaps) then - {self.}XmlChildSmallCaps.ConvertToPoint(); if not ifnil({self.}XmlChildW) then {self.}XmlChildW.ConvertToPoint(); + if not ifnil({self.}XmlChildLigatures) then + {self.}XmlChildLigatures.ConvertToPoint(); + if not ifnil({self.}XmlChildNumForm) then + {self.}XmlChildNumForm.ConvertToPoint(); + if not ifnil({self.}XmlChildNumSpacing) then + {self.}XmlChildNumSpacing.ConvertToPoint(); +end; + +function RPr.ReadXmlChildNoProof(); +begin + if tslassigning and (ifnil({self.}XmlChildNoProof) or {self.}XmlChildNoProof.Removed) then + begin + {self.}XmlChildNoProof := new OpenXmlSimpleType(self, {self.}Prefix, "noProof"); + container_.Set({self.}XmlChildNoProof); + end + return {self.}XmlChildNoProof and not {self.}XmlChildNoProof.Removed ? {self.}XmlChildNoProof : fallback_.NoProof; +end; + +function RPr.WriteXmlChildNoProof(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildNoProof) then + {self.}RemoveChild({self.}XmlChildNoProof); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildNoProof := _value; + container_.Set({self.}XmlChildNoProof); + end + else begin + raise "Invalid assignment: NoProof expects nil or OpenXmlSimpleType"; + end +end; + +function RPr.ReadXmlChildOutline(); +begin + if tslassigning and (ifnil({self.}XmlChildOutline) or {self.}XmlChildOutline.Removed) then + begin + {self.}XmlChildOutline := new OpenXmlSimpleType(self, {self.}Prefix, "outline"); + container_.Set({self.}XmlChildOutline); + end + return {self.}XmlChildOutline and not {self.}XmlChildOutline.Removed ? {self.}XmlChildOutline : fallback_.Outline; +end; + +function RPr.WriteXmlChildOutline(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildOutline) then + {self.}RemoveChild({self.}XmlChildOutline); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildOutline := _value; + container_.Set({self.}XmlChildOutline); + end + else begin + raise "Invalid assignment: Outline expects nil or OpenXmlSimpleType"; + end end; function RPr.ReadXmlChildI(); @@ -9375,7 +10010,7 @@ begin {self.}XmlChildI := new OpenXmlSimpleType(self, {self.}Prefix, "i"); container_.Set({self.}XmlChildI); end - return {self.}XmlChildI and not {self.}XmlChildI.Removed ? {self.}XmlChildI : fallback_.XmlChildI; + return {self.}XmlChildI and not {self.}XmlChildI.Removed ? {self.}XmlChildI : fallback_.I; end; function RPr.WriteXmlChildI(_value: nil_or_OpenXmlSimpleType); @@ -9387,6 +10022,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildI := _value; container_.Set({self.}XmlChildI); end @@ -9402,7 +10038,7 @@ begin {self.}XmlChildICs := new OpenXmlSimpleType(self, {self.}Prefix, "iCs"); container_.Set({self.}XmlChildICs); end - return {self.}XmlChildICs and not {self.}XmlChildICs.Removed ? {self.}XmlChildICs : fallback_.XmlChildICs; + return {self.}XmlChildICs and not {self.}XmlChildICs.Removed ? {self.}XmlChildICs : fallback_.ICs; end; function RPr.WriteXmlChildICs(_value: nil_or_OpenXmlSimpleType); @@ -9414,6 +10050,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildICs := _value; container_.Set({self.}XmlChildICs); end @@ -9429,7 +10066,7 @@ begin {self.}XmlChildB := new OpenXmlSimpleType(self, {self.}Prefix, "b"); container_.Set({self.}XmlChildB); end - return {self.}XmlChildB and not {self.}XmlChildB.Removed ? {self.}XmlChildB : fallback_.XmlChildB; + return {self.}XmlChildB and not {self.}XmlChildB.Removed ? {self.}XmlChildB : fallback_.B; end; function RPr.WriteXmlChildB(_value: nil_or_OpenXmlSimpleType); @@ -9441,6 +10078,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildB := _value; container_.Set({self.}XmlChildB); end @@ -9456,7 +10094,7 @@ begin {self.}XmlChildBCs := new OpenXmlSimpleType(self, {self.}Prefix, "bCs"); container_.Set({self.}XmlChildBCs); end - return {self.}XmlChildBCs and not {self.}XmlChildBCs.Removed ? {self.}XmlChildBCs : fallback_.XmlChildBCs; + return {self.}XmlChildBCs and not {self.}XmlChildBCs.Removed ? {self.}XmlChildBCs : fallback_.BCs; end; function RPr.WriteXmlChildBCs(_value: nil_or_OpenXmlSimpleType); @@ -9468,6 +10106,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildBCs := _value; container_.Set({self.}XmlChildBCs); end @@ -9476,6 +10115,34 @@ begin end end; +function RPr.ReadXmlChildCaps(); +begin + if tslassigning and (ifnil({self.}XmlChildCaps) or {self.}XmlChildCaps.Removed) then + begin + {self.}XmlChildCaps := new OpenXmlSimpleType(self, {self.}Prefix, "caps"); + container_.Set({self.}XmlChildCaps); + end + return {self.}XmlChildCaps and not {self.}XmlChildCaps.Removed ? {self.}XmlChildCaps : fallback_.Caps; +end; + +function RPr.WriteXmlChildCaps(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildCaps) then + {self.}RemoveChild({self.}XmlChildCaps); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildCaps := _value; + container_.Set({self.}XmlChildCaps); + end + else begin + raise "Invalid assignment: Caps expects nil or OpenXmlSimpleType"; + end +end; + function RPr.ReadXmlChildStrike(); begin if tslassigning and (ifnil({self.}XmlChildStrike) or {self.}XmlChildStrike.Removed) then @@ -9483,7 +10150,7 @@ begin {self.}XmlChildStrike := new OpenXmlSimpleType(self, {self.}Prefix, "strike"); container_.Set({self.}XmlChildStrike); end - return {self.}XmlChildStrike and not {self.}XmlChildStrike.Removed ? {self.}XmlChildStrike : fallback_.XmlChildStrike; + return {self.}XmlChildStrike and not {self.}XmlChildStrike.Removed ? {self.}XmlChildStrike : fallback_.Strike; end; function RPr.WriteXmlChildStrike(_value: nil_or_OpenXmlSimpleType); @@ -9495,6 +10162,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildStrike := _value; container_.Set({self.}XmlChildStrike); end @@ -9503,6 +10171,90 @@ begin end end; +function RPr.ReadXmlChildDStrike(); +begin + if tslassigning and (ifnil({self.}XmlChildDStrike) or {self.}XmlChildDStrike.Removed) then + begin + {self.}XmlChildDStrike := new OpenXmlSimpleType(self, {self.}Prefix, "dstrike"); + container_.Set({self.}XmlChildDStrike); + end + return {self.}XmlChildDStrike and not {self.}XmlChildDStrike.Removed ? {self.}XmlChildDStrike : fallback_.DStrike; +end; + +function RPr.WriteXmlChildDStrike(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildDStrike) then + {self.}RemoveChild({self.}XmlChildDStrike); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildDStrike := _value; + container_.Set({self.}XmlChildDStrike); + end + else begin + raise "Invalid assignment: DStrike expects nil or OpenXmlSimpleType"; + end +end; + +function RPr.ReadXmlChildEmboss(); +begin + if tslassigning and (ifnil({self.}XmlChildEmboss) or {self.}XmlChildEmboss.Removed) then + begin + {self.}XmlChildEmboss := new OpenXmlSimpleType(self, {self.}Prefix, "emboss"); + container_.Set({self.}XmlChildEmboss); + end + return {self.}XmlChildEmboss and not {self.}XmlChildEmboss.Removed ? {self.}XmlChildEmboss : fallback_.Emboss; +end; + +function RPr.WriteXmlChildEmboss(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildEmboss) then + {self.}RemoveChild({self.}XmlChildEmboss); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildEmboss := _value; + container_.Set({self.}XmlChildEmboss); + end + else begin + raise "Invalid assignment: Emboss expects nil or OpenXmlSimpleType"; + end +end; + +function RPr.ReadXmlChildImprint(); +begin + if tslassigning and (ifnil({self.}XmlChildImprint) or {self.}XmlChildImprint.Removed) then + begin + {self.}XmlChildImprint := new OpenXmlSimpleType(self, {self.}Prefix, "imprint"); + container_.Set({self.}XmlChildImprint); + end + return {self.}XmlChildImprint and not {self.}XmlChildImprint.Removed ? {self.}XmlChildImprint : fallback_.Imprint; +end; + +function RPr.WriteXmlChildImprint(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildImprint) then + {self.}RemoveChild({self.}XmlChildImprint); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildImprint := _value; + container_.Set({self.}XmlChildImprint); + end + else begin + raise "Invalid assignment: Imprint expects nil or OpenXmlSimpleType"; + end +end; + function RPr.ReadXmlChildCs(); begin if tslassigning and (ifnil({self.}XmlChildCs) or {self.}XmlChildCs.Removed) then @@ -9510,7 +10262,7 @@ begin {self.}XmlChildCs := new OpenXmlSimpleType(self, {self.}Prefix, "cs"); container_.Set({self.}XmlChildCs); end - return {self.}XmlChildCs and not {self.}XmlChildCs.Removed ? {self.}XmlChildCs : fallback_.XmlChildCs; + return {self.}XmlChildCs and not {self.}XmlChildCs.Removed ? {self.}XmlChildCs : fallback_.Cs; end; function RPr.WriteXmlChildCs(_value: nil_or_OpenXmlSimpleType); @@ -9522,6 +10274,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildCs := _value; container_.Set({self.}XmlChildCs); end @@ -9530,33 +10283,6 @@ begin end end; -function RPr.ReadXmlChildU(); -begin - if tslassigning and (ifnil({self.}XmlChildU) or {self.}XmlChildU.Removed) then - begin - {self.}XmlChildU := new OpenXmlSimpleType(self, {self.}Prefix, "u"); - container_.Set({self.}XmlChildU); - end - return {self.}XmlChildU and not {self.}XmlChildU.Removed ? {self.}XmlChildU : fallback_.XmlChildU; -end; - -function RPr.WriteXmlChildU(_value: nil_or_OpenXmlSimpleType); -begin - if ifnil(_value) then - begin - if ifObj({self.}XmlChildU) then - {self.}RemoveChild({self.}XmlChildU); - end - else if _value is class(OpenXmlSimpleType) then - begin - {self.}XmlChildU := _value; - container_.Set({self.}XmlChildU); - end - else begin - raise "Invalid assignment: U expects nil or OpenXmlSimpleType"; - end -end; - function RPr.ReadXmlChildOMath(); begin if tslassigning and (ifnil({self.}XmlChildOMath) or {self.}XmlChildOMath.Removed) then @@ -9564,7 +10290,7 @@ begin {self.}XmlChildOMath := new OpenXmlSimpleType(self, {self.}Prefix, "oMath"); container_.Set({self.}XmlChildOMath); end - return {self.}XmlChildOMath and not {self.}XmlChildOMath.Removed ? {self.}XmlChildOMath : fallback_.XmlChildOMath; + return {self.}XmlChildOMath and not {self.}XmlChildOMath.Removed ? {self.}XmlChildOMath : fallback_.OMath; end; function RPr.WriteXmlChildOMath(_value: nil_or_OpenXmlSimpleType); @@ -9576,6 +10302,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildOMath := _value; container_.Set({self.}XmlChildOMath); end @@ -9591,7 +10318,7 @@ begin {self.}XmlChildShadow := new OpenXmlSimpleType(self, {self.}Prefix, "shadow"); container_.Set({self.}XmlChildShadow); end - return {self.}XmlChildShadow and not {self.}XmlChildShadow.Removed ? {self.}XmlChildShadow : fallback_.XmlChildShadow; + return {self.}XmlChildShadow and not {self.}XmlChildShadow.Removed ? {self.}XmlChildShadow : fallback_.Shadow; end; function RPr.WriteXmlChildShadow(_value: nil_or_OpenXmlSimpleType); @@ -9603,6 +10330,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildShadow := _value; container_.Set({self.}XmlChildShadow); end @@ -9618,7 +10346,7 @@ begin {self.}XmlChildSpecVanish := new OpenXmlSimpleType(self, {self.}Prefix, "specVanish"); container_.Set({self.}XmlChildSpecVanish); end - return {self.}XmlChildSpecVanish and not {self.}XmlChildSpecVanish.Removed ? {self.}XmlChildSpecVanish : fallback_.XmlChildSpecVanish; + return {self.}XmlChildSpecVanish and not {self.}XmlChildSpecVanish.Removed ? {self.}XmlChildSpecVanish : fallback_.SpecVanish; end; function RPr.WriteXmlChildSpecVanish(_value: nil_or_OpenXmlSimpleType); @@ -9630,6 +10358,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildSpecVanish := _value; container_.Set({self.}XmlChildSpecVanish); end @@ -9645,7 +10374,7 @@ begin {self.}XmlChildVanish := new OpenXmlSimpleType(self, {self.}Prefix, "vanish"); container_.Set({self.}XmlChildVanish); end - return {self.}XmlChildVanish and not {self.}XmlChildVanish.Removed ? {self.}XmlChildVanish : fallback_.XmlChildVanish; + return {self.}XmlChildVanish and not {self.}XmlChildVanish.Removed ? {self.}XmlChildVanish : fallback_.Vanish; end; function RPr.WriteXmlChildVanish(_value: nil_or_OpenXmlSimpleType); @@ -9657,6 +10386,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildVanish := _value; container_.Set({self.}XmlChildVanish); end @@ -9665,70 +10395,98 @@ begin end end; -function RPr.ReadXmlChildNoProof(): PureVal; +function RPr.ReadXmlChildSmallCaps(); begin - if tslassigning and (ifnil({self.}XmlChildNoProof) or {self.}XmlChildNoProof.Removed) then + if tslassigning and (ifnil({self.}XmlChildSmallCaps) or {self.}XmlChildSmallCaps.Removed) then begin - {self.}XmlChildNoProof := new PureVal(self, {self.}Prefix, "noProof"); - container_.Set({self.}XmlChildNoProof); + {self.}XmlChildSmallCaps := new OpenXmlSimpleType(self, {self.}Prefix, "smallCaps"); + container_.Set({self.}XmlChildSmallCaps); end - return {self.}XmlChildNoProof and not {self.}XmlChildNoProof.Removed ? {self.}XmlChildNoProof : fallback_.XmlChildNoProof; + return {self.}XmlChildSmallCaps and not {self.}XmlChildSmallCaps.Removed ? {self.}XmlChildSmallCaps : fallback_.SmallCaps; end; -function RPr.WriteXmlChildNoProof(_p1: any; _p2: any); +function RPr.WriteXmlChildSmallCaps(_value: nil_or_OpenXmlSimpleType); begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then + if ifnil(_value) then begin - if ifObj({self.}XmlChildNoProof) then - {self.}RemoveChild({self.}XmlChildNoProof); + if ifObj({self.}XmlChildSmallCaps) then + {self.}RemoveChild({self.}XmlChildSmallCaps); end - else if v is class(PureVal) then + else if _value is class(OpenXmlSimpleType) then begin - {self.}XmlChildNoProof := v; - container_.Set({self.}XmlChildNoProof); + _value.Parent := self; + {self.}XmlChildSmallCaps := _value; + container_.Set({self.}XmlChildSmallCaps); end else begin - raise "Invalid assignment: NoProof expects PureVal or nil"; + raise "Invalid assignment: SmallCaps expects nil or OpenXmlSimpleType"; end end; -function RPr.ReadXmlChildOutline(): PureVal; +function RPr.ReadXmlChildSnapToGrid(); begin - if tslassigning and (ifnil({self.}XmlChildOutline) or {self.}XmlChildOutline.Removed) then + if tslassigning and (ifnil({self.}XmlChildSnapToGrid) or {self.}XmlChildSnapToGrid.Removed) then begin - {self.}XmlChildOutline := new PureVal(self, {self.}Prefix, "outline"); - container_.Set({self.}XmlChildOutline); + {self.}XmlChildSnapToGrid := new OpenXmlSimpleType(self, {self.}Prefix, "snapToGrid"); + container_.Set({self.}XmlChildSnapToGrid); end - return {self.}XmlChildOutline and not {self.}XmlChildOutline.Removed ? {self.}XmlChildOutline : fallback_.XmlChildOutline; + return {self.}XmlChildSnapToGrid and not {self.}XmlChildSnapToGrid.Removed ? {self.}XmlChildSnapToGrid : fallback_.SnapToGrid; end; -function RPr.WriteXmlChildOutline(_p1: any; _p2: any); +function RPr.WriteXmlChildSnapToGrid(_value: nil_or_OpenXmlSimpleType); begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then + if ifnil(_value) then begin - if ifObj({self.}XmlChildOutline) then - {self.}RemoveChild({self.}XmlChildOutline); + if ifObj({self.}XmlChildSnapToGrid) then + {self.}RemoveChild({self.}XmlChildSnapToGrid); end - else if v is class(PureVal) then + else if _value is class(OpenXmlSimpleType) then begin - {self.}XmlChildOutline := v; - container_.Set({self.}XmlChildOutline); + _value.Parent := self; + {self.}XmlChildSnapToGrid := _value; + container_.Set({self.}XmlChildSnapToGrid); end else begin - raise "Invalid assignment: Outline expects PureVal or nil"; + raise "Invalid assignment: SnapToGrid expects nil or OpenXmlSimpleType"; end end; -function RPr.ReadXmlChildPosition(): PureVal; +function RPr.ReadXmlChildCntxtAlts(); +begin + if tslassigning and (ifnil({self.}XmlChildCntxtAlts) or {self.}XmlChildCntxtAlts.Removed) then + begin + {self.}XmlChildCntxtAlts := new OpenXmlSimpleType(self, "w14", "cntxtAlts"); + container_.Set({self.}XmlChildCntxtAlts); + end + return {self.}XmlChildCntxtAlts and not {self.}XmlChildCntxtAlts.Removed ? {self.}XmlChildCntxtAlts : fallback_.CntxtAlts; +end; + +function RPr.WriteXmlChildCntxtAlts(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildCntxtAlts) then + {self.}RemoveChild({self.}XmlChildCntxtAlts); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildCntxtAlts := _value; + container_.Set({self.}XmlChildCntxtAlts); + end + else begin + raise "Invalid assignment: CntxtAlts expects nil or OpenXmlSimpleType"; + end +end; + +function RPr.ReadXmlChildPosition(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildPosition) or {self.}XmlChildPosition.Removed) then begin - {self.}XmlChildPosition := new PureVal(self, {self.}Prefix, "position"); + {self.}XmlChildPosition := new PureWVal(self, {self.}Prefix, "position"); container_.Set({self.}XmlChildPosition); end - return {self.}XmlChildPosition and not {self.}XmlChildPosition.Removed ? {self.}XmlChildPosition : fallback_.XmlChildPosition; + return {self.}XmlChildPosition and not {self.}XmlChildPosition.Removed ? {self.}XmlChildPosition : fallback_.Position; end; function RPr.WriteXmlChildPosition(_p1: any; _p2: any); @@ -9739,13 +10497,14 @@ begin if ifObj({self.}XmlChildPosition) then {self.}RemoveChild({self.}XmlChildPosition); end - else if v is class(PureVal) then + else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildPosition := v; container_.Set({self.}XmlChildPosition); end else begin - raise "Invalid assignment: Position expects PureVal or nil"; + raise "Invalid assignment: Position expects PureWVal or nil"; end end; @@ -9756,7 +10515,7 @@ begin {self.}XmlChildWebHidden := new PureWVal(self, {self.}Prefix, "wedHidden"); container_.Set({self.}XmlChildWebHidden); end - return {self.}XmlChildWebHidden and not {self.}XmlChildWebHidden.Removed ? {self.}XmlChildWebHidden : fallback_.XmlChildWebHidden; + return {self.}XmlChildWebHidden and not {self.}XmlChildWebHidden.Removed ? {self.}XmlChildWebHidden : fallback_.WebHidden; end; function RPr.WriteXmlChildWebHidden(_p1: any; _p2: any); @@ -9769,6 +10528,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildWebHidden := v; container_.Set({self.}XmlChildWebHidden); end @@ -9784,7 +10544,7 @@ begin {self.}XmlChildRStyle := new PureWVal(self, {self.}Prefix, "rStyle"); container_.Set({self.}XmlChildRStyle); end - return {self.}XmlChildRStyle and not {self.}XmlChildRStyle.Removed ? {self.}XmlChildRStyle : fallback_.XmlChildRStyle; + return {self.}XmlChildRStyle and not {self.}XmlChildRStyle.Removed ? {self.}XmlChildRStyle : fallback_.RStyle; end; function RPr.WriteXmlChildRStyle(_p1: any; _p2: any); @@ -9797,6 +10557,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildRStyle := v; container_.Set({self.}XmlChildRStyle); end @@ -9812,7 +10573,7 @@ begin {self.}XmlChildIns := new Ins(self, {self.}Prefix, "ins"); container_.Set({self.}XmlChildIns); end - return {self.}XmlChildIns and not {self.}XmlChildIns.Removed ? {self.}XmlChildIns : fallback_.XmlChildIns; + return {self.}XmlChildIns and not {self.}XmlChildIns.Removed ? {self.}XmlChildIns : fallback_.Ins; end; function RPr.WriteXmlChildIns(_p1: any; _p2: any); @@ -9825,6 +10586,7 @@ begin end else if v is class(Ins) then begin + v.Parent := self; {self.}XmlChildIns := v; container_.Set({self.}XmlChildIns); end @@ -9840,7 +10602,7 @@ begin {self.}XmlChildRFonts := new RFonts(self, {self.}Prefix, "rFonts"); container_.Set({self.}XmlChildRFonts); end - return {self.}XmlChildRFonts and not {self.}XmlChildRFonts.Removed ? {self.}XmlChildRFonts : fallback_.XmlChildRFonts; + return {self.}XmlChildRFonts and not {self.}XmlChildRFonts.Removed ? {self.}XmlChildRFonts : fallback_.RFonts; end; function RPr.WriteXmlChildRFonts(_p1: any; _p2: any); @@ -9853,6 +10615,7 @@ begin end else if v is class(RFonts) then begin + v.Parent := self; {self.}XmlChildRFonts := v; container_.Set({self.}XmlChildRFonts); end @@ -9868,7 +10631,7 @@ begin {self.}XmlChildKern := new PureWVal(self, {self.}Prefix, "kern"); container_.Set({self.}XmlChildKern); end - return {self.}XmlChildKern and not {self.}XmlChildKern.Removed ? {self.}XmlChildKern : fallback_.XmlChildKern; + return {self.}XmlChildKern and not {self.}XmlChildKern.Removed ? {self.}XmlChildKern : fallback_.Kern; end; function RPr.WriteXmlChildKern(_p1: any; _p2: any); @@ -9881,6 +10644,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildKern := v; container_.Set({self.}XmlChildKern); end @@ -9889,6 +10653,35 @@ begin end end; +function RPr.ReadXmlChildSpacing(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildSpacing) or {self.}XmlChildSpacing.Removed) then + begin + {self.}XmlChildSpacing := new PureWVal(self, {self.}Prefix, "spacing"); + container_.Set({self.}XmlChildSpacing); + end + return {self.}XmlChildSpacing and not {self.}XmlChildSpacing.Removed ? {self.}XmlChildSpacing : fallback_.Spacing; +end; + +function RPr.WriteXmlChildSpacing(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSpacing) then + {self.}RemoveChild({self.}XmlChildSpacing); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildSpacing := v; + container_.Set({self.}XmlChildSpacing); + end + else begin + raise "Invalid assignment: Spacing expects PureWVal or nil"; + end +end; + function RPr.ReadXmlChildBdr(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildBdr) or {self.}XmlChildBdr.Removed) then @@ -9896,7 +10689,7 @@ begin {self.}XmlChildBdr := new Bdr(self, {self.}Prefix, "bdr"); container_.Set({self.}XmlChildBdr); end - return {self.}XmlChildBdr and not {self.}XmlChildBdr.Removed ? {self.}XmlChildBdr : fallback_.XmlChildBdr; + return {self.}XmlChildBdr and not {self.}XmlChildBdr.Removed ? {self.}XmlChildBdr : fallback_.Bdr; end; function RPr.WriteXmlChildBdr(_p1: any; _p2: any); @@ -9909,6 +10702,7 @@ begin end else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildBdr := v; container_.Set({self.}XmlChildBdr); end @@ -9917,34 +10711,6 @@ begin end end; -function RPr.ReadXmlChildCaps(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildCaps) or {self.}XmlChildCaps.Removed) then - begin - {self.}XmlChildCaps := new PureWVal(self, {self.}Prefix, "caps"); - container_.Set({self.}XmlChildCaps); - end - return {self.}XmlChildCaps and not {self.}XmlChildCaps.Removed ? {self.}XmlChildCaps : fallback_.XmlChildCaps; -end; - -function RPr.WriteXmlChildCaps(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildCaps) then - {self.}RemoveChild({self.}XmlChildCaps); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildCaps := v; - container_.Set({self.}XmlChildCaps); - end - else begin - raise "Invalid assignment: Caps expects PureWVal or nil"; - end -end; - function RPr.ReadXmlChildDel(): Del; begin if tslassigning and (ifnil({self.}XmlChildDel) or {self.}XmlChildDel.Removed) then @@ -9952,7 +10718,7 @@ begin {self.}XmlChildDel := new Del(self, {self.}Prefix, "del"); container_.Set({self.}XmlChildDel); end - return {self.}XmlChildDel and not {self.}XmlChildDel.Removed ? {self.}XmlChildDel : fallback_.XmlChildDel; + return {self.}XmlChildDel and not {self.}XmlChildDel.Removed ? {self.}XmlChildDel : fallback_.Del; end; function RPr.WriteXmlChildDel(_p1: any; _p2: any); @@ -9965,6 +10731,7 @@ begin end else if v is class(Del) then begin + v.Parent := self; {self.}XmlChildDel := v; container_.Set({self.}XmlChildDel); end @@ -9973,34 +10740,6 @@ begin end end; -function RPr.ReadXmlChildDStrike(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildDStrike) or {self.}XmlChildDStrike.Removed) then - begin - {self.}XmlChildDStrike := new PureWVal(self, {self.}Prefix, "dstrike"); - container_.Set({self.}XmlChildDStrike); - end - return {self.}XmlChildDStrike and not {self.}XmlChildDStrike.Removed ? {self.}XmlChildDStrike : fallback_.XmlChildDStrike; -end; - -function RPr.WriteXmlChildDStrike(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildDStrike) then - {self.}RemoveChild({self.}XmlChildDStrike); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildDStrike := v; - container_.Set({self.}XmlChildDStrike); - end - else begin - raise "Invalid assignment: DStrike expects PureWVal or nil"; - end -end; - function RPr.ReadXmlChildEffect(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildEffect) or {self.}XmlChildEffect.Removed) then @@ -10008,7 +10747,7 @@ begin {self.}XmlChildEffect := new PureWVal(self, {self.}Prefix, "effect"); container_.Set({self.}XmlChildEffect); end - return {self.}XmlChildEffect and not {self.}XmlChildEffect.Removed ? {self.}XmlChildEffect : fallback_.XmlChildEffect; + return {self.}XmlChildEffect and not {self.}XmlChildEffect.Removed ? {self.}XmlChildEffect : fallback_.Effect; end; function RPr.WriteXmlChildEffect(_p1: any; _p2: any); @@ -10021,6 +10760,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildEffect := v; container_.Set({self.}XmlChildEffect); end @@ -10036,7 +10776,7 @@ begin {self.}XmlChildEm := new PureWVal(self, {self.}Prefix, "em"); container_.Set({self.}XmlChildEm); end - return {self.}XmlChildEm and not {self.}XmlChildEm.Removed ? {self.}XmlChildEm : fallback_.XmlChildEm; + return {self.}XmlChildEm and not {self.}XmlChildEm.Removed ? {self.}XmlChildEm : fallback_.Em; end; function RPr.WriteXmlChildEm(_p1: any; _p2: any); @@ -10049,6 +10789,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildEm := v; container_.Set({self.}XmlChildEm); end @@ -10057,34 +10798,6 @@ begin end end; -function RPr.ReadXmlChildEmboss(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildEmboss) or {self.}XmlChildEmboss.Removed) then - begin - {self.}XmlChildEmboss := new PureWVal(self, {self.}Prefix, "emboss"); - container_.Set({self.}XmlChildEmboss); - end - return {self.}XmlChildEmboss and not {self.}XmlChildEmboss.Removed ? {self.}XmlChildEmboss : fallback_.XmlChildEmboss; -end; - -function RPr.WriteXmlChildEmboss(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildEmboss) then - {self.}RemoveChild({self.}XmlChildEmboss); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildEmboss := v; - container_.Set({self.}XmlChildEmboss); - end - else begin - raise "Invalid assignment: Emboss expects PureWVal or nil"; - end -end; - function RPr.ReadXmlChildFitText(): FitText; begin if tslassigning and (ifnil({self.}XmlChildFitText) or {self.}XmlChildFitText.Removed) then @@ -10092,7 +10805,7 @@ begin {self.}XmlChildFitText := new FitText(self, {self.}Prefix, "fitText"); container_.Set({self.}XmlChildFitText); end - return {self.}XmlChildFitText and not {self.}XmlChildFitText.Removed ? {self.}XmlChildFitText : fallback_.XmlChildFitText; + return {self.}XmlChildFitText and not {self.}XmlChildFitText.Removed ? {self.}XmlChildFitText : fallback_.FitText; end; function RPr.WriteXmlChildFitText(_p1: any; _p2: any); @@ -10105,6 +10818,7 @@ begin end else if v is class(FitText) then begin + v.Parent := self; {self.}XmlChildFitText := v; container_.Set({self.}XmlChildFitText); end @@ -10120,7 +10834,7 @@ begin {self.}XmlChildHighlight := new Highlight(self, {self.}Prefix, "highlight"); container_.Set({self.}XmlChildHighlight); end - return {self.}XmlChildHighlight and not {self.}XmlChildHighlight.Removed ? {self.}XmlChildHighlight : fallback_.XmlChildHighlight; + return {self.}XmlChildHighlight and not {self.}XmlChildHighlight.Removed ? {self.}XmlChildHighlight : fallback_.Highlight; end; function RPr.WriteXmlChildHighlight(_p1: any; _p2: any); @@ -10133,6 +10847,7 @@ begin end else if v is class(Highlight) then begin + v.Parent := self; {self.}XmlChildHighlight := v; container_.Set({self.}XmlChildHighlight); end @@ -10148,7 +10863,7 @@ begin {self.}XmlChildColor := new Color(self, {self.}Prefix, "color"); container_.Set({self.}XmlChildColor); end - return {self.}XmlChildColor and not {self.}XmlChildColor.Removed ? {self.}XmlChildColor : fallback_.XmlChildColor; + return {self.}XmlChildColor and not {self.}XmlChildColor.Removed ? {self.}XmlChildColor : fallback_.Color; end; function RPr.WriteXmlChildColor(_p1: any; _p2: any); @@ -10161,6 +10876,7 @@ begin end else if v is class(Color) then begin + v.Parent := self; {self.}XmlChildColor := v; container_.Set({self.}XmlChildColor); end @@ -10176,7 +10892,7 @@ begin {self.}XmlChildEastAsianLayout := new EastAsianLayout(self, {self.}Prefix, "eastAsianLayout"); container_.Set({self.}XmlChildEastAsianLayout); end - return {self.}XmlChildEastAsianLayout and not {self.}XmlChildEastAsianLayout.Removed ? {self.}XmlChildEastAsianLayout : fallback_.XmlChildEastAsianLayout; + return {self.}XmlChildEastAsianLayout and not {self.}XmlChildEastAsianLayout.Removed ? {self.}XmlChildEastAsianLayout : fallback_.EastAsianLayout; end; function RPr.WriteXmlChildEastAsianLayout(_p1: any; _p2: any); @@ -10189,6 +10905,7 @@ begin end else if v is class(EastAsianLayout) then begin + v.Parent := self; {self.}XmlChildEastAsianLayout := v; container_.Set({self.}XmlChildEastAsianLayout); end @@ -10204,7 +10921,7 @@ begin {self.}XmlChildSz := new Sz(self, {self.}Prefix, "sz"); container_.Set({self.}XmlChildSz); end - return {self.}XmlChildSz and not {self.}XmlChildSz.Removed ? {self.}XmlChildSz : fallback_.XmlChildSz; + return {self.}XmlChildSz and not {self.}XmlChildSz.Removed ? {self.}XmlChildSz : fallback_.Sz; end; function RPr.WriteXmlChildSz(_p1: any; _p2: any); @@ -10217,6 +10934,7 @@ begin end else if v is class(Sz) then begin + v.Parent := self; {self.}XmlChildSz := v; container_.Set({self.}XmlChildSz); end @@ -10232,7 +10950,7 @@ begin {self.}XmlChildSzCs := new SzCs(self, {self.}Prefix, "szCs"); container_.Set({self.}XmlChildSzCs); end - return {self.}XmlChildSzCs and not {self.}XmlChildSzCs.Removed ? {self.}XmlChildSzCs : fallback_.XmlChildSzCs; + return {self.}XmlChildSzCs and not {self.}XmlChildSzCs.Removed ? {self.}XmlChildSzCs : fallback_.SzCs; end; function RPr.WriteXmlChildSzCs(_p1: any; _p2: any); @@ -10245,6 +10963,7 @@ begin end else if v is class(SzCs) then begin + v.Parent := self; {self.}XmlChildSzCs := v; container_.Set({self.}XmlChildSzCs); end @@ -10253,6 +10972,35 @@ begin end end; +function RPr.ReadXmlChildU(): U; +begin + if tslassigning and (ifnil({self.}XmlChildU) or {self.}XmlChildU.Removed) then + begin + {self.}XmlChildU := new U(self, {self.}Prefix, "u"); + container_.Set({self.}XmlChildU); + end + return {self.}XmlChildU and not {self.}XmlChildU.Removed ? {self.}XmlChildU : fallback_.U; +end; + +function RPr.WriteXmlChildU(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildU) then + {self.}RemoveChild({self.}XmlChildU); + end + else if v is class(U) then + begin + v.Parent := self; + {self.}XmlChildU := v; + container_.Set({self.}XmlChildU); + end + else begin + raise "Invalid assignment: U expects U or nil"; + end +end; + function RPr.ReadXmlChildLang(): Lang; begin if tslassigning and (ifnil({self.}XmlChildLang) or {self.}XmlChildLang.Removed) then @@ -10260,7 +11008,7 @@ begin {self.}XmlChildLang := new Lang(self, {self.}Prefix, "lang"); container_.Set({self.}XmlChildLang); end - return {self.}XmlChildLang and not {self.}XmlChildLang.Removed ? {self.}XmlChildLang : fallback_.XmlChildLang; + return {self.}XmlChildLang and not {self.}XmlChildLang.Removed ? {self.}XmlChildLang : fallback_.Lang; end; function RPr.WriteXmlChildLang(_p1: any; _p2: any); @@ -10273,6 +11021,7 @@ begin end else if v is class(Lang) then begin + v.Parent := self; {self.}XmlChildLang := v; container_.Set({self.}XmlChildLang); end @@ -10281,34 +11030,6 @@ begin end end; -function RPr.ReadXmlChildImprint(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildImprint) or {self.}XmlChildImprint.Removed) then - begin - {self.}XmlChildImprint := new PureWVal(self, {self.}Prefix, "imprint"); - container_.Set({self.}XmlChildImprint); - end - return {self.}XmlChildImprint and not {self.}XmlChildImprint.Removed ? {self.}XmlChildImprint : fallback_.XmlChildImprint; -end; - -function RPr.WriteXmlChildImprint(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildImprint) then - {self.}RemoveChild({self.}XmlChildImprint); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildImprint := v; - container_.Set({self.}XmlChildImprint); - end - else begin - raise "Invalid assignment: Imprint expects PureWVal or nil"; - end -end; - function RPr.ReadXmlChildVertAlign(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildVertAlign) or {self.}XmlChildVertAlign.Removed) then @@ -10316,7 +11037,7 @@ begin {self.}XmlChildVertAlign := new PureWVal(self, {self.}Prefix, "vertAlign"); container_.Set({self.}XmlChildVertAlign); end - return {self.}XmlChildVertAlign and not {self.}XmlChildVertAlign.Removed ? {self.}XmlChildVertAlign : fallback_.XmlChildVertAlign; + return {self.}XmlChildVertAlign and not {self.}XmlChildVertAlign.Removed ? {self.}XmlChildVertAlign : fallback_.VertAlign; end; function RPr.WriteXmlChildVertAlign(_p1: any; _p2: any); @@ -10329,6 +11050,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildVertAlign := v; container_.Set({self.}XmlChildVertAlign); end @@ -10337,34 +11059,6 @@ begin end end; -function RPr.ReadXmlChildLigatures(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildLigatures) or {self.}XmlChildLigatures.Removed) then - begin - {self.}XmlChildLigatures := new PureWVal(self, "w14", "ligatures"); - container_.Set({self.}XmlChildLigatures); - end - return {self.}XmlChildLigatures and not {self.}XmlChildLigatures.Removed ? {self.}XmlChildLigatures : fallback_.XmlChildLigatures; -end; - -function RPr.WriteXmlChildLigatures(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildLigatures) then - {self.}RemoveChild({self.}XmlChildLigatures); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildLigatures := v; - container_.Set({self.}XmlChildLigatures); - end - else begin - raise "Invalid assignment: Ligatures expects PureWVal or nil"; - end -end; - function RPr.ReadXmlChildRtl(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildRtl) or {self.}XmlChildRtl.Removed) then @@ -10372,7 +11066,7 @@ begin {self.}XmlChildRtl := new PureWVal(self, {self.}Prefix, "rtl"); container_.Set({self.}XmlChildRtl); end - return {self.}XmlChildRtl and not {self.}XmlChildRtl.Removed ? {self.}XmlChildRtl : fallback_.XmlChildRtl; + return {self.}XmlChildRtl and not {self.}XmlChildRtl.Removed ? {self.}XmlChildRtl : fallback_.Rtl; end; function RPr.WriteXmlChildRtl(_p1: any; _p2: any); @@ -10385,6 +11079,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildRtl := v; container_.Set({self.}XmlChildRtl); end @@ -10400,7 +11095,7 @@ begin {self.}XmlChildShd := new Shd(self, {self.}Prefix, "shd"); container_.Set({self.}XmlChildShd); end - return {self.}XmlChildShd and not {self.}XmlChildShd.Removed ? {self.}XmlChildShd : fallback_.XmlChildShd; + return {self.}XmlChildShd and not {self.}XmlChildShd.Removed ? {self.}XmlChildShd : fallback_.Shd; end; function RPr.WriteXmlChildShd(_p1: any; _p2: any); @@ -10413,6 +11108,7 @@ begin end else if v is class(Shd) then begin + v.Parent := self; {self.}XmlChildShd := v; container_.Set({self.}XmlChildShd); end @@ -10421,34 +11117,6 @@ begin end end; -function RPr.ReadXmlChildSmallCaps(): PureWVal; -begin - if tslassigning and (ifnil({self.}XmlChildSmallCaps) or {self.}XmlChildSmallCaps.Removed) then - begin - {self.}XmlChildSmallCaps := new PureWVal(self, {self.}Prefix, "smallCaps"); - container_.Set({self.}XmlChildSmallCaps); - end - return {self.}XmlChildSmallCaps and not {self.}XmlChildSmallCaps.Removed ? {self.}XmlChildSmallCaps : fallback_.XmlChildSmallCaps; -end; - -function RPr.WriteXmlChildSmallCaps(_p1: any; _p2: any); -begin - v := realparamcount = 1 ? _p1 : _p2; - if ifnil(v) then - begin - if ifObj({self.}XmlChildSmallCaps) then - {self.}RemoveChild({self.}XmlChildSmallCaps); - end - else if v is class(PureWVal) then - begin - {self.}XmlChildSmallCaps := v; - container_.Set({self.}XmlChildSmallCaps); - end - else begin - raise "Invalid assignment: SmallCaps expects PureWVal or nil"; - end -end; - function RPr.ReadXmlChildW(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildW) or {self.}XmlChildW.Removed) then @@ -10456,7 +11124,7 @@ begin {self.}XmlChildW := new PureWVal(self, {self.}Prefix, "w"); container_.Set({self.}XmlChildW); end - return {self.}XmlChildW and not {self.}XmlChildW.Removed ? {self.}XmlChildW : fallback_.XmlChildW; + return {self.}XmlChildW and not {self.}XmlChildW.Removed ? {self.}XmlChildW : fallback_.W; end; function RPr.WriteXmlChildW(_p1: any; _p2: any); @@ -10469,6 +11137,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildW := v; container_.Set({self.}XmlChildW); end @@ -10477,20 +11146,193 @@ begin end end; -function Shd.Create();overload; +function RPr.ReadXmlChildLigatures(): PureWVal; begin - {self.}Create(nil, "w", "shd"); + if tslassigning and (ifnil({self.}XmlChildLigatures) or {self.}XmlChildLigatures.Removed) then + begin + {self.}XmlChildLigatures := new PureWVal(self, "w14", "ligatures"); + container_.Set({self.}XmlChildLigatures); + end + return {self.}XmlChildLigatures and not {self.}XmlChildLigatures.Removed ? {self.}XmlChildLigatures : fallback_.Ligatures; end; -function Shd.Create(_node: XmlNode);overload; +function RPr.WriteXmlChildLigatures(_p1: any; _p2: any); begin - inherited Create(_node: XmlNode); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLigatures) then + {self.}RemoveChild({self.}XmlChildLigatures); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildLigatures := v; + container_.Set({self.}XmlChildLigatures); + end + else begin + raise "Invalid assignment: Ligatures expects PureWVal or nil"; + end end; -function Shd.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function RPr.ReadXmlChildNumForm(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildNumForm) or {self.}XmlChildNumForm.Removed) then + begin + {self.}XmlChildNumForm := new PureWVal(self, "w14", "numForm"); + container_.Set({self.}XmlChildNumForm); + end + return {self.}XmlChildNumForm and not {self.}XmlChildNumForm.Removed ? {self.}XmlChildNumForm : fallback_.NumForm; +end; + +function RPr.WriteXmlChildNumForm(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNumForm) then + {self.}RemoveChild({self.}XmlChildNumForm); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildNumForm := v; + container_.Set({self.}XmlChildNumForm); + end + else begin + raise "Invalid assignment: NumForm expects PureWVal or nil"; + end +end; + +function RPr.ReadXmlChildNumSpacing(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildNumSpacing) or {self.}XmlChildNumSpacing.Removed) then + begin + {self.}XmlChildNumSpacing := new PureWVal(self, "w14", "numSpacing"); + container_.Set({self.}XmlChildNumSpacing); + end + return {self.}XmlChildNumSpacing and not {self.}XmlChildNumSpacing.Removed ? {self.}XmlChildNumSpacing : fallback_.NumSpacing; +end; + +function RPr.WriteXmlChildNumSpacing(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNumSpacing) then + {self.}RemoveChild({self.}XmlChildNumSpacing); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildNumSpacing := v; + container_.Set({self.}XmlChildNumSpacing); + end + else begin + raise "Invalid assignment: NumSpacing expects PureWVal or nil"; + end +end; + +function U.create();overload; +begin + {self.}create(nil, "w", "u"); +end; + +function U.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function U.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); +end; + +function U.Init();override; +begin + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + attributes_ := array(); + attributes_pf_ := array( + pre + "val": makeweakref(thisFunction(WriteXmlAttrVal)), + pre + "color": makeweakref(thisFunction(WriteXmlAttrColor)), + ); + sorted_child_ := array( + ); + container_ := new TSOfficeContainer(sorted_child_); +end; + +function U.Copy(_obj: U);override; +begin + tslassigning_backup := tslassigning; + tslassigning := 1; + inherited Copy(_obj); + if not ifnil(_obj.Val) then + {self.}Val := _obj.Val; + if not ifnil(_obj.Color) then + {self.}Color := _obj.Color; + tslassigning := tslassigning_backup; +end; + +function U.Clone(): U;override; +begin + obj := new U(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}Color) then + obj.Color := {self.}Color; + return obj; +end; + +function U.ConvertToPoint();override; +begin + +end; + +function U.ReadXmlAttrVal(); +begin + return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; +end; + +function U.WriteXmlAttrVal(_value: any); +begin + if ifnil({self.}XmlAttrVal) then + begin + {self.}XmlAttrVal := new OpenXmlAttribute({self.}Prefix, "val", nil); + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "val" : "val"] := {self.}XmlAttrVal; + end + {self.}XmlAttrVal.Value := _value; +end; + +function U.ReadXmlAttrColor(); +begin + return ifnil({self.}XmlAttrColor.Value) ? fallback_.XmlAttrColor.Value : {self.}XmlAttrColor.Value; +end; + +function U.WriteXmlAttrColor(_value: any); +begin + if ifnil({self.}XmlAttrColor) then + begin + {self.}XmlAttrColor := new OpenXmlAttribute({self.}Prefix, "color", nil); + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "color" : "color"] := {self.}XmlAttrColor; + end + {self.}XmlAttrColor.Value := _value; +end; + +function Shd.create();overload; +begin + {self.}create(nil, "w", "shd"); +end; + +function Shd.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Shd.create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); + inherited create(_parent, _prefix, _local_name); end; function Shd.Init();override; @@ -10517,7 +11359,7 @@ function Shd.Copy(_obj: Shd);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.Color) then @@ -10539,6 +11381,30 @@ begin tslassigning := tslassigning_backup; end; +function Shd.Clone(): Shd;override; +begin + obj := new Shd(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}Color) then + obj.Color := {self.}Color; + if not ifnil({self.}Fill) then + obj.Fill := {self.}Fill; + if not ifnil({self.}ThemeColor) then + obj.ThemeColor := {self.}ThemeColor; + if not ifnil({self.}ThemeFill) then + obj.ThemeFill := {self.}ThemeFill; + if not ifnil({self.}ThemeFillTint) then + obj.ThemeFillTint := {self.}ThemeFillTint; + if not ifnil({self.}ThemeFillShade) then + obj.ThemeFillShade := {self.}ThemeFillShade; + if not ifnil({self.}ThemeShade) then + obj.ThemeShade := {self.}ThemeShade; + if not ifnil({self.}ThemeTint) then + obj.ThemeTint := {self.}ThemeTint; + return obj; +end; + function Shd.ConvertToPoint();override; begin @@ -10679,20 +11545,20 @@ begin {self.}XmlAttrThemeTint.Value := _value; end; -function Highlight.Create();overload; +function Highlight.create();overload; begin - {self.}Create(nil, "w", "highlight"); + {self.}create(nil, "w", "highlight"); end; -function Highlight.Create(_node: XmlNode);overload; +function Highlight.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Highlight.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Highlight.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Highlight.Init();override; @@ -10711,12 +11577,20 @@ function Highlight.Copy(_obj: Highlight);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; tslassigning := tslassigning_backup; end; +function Highlight.Clone(): Highlight;override; +begin + obj := new Highlight(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function Highlight.ConvertToPoint();override; begin @@ -10737,20 +11611,20 @@ begin {self.}XmlAttrVal.Value := _value; end; -function FitText.Create();overload; +function FitText.create();overload; begin - {self.}Create(nil, "w", "fitText"); + {self.}create(nil, "w", "fitText"); end; -function FitText.Create(_node: XmlNode);overload; +function FitText.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function FitText.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FitText.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FitText.Init();override; @@ -10770,7 +11644,7 @@ function FitText.Copy(_obj: FitText);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.Val) then @@ -10778,6 +11652,16 @@ begin tslassigning := tslassigning_backup; end; +function FitText.Clone(): FitText;override; +begin + obj := new FitText(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function FitText.ConvertToPoint();override; begin @@ -10813,20 +11697,20 @@ begin {self.}XmlAttrVal.Value := _value; end; -function EastAsianLayout.Create();overload; +function EastAsianLayout.create();overload; begin - {self.}Create(nil, "w", "eastAsianLayout"); + {self.}create(nil, "w", "eastAsianLayout"); end; -function EastAsianLayout.Create(_node: XmlNode);overload; +function EastAsianLayout.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function EastAsianLayout.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function EastAsianLayout.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function EastAsianLayout.Init();override; @@ -10849,7 +11733,7 @@ function EastAsianLayout.Copy(_obj: EastAsianLayout);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Combine) then {self.}Combine := _obj.Combine; if not ifnil(_obj.CombineBrackets) then @@ -10863,6 +11747,22 @@ begin tslassigning := tslassigning_backup; end; +function EastAsianLayout.Clone(): EastAsianLayout;override; +begin + obj := new EastAsianLayout(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Combine) then + obj.Combine := {self.}Combine; + if not ifnil({self.}CombineBrackets) then + obj.CombineBrackets := {self.}CombineBrackets; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Vert) then + obj.Vert := {self.}Vert; + if not ifnil({self.}VertCompress) then + obj.VertCompress := {self.}VertCompress; + return obj; +end; + function EastAsianLayout.ConvertToPoint();override; begin @@ -10943,20 +11843,20 @@ begin {self.}XmlAttrVertCompress.Value := _value; end; -function Del.Create();overload; +function Del.create();overload; begin - {self.}Create(nil, "w", "del"); + {self.}create(nil, "w", "del"); end; -function Del.Create(_node: XmlNode);overload; +function Del.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Del.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Del.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Del.Init();override; @@ -10983,7 +11883,7 @@ function Del.Copy(_obj: Del);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Author) then {self.}Author := _obj.Author; if not ifnil(_obj.Date) then @@ -11005,6 +11905,30 @@ begin tslassigning := tslassigning_backup; end; +function Del.Clone(): Del;override; +begin + obj := new Del(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Author) then + obj.Author := {self.}Author; + if not ifnil({self.}Date) then + obj.Date := {self.}Date; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Color) then + obj.Color := {self.}Color; + if not ifnil({self.}ThemeColor) then + obj.ThemeColor := {self.}ThemeColor; + if not ifnil({self.}ThemeShade) then + obj.ThemeShade := {self.}ThemeShade; + if not ifnil({self.}ThemeTint) then + obj.ThemeTint := {self.}ThemeTint; + if not ifnil({self.}Frame) then + obj.Frame := {self.}Frame; + if not ifnil({self.}Shadow) then + obj.Shadow := {self.}Shadow; + return obj; +end; + function Del.ConvertToPoint();override; begin @@ -11145,20 +12069,20 @@ begin {self.}XmlAttrShadow.Value := _value; end; -function Bdr.Create();overload; +function Bdr.create();overload; begin - {self.}Create(nil, "w", "bdr"); + {self.}create(nil, "w", "bdr"); end; -function Bdr.Create(_node: XmlNode);overload; +function Bdr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Bdr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Bdr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Bdr.Init();override; @@ -11185,7 +12109,7 @@ function Bdr.Copy(_obj: Bdr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.Sz) then @@ -11207,9 +12131,34 @@ begin tslassigning := tslassigning_backup; end; +function Bdr.Clone(): Bdr;override; +begin + obj := new Bdr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}Sz) then + obj.Sz := {self.}Sz; + if not ifnil({self.}Space) then + obj.Space := {self.}Space; + if not ifnil({self.}Color) then + obj.Color := {self.}Color; + if not ifnil({self.}ThemeColor) then + obj.ThemeColor := {self.}ThemeColor; + if not ifnil({self.}ThemeShade) then + obj.ThemeShade := {self.}ThemeShade; + if not ifnil({self.}ThemeTint) then + obj.ThemeTint := {self.}ThemeTint; + if not ifnil({self.}Frame) then + obj.Frame := {self.}Frame; + if not ifnil({self.}Shadow) then + obj.Shadow := {self.}Shadow; + return obj; +end; + function Bdr.ConvertToPoint();override; begin - + if not ifnil({self.}XmlAttrSz) then + {self.}Sz := TSSafeUnitConverter.EighthPointToPoints({self.}XmlAttrSz.Value); end; function Bdr.ReadXmlAttrVal(); @@ -11347,20 +12296,20 @@ begin {self.}XmlAttrShadow.Value := _value; end; -function RFonts.Create();overload; +function RFonts.create();overload; begin - {self.}Create(nil, "w", "rFonts"); + {self.}create(nil, "w", "rFonts"); end; -function RFonts.Create(_node: XmlNode);overload; +function RFonts.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function RFonts.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function RFonts.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function RFonts.Init();override; @@ -11387,7 +12336,7 @@ function RFonts.Copy(_obj: RFonts);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Hint) then {self.}Hint := _obj.Hint; if not ifnil(_obj.Ascii) then @@ -11409,6 +12358,30 @@ begin tslassigning := tslassigning_backup; end; +function RFonts.Clone(): RFonts;override; +begin + obj := new RFonts(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Hint) then + obj.Hint := {self.}Hint; + if not ifnil({self.}Ascii) then + obj.Ascii := {self.}Ascii; + if not ifnil({self.}AsciiTheme) then + obj.AsciiTheme := {self.}AsciiTheme; + if not ifnil({self.}EastAsia) then + obj.EastAsia := {self.}EastAsia; + if not ifnil({self.}EastAsiaTheme) then + obj.EastAsiaTheme := {self.}EastAsiaTheme; + if not ifnil({self.}HAnsi) then + obj.HAnsi := {self.}HAnsi; + if not ifnil({self.}HAnsiTheme) then + obj.HAnsiTheme := {self.}HAnsiTheme; + if not ifnil({self.}Cs) then + obj.Cs := {self.}Cs; + if not ifnil({self.}CsTheme) then + obj.CsTheme := {self.}CsTheme; + return obj; +end; + function RFonts.ConvertToPoint();override; begin @@ -11549,20 +12522,20 @@ begin {self.}XmlAttrCsTheme.Value := _value; end; -function SzCs.Create();overload; +function SzCs.create();overload; begin - {self.}Create(nil, "w", "szCs"); + {self.}create(nil, "w", "szCs"); end; -function SzCs.Create(_node: XmlNode);overload; +function SzCs.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function SzCs.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SzCs.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SzCs.Init();override; @@ -11581,16 +12554,24 @@ function SzCs.Copy(_obj: SzCs);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; tslassigning := tslassigning_backup; end; +function SzCs.Clone(): SzCs;override; +begin + obj := new SzCs(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function SzCs.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrVal) then - {self.}Val := TSSafeUnitConverter.HalfPointToPoints({self.}XmlAttrVal.Value); + {self.}Val := TSSafeUnitConverter.HalfPointsToPoints({self.}XmlAttrVal.Value); end; function SzCs.ReadXmlAttrVal(); @@ -11608,20 +12589,20 @@ begin {self.}XmlAttrVal.Value := _value; end; -function Sz.Create();overload; +function Sz.create();overload; begin - {self.}Create(nil, "w", "sz"); + {self.}create(nil, "w", "sz"); end; -function Sz.Create(_node: XmlNode);overload; +function Sz.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Sz.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Sz.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Sz.Init();override; @@ -11640,16 +12621,24 @@ function Sz.Copy(_obj: Sz);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; tslassigning := tslassigning_backup; end; +function Sz.Clone(): Sz;override; +begin + obj := new Sz(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function Sz.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrVal) then - {self.}Val := TSSafeUnitConverter.HalfPointToPoints({self.}XmlAttrVal.Value); + {self.}Val := TSSafeUnitConverter.HalfPointsToPoints({self.}XmlAttrVal.Value); end; function Sz.ReadXmlAttrVal(); @@ -11667,20 +12656,20 @@ begin {self.}XmlAttrVal.Value := _value; end; -function PureVal.Create();overload; +function PureVal.create();overload; begin - {self.}Create(nil, "", ""); + {self.}create(nil, "", ""); end; -function PureVal.Create(_node: XmlNode);overload; +function PureVal.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function PureVal.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PureVal.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PureVal.Init();override; @@ -11699,12 +12688,20 @@ function PureVal.Copy(_obj: PureVal);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; tslassigning := tslassigning_backup; end; +function PureVal.Clone(): PureVal;override; +begin + obj := new PureVal(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function PureVal.ConvertToPoint();override; begin @@ -11725,20 +12722,20 @@ begin {self.}XmlAttrVal.Value := _value; end; -function PureWVal.Create();overload; +function PureWVal.create();overload; begin - {self.}Create(nil, "", ""); + {self.}create(nil, "w", ""); end; -function PureWVal.Create(_node: XmlNode);overload; +function PureWVal.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function PureWVal.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PureWVal.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PureWVal.Init();override; @@ -11746,7 +12743,7 @@ begin pre := {self.}Prefix ? {self.}Prefix + ":" : ""; attributes_ := array(); attributes_pf_ := array( - "w:val": makeweakref(thisFunction(WriteXmlAttrVal)), + pre + "val": makeweakref(thisFunction(WriteXmlAttrVal)), ); sorted_child_ := array( ); @@ -11757,12 +12754,20 @@ function PureWVal.Copy(_obj: PureWVal);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; tslassigning := tslassigning_backup; end; +function PureWVal.Clone(): PureWVal;override; +begin + obj := new PureWVal(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function PureWVal.ConvertToPoint();override; begin @@ -11777,26 +12782,26 @@ function PureWVal.WriteXmlAttrVal(_value: any); begin if ifnil({self.}XmlAttrVal) then begin - {self.}XmlAttrVal := new OpenXmlAttribute("w", "val", nil); - attributes_["w:val"] := {self.}XmlAttrVal; + {self.}XmlAttrVal := new OpenXmlAttribute({self.}Prefix, "val", nil); + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "val" : "val"] := {self.}XmlAttrVal; end {self.}XmlAttrVal.Value := _value; end; -function Color.Create();overload; +function Color.create();overload; begin - {self.}Create(nil, "w", "color"); + {self.}create(nil, "w", "color"); end; -function Color.Create(_node: XmlNode);overload; +function Color.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Color.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Color.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Color.Init();override; @@ -11816,7 +12821,7 @@ function Color.Copy(_obj: Color);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.ThemeColor) then @@ -11824,6 +12829,16 @@ begin tslassigning := tslassigning_backup; end; +function Color.Clone(): Color;override; +begin + obj := new Color(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}ThemeColor) then + obj.ThemeColor := {self.}ThemeColor; + return obj; +end; + function Color.ConvertToPoint();override; begin @@ -11859,20 +12874,20 @@ begin {self.}XmlAttrThemeColor.Value := _value; end; -function Lang.Create();overload; +function Lang.create();overload; begin - {self.}Create(nil, "w", "lang"); + {self.}create(nil, "w", "lang"); end; -function Lang.Create(_node: XmlNode);overload; +function Lang.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Lang.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Lang.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Lang.Init();override; @@ -11893,7 +12908,7 @@ function Lang.Copy(_obj: Lang);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.EastAsia) then @@ -11903,6 +12918,18 @@ begin tslassigning := tslassigning_backup; end; +function Lang.Clone(): Lang;override; +begin + obj := new Lang(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}EastAsia) then + obj.EastAsia := {self.}EastAsia; + if not ifnil({self.}Bidi) then + obj.Bidi := {self.}Bidi; + return obj; +end; + function Lang.ConvertToPoint();override; begin @@ -11953,20 +12980,20 @@ begin {self.}XmlAttrBidi.Value := _value; end; -function R.Create();overload; +function R.create();overload; begin - {self.}Create(nil, "w", "r"); + {self.}create(nil, "w", "r"); end; -function R.Create(_node: XmlNode);overload; +function R.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function R.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function R.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function R.Init();override; @@ -12003,7 +13030,7 @@ function R.Copy(_obj: R);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.RsidRPr) then {self.}RsidRPr := _obj.RsidRPr; if not ifnil(_obj.Anchor) then @@ -12043,6 +13070,41 @@ begin tslassigning := tslassigning_backup; end; +function R.Clone(): R;override; +begin + obj := new R(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}RsidRPr) then + obj.RsidRPr := {self.}RsidRPr; + if not ifnil({self.}Anchor) then + obj.Anchor := {self.}Anchor; + if not ifnil({self.}History) then + obj.History := {self.}History; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rPr": obj.RPr := element.Clone(); + pre + "br": obj.Br := element.Clone(); + pre + "fldChar": obj.FldChar := element.Clone(); + pre + "instrText": obj.InstrText := element.Clone(); + pre + "separator": obj.Separator := element.Clone(); + pre + "continuationSeparator": obj.ContinuationSeparator := element.Clone(); + pre + "lastRenderedPageBreak": obj.LastRenderedPageBreak := element.Clone(); + "mc:AlternateContent": obj.AlternateContent := element.Clone(); + pre + "drawing": obj.Drawing := element.Clone(); + pre + "pict": obj.Pict := element.Clone(); + pre + "t": obj.T := element.Clone(); + pre + "object": obj.Object := element.Clone(); + pre + "footnoteReference": obj.FootnoteReference := element.Clone(); + pre + "footnoteRef": obj.FootnoteRef := element.Clone(); + pre + "commentReference": obj.CommentReference := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function R.ConvertToPoint();override; begin elems := {self.}Rs(); @@ -12124,7 +13186,7 @@ begin {self.}XmlChildSeparator := new OpenXmlSimpleType(self, {self.}Prefix, "separator"); container_.Set({self.}XmlChildSeparator); end - return {self.}XmlChildSeparator and not {self.}XmlChildSeparator.Removed ? {self.}XmlChildSeparator : fallback_.XmlChildSeparator; + return {self.}XmlChildSeparator and not {self.}XmlChildSeparator.Removed ? {self.}XmlChildSeparator : fallback_.Separator; end; function R.WriteXmlChildSeparator(_value: nil_or_OpenXmlSimpleType); @@ -12136,6 +13198,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildSeparator := _value; container_.Set({self.}XmlChildSeparator); end @@ -12151,7 +13214,7 @@ begin {self.}XmlChildContinuationSeparator := new OpenXmlSimpleType(self, {self.}Prefix, "continuationSeparator"); container_.Set({self.}XmlChildContinuationSeparator); end - return {self.}XmlChildContinuationSeparator and not {self.}XmlChildContinuationSeparator.Removed ? {self.}XmlChildContinuationSeparator : fallback_.XmlChildContinuationSeparator; + return {self.}XmlChildContinuationSeparator and not {self.}XmlChildContinuationSeparator.Removed ? {self.}XmlChildContinuationSeparator : fallback_.ContinuationSeparator; end; function R.WriteXmlChildContinuationSeparator(_value: nil_or_OpenXmlSimpleType); @@ -12163,6 +13226,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildContinuationSeparator := _value; container_.Set({self.}XmlChildContinuationSeparator); end @@ -12178,7 +13242,7 @@ begin {self.}XmlChildLastRenderedPageBreak := new OpenXmlSimpleType(self, {self.}Prefix, "lastRenderedPageBreak"); container_.Set({self.}XmlChildLastRenderedPageBreak); end - return {self.}XmlChildLastRenderedPageBreak and not {self.}XmlChildLastRenderedPageBreak.Removed ? {self.}XmlChildLastRenderedPageBreak : fallback_.XmlChildLastRenderedPageBreak; + return {self.}XmlChildLastRenderedPageBreak and not {self.}XmlChildLastRenderedPageBreak.Removed ? {self.}XmlChildLastRenderedPageBreak : fallback_.LastRenderedPageBreak; end; function R.WriteXmlChildLastRenderedPageBreak(_value: nil_or_OpenXmlSimpleType); @@ -12190,6 +13254,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildLastRenderedPageBreak := _value; container_.Set({self.}XmlChildLastRenderedPageBreak); end @@ -12205,7 +13270,7 @@ begin {self.}XmlChildFootnoteRef := new OpenXmlSimpleType(self, {self.}Prefix, "footnoteRef"); container_.Set({self.}XmlChildFootnoteRef); end - return {self.}XmlChildFootnoteRef and not {self.}XmlChildFootnoteRef.Removed ? {self.}XmlChildFootnoteRef : fallback_.XmlChildFootnoteRef; + return {self.}XmlChildFootnoteRef and not {self.}XmlChildFootnoteRef.Removed ? {self.}XmlChildFootnoteRef : fallback_.FootnoteRef; end; function R.WriteXmlChildFootnoteRef(_value: nil_or_OpenXmlSimpleType); @@ -12217,6 +13282,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildFootnoteRef := _value; container_.Set({self.}XmlChildFootnoteRef); end @@ -12232,7 +13298,7 @@ begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; end; function R.WriteXmlChildRPr(_p1: any; _p2: any); @@ -12245,6 +13311,7 @@ begin end else if v is class(RPr) then begin + v.Parent := self; {self.}XmlChildRPr := v; container_.Set({self.}XmlChildRPr); end @@ -12260,7 +13327,7 @@ begin {self.}XmlChildBr := new Br(self, {self.}Prefix, "br"); container_.Set({self.}XmlChildBr); end - return {self.}XmlChildBr and not {self.}XmlChildBr.Removed ? {self.}XmlChildBr : fallback_.XmlChildBr; + return {self.}XmlChildBr and not {self.}XmlChildBr.Removed ? {self.}XmlChildBr : fallback_.Br; end; function R.WriteXmlChildBr(_p1: any; _p2: any); @@ -12273,6 +13340,7 @@ begin end else if v is class(Br) then begin + v.Parent := self; {self.}XmlChildBr := v; container_.Set({self.}XmlChildBr); end @@ -12288,7 +13356,7 @@ begin {self.}XmlChildFldChar := new FldChar(self, {self.}Prefix, "fldChar"); container_.Set({self.}XmlChildFldChar); end - return {self.}XmlChildFldChar and not {self.}XmlChildFldChar.Removed ? {self.}XmlChildFldChar : fallback_.XmlChildFldChar; + return {self.}XmlChildFldChar and not {self.}XmlChildFldChar.Removed ? {self.}XmlChildFldChar : fallback_.FldChar; end; function R.WriteXmlChildFldChar(_p1: any; _p2: any); @@ -12301,6 +13369,7 @@ begin end else if v is class(FldChar) then begin + v.Parent := self; {self.}XmlChildFldChar := v; container_.Set({self.}XmlChildFldChar); end @@ -12316,7 +13385,7 @@ begin {self.}XmlChildInstrText := new InstrText(self, {self.}Prefix, "instrText"); container_.Set({self.}XmlChildInstrText); end - return {self.}XmlChildInstrText and not {self.}XmlChildInstrText.Removed ? {self.}XmlChildInstrText : fallback_.XmlChildInstrText; + return {self.}XmlChildInstrText and not {self.}XmlChildInstrText.Removed ? {self.}XmlChildInstrText : fallback_.InstrText; end; function R.WriteXmlChildInstrText(_p1: any; _p2: any); @@ -12329,6 +13398,7 @@ begin end else if v is class(InstrText) then begin + v.Parent := self; {self.}XmlChildInstrText := v; container_.Set({self.}XmlChildInstrText); end @@ -12344,7 +13414,7 @@ begin {self.}XmlChildAlternateContent := new AlternateContent(self, "mc", "AlternateContent"); container_.Set({self.}XmlChildAlternateContent); end - return {self.}XmlChildAlternateContent and not {self.}XmlChildAlternateContent.Removed ? {self.}XmlChildAlternateContent : fallback_.XmlChildAlternateContent; + return {self.}XmlChildAlternateContent and not {self.}XmlChildAlternateContent.Removed ? {self.}XmlChildAlternateContent : fallback_.AlternateContent; end; function R.WriteXmlChildAlternateContent(_p1: any; _p2: any); @@ -12357,6 +13427,7 @@ begin end else if v is class(AlternateContent) then begin + v.Parent := self; {self.}XmlChildAlternateContent := v; container_.Set({self.}XmlChildAlternateContent); end @@ -12372,7 +13443,7 @@ begin {self.}XmlChildDrawing := new Drawing(self, {self.}Prefix, "drawing"); container_.Set({self.}XmlChildDrawing); end - return {self.}XmlChildDrawing and not {self.}XmlChildDrawing.Removed ? {self.}XmlChildDrawing : fallback_.XmlChildDrawing; + return {self.}XmlChildDrawing and not {self.}XmlChildDrawing.Removed ? {self.}XmlChildDrawing : fallback_.Drawing; end; function R.WriteXmlChildDrawing(_p1: any; _p2: any); @@ -12385,6 +13456,7 @@ begin end else if v is class(Drawing) then begin + v.Parent := self; {self.}XmlChildDrawing := v; container_.Set({self.}XmlChildDrawing); end @@ -12400,7 +13472,7 @@ begin {self.}XmlChildPict := new Pict(self, {self.}Prefix, "pict"); container_.Set({self.}XmlChildPict); end - return {self.}XmlChildPict and not {self.}XmlChildPict.Removed ? {self.}XmlChildPict : fallback_.XmlChildPict; + return {self.}XmlChildPict and not {self.}XmlChildPict.Removed ? {self.}XmlChildPict : fallback_.Pict; end; function R.WriteXmlChildPict(_p1: any; _p2: any); @@ -12413,6 +13485,7 @@ begin end else if v is class(Pict) then begin + v.Parent := self; {self.}XmlChildPict := v; container_.Set({self.}XmlChildPict); end @@ -12428,7 +13501,7 @@ begin {self.}XmlChildT := new T(self, {self.}Prefix, "t"); container_.Set({self.}XmlChildT); end - return {self.}XmlChildT and not {self.}XmlChildT.Removed ? {self.}XmlChildT : fallback_.XmlChildT; + return {self.}XmlChildT and not {self.}XmlChildT.Removed ? {self.}XmlChildT : fallback_.T; end; function R.WriteXmlChildT(_p1: any; _p2: any); @@ -12441,6 +13514,7 @@ begin end else if v is class(T) then begin + v.Parent := self; {self.}XmlChildT := v; container_.Set({self.}XmlChildT); end @@ -12456,7 +13530,7 @@ begin {self.}XmlChildObject := new Object(self, {self.}Prefix, "object"); container_.Set({self.}XmlChildObject); end - return {self.}XmlChildObject and not {self.}XmlChildObject.Removed ? {self.}XmlChildObject : fallback_.XmlChildObject; + return {self.}XmlChildObject and not {self.}XmlChildObject.Removed ? {self.}XmlChildObject : fallback_.Object; end; function R.WriteXmlChildObject(_p1: any; _p2: any); @@ -12469,6 +13543,7 @@ begin end else if v is class(Object) then begin + v.Parent := self; {self.}XmlChildObject := v; container_.Set({self.}XmlChildObject); end @@ -12484,7 +13559,7 @@ begin {self.}XmlChildFootnoteReference := new FootnoteReference(self, {self.}Prefix, "footnoteReference"); container_.Set({self.}XmlChildFootnoteReference); end - return {self.}XmlChildFootnoteReference and not {self.}XmlChildFootnoteReference.Removed ? {self.}XmlChildFootnoteReference : fallback_.XmlChildFootnoteReference; + return {self.}XmlChildFootnoteReference and not {self.}XmlChildFootnoteReference.Removed ? {self.}XmlChildFootnoteReference : fallback_.FootnoteReference; end; function R.WriteXmlChildFootnoteReference(_p1: any; _p2: any); @@ -12497,6 +13572,7 @@ begin end else if v is class(FootnoteReference) then begin + v.Parent := self; {self.}XmlChildFootnoteReference := v; container_.Set({self.}XmlChildFootnoteReference); end @@ -12512,7 +13588,7 @@ begin {self.}XmlChildCommentReference := new CommentReference(self, {self.}Prefix, "commentReference"); container_.Set({self.}XmlChildCommentReference); end - return {self.}XmlChildCommentReference and not {self.}XmlChildCommentReference.Removed ? {self.}XmlChildCommentReference : fallback_.XmlChildCommentReference; + return {self.}XmlChildCommentReference and not {self.}XmlChildCommentReference.Removed ? {self.}XmlChildCommentReference : fallback_.CommentReference; end; function R.WriteXmlChildCommentReference(_p1: any; _p2: any); @@ -12525,6 +13601,7 @@ begin end else if v is class(CommentReference) then begin + v.Parent := self; {self.}XmlChildCommentReference := v; container_.Set({self.}XmlChildCommentReference); end @@ -12562,6 +13639,7 @@ end; function R.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -12569,24 +13647,25 @@ end; function R.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; -function CommentReference.Create();overload; +function CommentReference.create();overload; begin - {self.}Create(nil, "w", "commentReference"); + {self.}create(nil, "w", "commentReference"); end; -function CommentReference.Create(_node: XmlNode);overload; +function CommentReference.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function CommentReference.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CommentReference.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CommentReference.Init();override; @@ -12605,12 +13684,20 @@ function CommentReference.Copy(_obj: CommentReference);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; tslassigning := tslassigning_backup; end; +function CommentReference.Clone(): CommentReference;override; +begin + obj := new CommentReference(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + return obj; +end; + function CommentReference.ConvertToPoint();override; begin @@ -12631,20 +13718,20 @@ begin {self.}XmlAttrId.Value := _value; end; -function Object.Create();overload; +function Object.create();overload; begin - {self.}Create(nil, "w", "object"); + {self.}create(nil, "w", "object"); end; -function Object.Create(_node: XmlNode);overload; +function Object.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Object.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Object.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Object.Init();override; @@ -12668,7 +13755,7 @@ function Object.Copy(_obj: Object);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.DxaOrig) then {self.}DxaOrig := _obj.DxaOrig; if not ifnil(_obj.DyaOrig) then @@ -12684,6 +13771,29 @@ begin tslassigning := tslassigning_backup; end; +function Object.Clone(): Object;override; +begin + obj := new Object(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}DxaOrig) then + obj.DxaOrig := {self.}DxaOrig; + if not ifnil({self.}DyaOrig) then + obj.DyaOrig := {self.}DyaOrig; + if not ifnil({self.}AnchorId) then + obj.AnchorId := {self.}AnchorId; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "v:shapetype": obj.Shapetype := element.Clone(); + "v:shape": obj.Shape := element.Clone(); + "o:OLEObject": obj.OLEObject := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Object.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrDxaOrig) then @@ -12750,7 +13860,7 @@ begin {self.}XmlChildShapetype := new VML.Shapetype(self, "v", "shapetype"); container_.Set({self.}XmlChildShapetype); end - return {self.}XmlChildShapetype and not {self.}XmlChildShapetype.Removed ? {self.}XmlChildShapetype : fallback_.XmlChildShapetype; + return {self.}XmlChildShapetype and not {self.}XmlChildShapetype.Removed ? {self.}XmlChildShapetype : fallback_.Shapetype; end; function Object.WriteXmlChildShapetype(_p1: any; _p2: any); @@ -12763,6 +13873,7 @@ begin end else if v is class(Shapetype) then begin + v.Parent := self; {self.}XmlChildShapetype := v; container_.Set({self.}XmlChildShapetype); end @@ -12778,7 +13889,7 @@ begin {self.}XmlChildShape := new VML.Shape(self, "v", "shape"); container_.Set({self.}XmlChildShape); end - return {self.}XmlChildShape and not {self.}XmlChildShape.Removed ? {self.}XmlChildShape : fallback_.XmlChildShape; + return {self.}XmlChildShape and not {self.}XmlChildShape.Removed ? {self.}XmlChildShape : fallback_.Shape; end; function Object.WriteXmlChildShape(_p1: any; _p2: any); @@ -12791,6 +13902,7 @@ begin end else if v is class(Shape) then begin + v.Parent := self; {self.}XmlChildShape := v; container_.Set({self.}XmlChildShape); end @@ -12806,7 +13918,7 @@ begin {self.}XmlChildOLEObject := new VML.OLEObject(self, "o", "OLEObject"); container_.Set({self.}XmlChildOLEObject); end - return {self.}XmlChildOLEObject and not {self.}XmlChildOLEObject.Removed ? {self.}XmlChildOLEObject : fallback_.XmlChildOLEObject; + return {self.}XmlChildOLEObject and not {self.}XmlChildOLEObject.Removed ? {self.}XmlChildOLEObject : fallback_.OLEObject; end; function Object.WriteXmlChildOLEObject(_p1: any; _p2: any); @@ -12819,6 +13931,7 @@ begin end else if v is class(OLEObject) then begin + v.Parent := self; {self.}XmlChildOLEObject := v; container_.Set({self.}XmlChildOLEObject); end @@ -12827,20 +13940,20 @@ begin end end; -function FootnoteReference.Create();overload; +function FootnoteReference.create();overload; begin - {self.}Create(nil, "w", "footnoteReference"); + {self.}create(nil, "w", "footnoteReference"); end; -function FootnoteReference.Create(_node: XmlNode);overload; +function FootnoteReference.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function FootnoteReference.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FootnoteReference.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FootnoteReference.Init();override; @@ -12859,12 +13972,20 @@ function FootnoteReference.Copy(_obj: FootnoteReference);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; tslassigning := tslassigning_backup; end; +function FootnoteReference.Clone(): FootnoteReference;override; +begin + obj := new FootnoteReference(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + return obj; +end; + function FootnoteReference.ConvertToPoint();override; begin @@ -12885,20 +14006,20 @@ begin {self.}XmlAttrId.Value := _value; end; -function FldChar.Create();overload; +function FldChar.create();overload; begin - {self.}Create(nil, "w", "fldChar"); + {self.}create(nil, "w", "fldChar"); end; -function FldChar.Create(_node: XmlNode);overload; +function FldChar.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function FldChar.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FldChar.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FldChar.Init();override; @@ -12919,7 +14040,7 @@ function FldChar.Copy(_obj: FldChar);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.FldCharType) then {self.}FldCharType := _obj.FldCharType; if not ifnil(_obj.FldLock) then @@ -12929,6 +14050,18 @@ begin tslassigning := tslassigning_backup; end; +function FldChar.Clone(): FldChar;override; +begin + obj := new FldChar(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}FldCharType) then + obj.FldCharType := {self.}FldCharType; + if not ifnil({self.}FldLock) then + obj.FldLock := {self.}FldLock; + if not ifnil({self.}Dirty) then + obj.Dirty := {self.}Dirty; + return obj; +end; + function FldChar.ConvertToPoint();override; begin @@ -12979,20 +14112,20 @@ begin {self.}XmlAttrDirty.Value := _value; end; -function InstrText.Create();overload; +function InstrText.create();overload; begin - {self.}Create(nil, "w", "instrText"); + {self.}create(nil, "w", "instrText"); end; -function InstrText.Create(_node: XmlNode);overload; +function InstrText.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function InstrText.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function InstrText.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function InstrText.Init();override; @@ -13008,12 +14141,22 @@ function InstrText.Copy(_obj: InstrText);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlTextElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Space) then {self.}Space := _obj.Space; tslassigning := tslassigning_backup; end; +function InstrText.Clone(): InstrText;override; +begin + obj := new InstrText(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Text) then + obj.Text := {self.}Text; + if not ifnil({self.}Space) then + obj.Space := {self.}Space; + return obj; +end; + function InstrText.ConvertToPoint();override; begin @@ -13034,20 +14177,20 @@ begin {self.}XmlAttrSpace.Value := _value; end; -function Br.Create();overload; +function Br.create();overload; begin - {self.}Create(nil, "w", "br"); + {self.}create(nil, "w", "br"); end; -function Br.Create(_node: XmlNode);overload; +function Br.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Br.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Br.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Br.Init();override; @@ -13066,12 +14209,20 @@ function Br.Copy(_obj: Br);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; tslassigning := tslassigning_backup; end; +function Br.Clone(): Br;override; +begin + obj := new Br(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + return obj; +end; + function Br.ConvertToPoint();override; begin @@ -13092,20 +14243,20 @@ begin {self.}XmlAttrType.Value := _value; end; -function TxbxContent.Create();overload; +function TxbxContent.create();overload; begin - {self.}Create(nil, "w", "textbox"); + {self.}create(nil, "w", "textbox"); end; -function TxbxContent.Create(_node: XmlNode);overload; +function TxbxContent.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TxbxContent.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TxbxContent.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TxbxContent.Init();override; @@ -13124,10 +14275,19 @@ function TxbxContent.Copy(_obj: TxbxContent);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function TxbxContent.Clone(): TxbxContent;override; +begin + obj := new TxbxContent(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function TxbxContent.ConvertToPoint();override; begin elems := {self.}Ps(); @@ -13164,6 +14324,7 @@ end; function TxbxContent.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -13171,24 +14332,25 @@ end; function TxbxContent.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Drawing.Create();overload; +function Drawing.create();overload; begin - {self.}Create(nil, "w", "drawing"); + {self.}create(nil, "w", "drawing"); end; -function Drawing.Create(_node: XmlNode);overload; +function Drawing.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Drawing.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Drawing.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Drawing.Init();override; @@ -13208,7 +14370,7 @@ function Drawing.Copy(_obj: Drawing);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChild_Inline) then {self.}_Inline.Copy(_obj.XmlChild_Inline); if not ifnil(_obj.XmlChildAnchor) then @@ -13216,6 +14378,22 @@ begin tslassigning := tslassigning_backup; end; +function Drawing.Clone(): Drawing;override; +begin + obj := new Drawing(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "wp:inline": obj._Inline := element.Clone(); + "wp:anchor": obj.Anchor := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Drawing.ConvertToPoint();override; begin if not ifnil({self.}XmlChild_Inline) then @@ -13231,7 +14409,7 @@ begin {self.}XmlChild_Inline := new DrawingML._Inline(self, "wp", "inline"); container_.Set({self.}XmlChild_Inline); end - return {self.}XmlChild_Inline and not {self.}XmlChild_Inline.Removed ? {self.}XmlChild_Inline : fallback_.XmlChild_Inline; + return {self.}XmlChild_Inline and not {self.}XmlChild_Inline.Removed ? {self.}XmlChild_Inline : fallback_._Inline; end; function Drawing.WriteXmlChild_Inline(_p1: any; _p2: any); @@ -13244,6 +14422,7 @@ begin end else if v is class(_Inline) then begin + v.Parent := self; {self.}XmlChild_Inline := v; container_.Set({self.}XmlChild_Inline); end @@ -13259,7 +14438,7 @@ begin {self.}XmlChildAnchor := new DrawingML.Anchor(self, "wp", "anchor"); container_.Set({self.}XmlChildAnchor); end - return {self.}XmlChildAnchor and not {self.}XmlChildAnchor.Removed ? {self.}XmlChildAnchor : fallback_.XmlChildAnchor; + return {self.}XmlChildAnchor and not {self.}XmlChildAnchor.Removed ? {self.}XmlChildAnchor : fallback_.Anchor; end; function Drawing.WriteXmlChildAnchor(_p1: any; _p2: any); @@ -13272,6 +14451,7 @@ begin end else if v is class(Anchor) then begin + v.Parent := self; {self.}XmlChildAnchor := v; container_.Set({self.}XmlChildAnchor); end @@ -13280,20 +14460,20 @@ begin end end; -function T.Create();overload; +function T.create();overload; begin - {self.}Create(nil, "w", "t"); + {self.}create(nil, "w", "t"); end; -function T.Create(_node: XmlNode);overload; +function T.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function T.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function T.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function T.Init();override; @@ -13309,12 +14489,22 @@ function T.Copy(_obj: T);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlTextElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Space) then {self.}Space := _obj.Space; tslassigning := tslassigning_backup; end; +function T.Clone(): T;override; +begin + obj := new T(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Text) then + obj.Text := {self.}Text; + if not ifnil({self.}Space) then + obj.Space := {self.}Space; + return obj; +end; + function T.ConvertToPoint();override; begin @@ -13335,20 +14525,20 @@ begin {self.}XmlAttrSpace.Value := _value; end; -function Tbl.Create();overload; +function Tbl.create();overload; begin - {self.}Create(nil, "w", "tbl"); + {self.}create(nil, "w", "tbl"); end; -function Tbl.Create(_node: XmlNode);overload; +function Tbl.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Tbl.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Tbl.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Tbl.Init();override; @@ -13370,7 +14560,7 @@ function Tbl.Copy(_obj: Tbl);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTblPr) then {self.}TblPr.Copy(_obj.XmlChildTblPr); if not ifnil(_obj.XmlChildTblGrid) then @@ -13378,6 +14568,22 @@ begin tslassigning := tslassigning_backup; end; +function Tbl.Clone(): Tbl;override; +begin + obj := new Tbl(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "tblPr": obj.TblPr := element.Clone(); + pre + "tblGrid": obj.TblGrid := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Tbl.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTblPr) then @@ -13399,7 +14605,7 @@ begin {self.}XmlChildTblPr := new TblPr(self, {self.}Prefix, "tblPr"); container_.Set({self.}XmlChildTblPr); end - return {self.}XmlChildTblPr and not {self.}XmlChildTblPr.Removed ? {self.}XmlChildTblPr : fallback_.XmlChildTblPr; + return {self.}XmlChildTblPr and not {self.}XmlChildTblPr.Removed ? {self.}XmlChildTblPr : fallback_.TblPr; end; function Tbl.WriteXmlChildTblPr(_p1: any; _p2: any); @@ -13412,6 +14618,7 @@ begin end else if v is class(TblPr) then begin + v.Parent := self; {self.}XmlChildTblPr := v; container_.Set({self.}XmlChildTblPr); end @@ -13427,7 +14634,7 @@ begin {self.}XmlChildTblGrid := new TblGrid(self, {self.}Prefix, "tblGrid"); container_.Set({self.}XmlChildTblGrid); end - return {self.}XmlChildTblGrid and not {self.}XmlChildTblGrid.Removed ? {self.}XmlChildTblGrid : fallback_.XmlChildTblGrid; + return {self.}XmlChildTblGrid and not {self.}XmlChildTblGrid.Removed ? {self.}XmlChildTblGrid : fallback_.TblGrid; end; function Tbl.WriteXmlChildTblGrid(_p1: any; _p2: any); @@ -13440,6 +14647,7 @@ begin end else if v is class(TblGrid) then begin + v.Parent := self; {self.}XmlChildTblGrid := v; container_.Set({self.}XmlChildTblGrid); end @@ -13503,6 +14711,7 @@ end; function Tbl.AddTr(): Tr; begin obj := new Tr(self, {self.}Prefix, "tr"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -13510,6 +14719,7 @@ end; function Tbl.AddSdt(): Sdt; begin obj := new Sdt(self, {self.}Prefix, "sdt"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -13517,6 +14727,7 @@ end; function Tbl.AppendTr(): Tr; begin obj := new Tr(self, {self.}Prefix, "tr"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -13524,24 +14735,25 @@ end; function Tbl.AppendSdt(): Sdt; begin obj := new Sdt(self, {self.}Prefix, "sdt"); + obj.Enable := true; container_.Append(obj); return obj; end; -function TblPr.Create();overload; +function TblPr.create();overload; begin - {self.}Create(nil, "w", "tblPr"); + {self.}create(nil, "w", "tblPr"); end; -function TblPr.Create(_node: XmlNode);overload; +function TblPr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblPr.Init();override; @@ -13554,17 +14766,18 @@ begin pre + "jc": array(0, makeweakref(thisFunction(ReadXmlChildJc))), pre + "shd": array(1, makeweakref(thisFunction(ReadXmlChildShd))), pre + "tblStyle": array(2, makeweakref(thisFunction(ReadXmlChildTblStyle))), - pre + "tblW": array(3, makeweakref(thisFunction(ReadXmlChildTblW))), - pre + "tblInd": array(4, makeweakref(thisFunction(ReadXmlChildTblInd))), - pre + "tblLayout": array(5, makeweakref(thisFunction(ReadXmlChildTblLayout))), - pre + "tblLook": array(6, makeweakref(thisFunction(ReadXmlChildTblLook))), - pre + "tblBorders": array(7, makeweakref(thisFunction(ReadXmlChildTblBorders))), - pre + "tblCellMar": array(8, makeweakref(thisFunction(ReadXmlChildTblCellMar))), - pre + "tblCellSpacing": array(9, makeweakref(thisFunction(ReadXmlChildTblCellSpacing))), - pre + "tblCaption": array(10, makeweakref(thisFunction(ReadXmlChildTblCaption))), - pre + "tblDescription": array(11, makeweakref(thisFunction(ReadXmlChildTblDescription))), - pre + "tblStyleRowBandSize": array(12, makeweakref(thisFunction(ReadXmlChildTblStyleRowBandSize))), - pre + "tblStyleColBandSize": array(13, makeweakref(thisFunction(ReadXmlChildTblStyleColBandSize))), + pre + "bidiVisual": array(3, makeweakref(thisFunction(ReadXmlChildBidiVisual))), + pre + "tblW": array(4, makeweakref(thisFunction(ReadXmlChildTblW))), + pre + "tblInd": array(5, makeweakref(thisFunction(ReadXmlChildTblInd))), + pre + "tblLayout": array(6, makeweakref(thisFunction(ReadXmlChildTblLayout))), + pre + "tblLook": array(7, makeweakref(thisFunction(ReadXmlChildTblLook))), + pre + "tblBorders": array(8, makeweakref(thisFunction(ReadXmlChildTblBorders))), + pre + "tblCellMar": array(9, makeweakref(thisFunction(ReadXmlChildTblCellMar))), + pre + "tblCellSpacing": array(10, makeweakref(thisFunction(ReadXmlChildTblCellSpacing))), + pre + "tblCaption": array(11, makeweakref(thisFunction(ReadXmlChildTblCaption))), + pre + "tblDescription": array(12, makeweakref(thisFunction(ReadXmlChildTblDescription))), + pre + "tblStyleRowBandSize": array(13, makeweakref(thisFunction(ReadXmlChildTblStyleRowBandSize))), + pre + "tblStyleColBandSize": array(14, makeweakref(thisFunction(ReadXmlChildTblStyleColBandSize))), ); container_ := new TSOfficeContainer(sorted_child_); end; @@ -13573,13 +14786,15 @@ function TblPr.Copy(_obj: TblPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildJc) then {self.}Jc.Copy(_obj.XmlChildJc); if not ifnil(_obj.XmlChildShd) then {self.}Shd.Copy(_obj.XmlChildShd); if not ifnil(_obj.XmlChildTblStyle) then {self.}TblStyle.Copy(_obj.XmlChildTblStyle); + if not ifnil(_obj.XmlChildBidiVisual) then + ifnil({self.}XmlChildBidiVisual) ? {self.}BidiVisual.Copy(_obj.XmlChildBidiVisual) : {self.}XmlChildBidiVisual.Copy(_obj.XmlChildBidiVisual); if not ifnil(_obj.XmlChildTblW) then {self.}TblW.Copy(_obj.XmlChildTblW); if not ifnil(_obj.XmlChildTblInd) then @@ -13605,6 +14820,35 @@ begin tslassigning := tslassigning_backup; end; +function TblPr.Clone(): TblPr;override; +begin + obj := new TblPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "jc": obj.Jc := element.Clone(); + pre + "shd": obj.Shd := element.Clone(); + pre + "tblStyle": obj.TblStyle := element.Clone(); + pre + "bidiVisual": obj.BidiVisual := element.Clone(); + pre + "tblW": obj.TblW := element.Clone(); + pre + "tblInd": obj.TblInd := element.Clone(); + pre + "tblLayout": obj.TblLayout := element.Clone(); + pre + "tblLook": obj.TblLook := element.Clone(); + pre + "tblBorders": obj.TblBorders := element.Clone(); + pre + "tblCellMar": obj.TblCellMar := element.Clone(); + pre + "tblCellSpacing": obj.TblCellSpacing := element.Clone(); + pre + "tblCaption": obj.TblCaption := element.Clone(); + pre + "tblDescription": obj.TblDescription := element.Clone(); + pre + "tblStyleRowBandSize": obj.TblStyleRowBandSize := element.Clone(); + pre + "tblStyleColBandSize": obj.TblStyleColBandSize := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function TblPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildJc) then @@ -13637,6 +14881,34 @@ begin {self.}XmlChildTblStyleColBandSize.ConvertToPoint(); end; +function TblPr.ReadXmlChildBidiVisual(); +begin + if tslassigning and (ifnil({self.}XmlChildBidiVisual) or {self.}XmlChildBidiVisual.Removed) then + begin + {self.}XmlChildBidiVisual := new OpenXmlSimpleType(self, {self.}Prefix, "bidiVisual"); + container_.Set({self.}XmlChildBidiVisual); + end + return {self.}XmlChildBidiVisual and not {self.}XmlChildBidiVisual.Removed ? {self.}XmlChildBidiVisual : fallback_.BidiVisual; +end; + +function TblPr.WriteXmlChildBidiVisual(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildBidiVisual) then + {self.}RemoveChild({self.}XmlChildBidiVisual); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildBidiVisual := _value; + container_.Set({self.}XmlChildBidiVisual); + end + else begin + raise "Invalid assignment: BidiVisual expects nil or OpenXmlSimpleType"; + end +end; + function TblPr.ReadXmlChildJc(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildJc) or {self.}XmlChildJc.Removed) then @@ -13644,7 +14916,7 @@ begin {self.}XmlChildJc := new PureWVal(self, {self.}Prefix, "jc"); container_.Set({self.}XmlChildJc); end - return {self.}XmlChildJc and not {self.}XmlChildJc.Removed ? {self.}XmlChildJc : fallback_.XmlChildJc; + return {self.}XmlChildJc and not {self.}XmlChildJc.Removed ? {self.}XmlChildJc : fallback_.Jc; end; function TblPr.WriteXmlChildJc(_p1: any; _p2: any); @@ -13657,6 +14929,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildJc := v; container_.Set({self.}XmlChildJc); end @@ -13672,7 +14945,7 @@ begin {self.}XmlChildShd := new Shd(self, {self.}Prefix, "shd"); container_.Set({self.}XmlChildShd); end - return {self.}XmlChildShd and not {self.}XmlChildShd.Removed ? {self.}XmlChildShd : fallback_.XmlChildShd; + return {self.}XmlChildShd and not {self.}XmlChildShd.Removed ? {self.}XmlChildShd : fallback_.Shd; end; function TblPr.WriteXmlChildShd(_p1: any; _p2: any); @@ -13685,6 +14958,7 @@ begin end else if v is class(Shd) then begin + v.Parent := self; {self.}XmlChildShd := v; container_.Set({self.}XmlChildShd); end @@ -13700,7 +14974,7 @@ begin {self.}XmlChildTblStyle := new PureWVal(self, {self.}Prefix, "tblStyle"); container_.Set({self.}XmlChildTblStyle); end - return {self.}XmlChildTblStyle and not {self.}XmlChildTblStyle.Removed ? {self.}XmlChildTblStyle : fallback_.XmlChildTblStyle; + return {self.}XmlChildTblStyle and not {self.}XmlChildTblStyle.Removed ? {self.}XmlChildTblStyle : fallback_.TblStyle; end; function TblPr.WriteXmlChildTblStyle(_p1: any; _p2: any); @@ -13713,6 +14987,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTblStyle := v; container_.Set({self.}XmlChildTblStyle); end @@ -13728,7 +15003,7 @@ begin {self.}XmlChildTblW := new TblW(self, {self.}Prefix, "tblW"); container_.Set({self.}XmlChildTblW); end - return {self.}XmlChildTblW and not {self.}XmlChildTblW.Removed ? {self.}XmlChildTblW : fallback_.XmlChildTblW; + return {self.}XmlChildTblW and not {self.}XmlChildTblW.Removed ? {self.}XmlChildTblW : fallback_.TblW; end; function TblPr.WriteXmlChildTblW(_p1: any; _p2: any); @@ -13741,6 +15016,7 @@ begin end else if v is class(TblW) then begin + v.Parent := self; {self.}XmlChildTblW := v; container_.Set({self.}XmlChildTblW); end @@ -13749,14 +15025,14 @@ begin end end; -function TblPr.ReadXmlChildTblInd(): TblW; +function TblPr.ReadXmlChildTblInd(): TblInd; begin if tslassigning and (ifnil({self.}XmlChildTblInd) or {self.}XmlChildTblInd.Removed) then begin - {self.}XmlChildTblInd := new TblW(self, {self.}Prefix, "tblInd"); + {self.}XmlChildTblInd := new TblInd(self, {self.}Prefix, "tblInd"); container_.Set({self.}XmlChildTblInd); end - return {self.}XmlChildTblInd and not {self.}XmlChildTblInd.Removed ? {self.}XmlChildTblInd : fallback_.XmlChildTblInd; + return {self.}XmlChildTblInd and not {self.}XmlChildTblInd.Removed ? {self.}XmlChildTblInd : fallback_.TblInd; end; function TblPr.WriteXmlChildTblInd(_p1: any; _p2: any); @@ -13767,13 +15043,14 @@ begin if ifObj({self.}XmlChildTblInd) then {self.}RemoveChild({self.}XmlChildTblInd); end - else if v is class(TblW) then + else if v is class(TblInd) then begin + v.Parent := self; {self.}XmlChildTblInd := v; container_.Set({self.}XmlChildTblInd); end else begin - raise "Invalid assignment: TblInd expects TblW or nil"; + raise "Invalid assignment: TblInd expects TblInd or nil"; end end; @@ -13784,7 +15061,7 @@ begin {self.}XmlChildTblLayout := new TblLayout(self, {self.}Prefix, "tblLayout"); container_.Set({self.}XmlChildTblLayout); end - return {self.}XmlChildTblLayout and not {self.}XmlChildTblLayout.Removed ? {self.}XmlChildTblLayout : fallback_.XmlChildTblLayout; + return {self.}XmlChildTblLayout and not {self.}XmlChildTblLayout.Removed ? {self.}XmlChildTblLayout : fallback_.TblLayout; end; function TblPr.WriteXmlChildTblLayout(_p1: any; _p2: any); @@ -13797,6 +15074,7 @@ begin end else if v is class(TblLayout) then begin + v.Parent := self; {self.}XmlChildTblLayout := v; container_.Set({self.}XmlChildTblLayout); end @@ -13812,7 +15090,7 @@ begin {self.}XmlChildTblLook := new TblLook(self, {self.}Prefix, "tblLook"); container_.Set({self.}XmlChildTblLook); end - return {self.}XmlChildTblLook and not {self.}XmlChildTblLook.Removed ? {self.}XmlChildTblLook : fallback_.XmlChildTblLook; + return {self.}XmlChildTblLook and not {self.}XmlChildTblLook.Removed ? {self.}XmlChildTblLook : fallback_.TblLook; end; function TblPr.WriteXmlChildTblLook(_p1: any; _p2: any); @@ -13825,6 +15103,7 @@ begin end else if v is class(TblLook) then begin + v.Parent := self; {self.}XmlChildTblLook := v; container_.Set({self.}XmlChildTblLook); end @@ -13840,7 +15119,7 @@ begin {self.}XmlChildTblBorders := new TblBorders(self, {self.}Prefix, "tblBorders"); container_.Set({self.}XmlChildTblBorders); end - return {self.}XmlChildTblBorders and not {self.}XmlChildTblBorders.Removed ? {self.}XmlChildTblBorders : fallback_.XmlChildTblBorders; + return {self.}XmlChildTblBorders and not {self.}XmlChildTblBorders.Removed ? {self.}XmlChildTblBorders : fallback_.TblBorders; end; function TblPr.WriteXmlChildTblBorders(_p1: any; _p2: any); @@ -13853,6 +15132,7 @@ begin end else if v is class(TblBorders) then begin + v.Parent := self; {self.}XmlChildTblBorders := v; container_.Set({self.}XmlChildTblBorders); end @@ -13868,7 +15148,7 @@ begin {self.}XmlChildTblCellMar := new TblCellMar(self, {self.}Prefix, "tblCellMar"); container_.Set({self.}XmlChildTblCellMar); end - return {self.}XmlChildTblCellMar and not {self.}XmlChildTblCellMar.Removed ? {self.}XmlChildTblCellMar : fallback_.XmlChildTblCellMar; + return {self.}XmlChildTblCellMar and not {self.}XmlChildTblCellMar.Removed ? {self.}XmlChildTblCellMar : fallback_.TblCellMar; end; function TblPr.WriteXmlChildTblCellMar(_p1: any; _p2: any); @@ -13881,6 +15161,7 @@ begin end else if v is class(TblCellMar) then begin + v.Parent := self; {self.}XmlChildTblCellMar := v; container_.Set({self.}XmlChildTblCellMar); end @@ -13896,7 +15177,7 @@ begin {self.}XmlChildTblCellSpacing := new TblCellSpacing(self, {self.}Prefix, "tblCellSpacing"); container_.Set({self.}XmlChildTblCellSpacing); end - return {self.}XmlChildTblCellSpacing and not {self.}XmlChildTblCellSpacing.Removed ? {self.}XmlChildTblCellSpacing : fallback_.XmlChildTblCellSpacing; + return {self.}XmlChildTblCellSpacing and not {self.}XmlChildTblCellSpacing.Removed ? {self.}XmlChildTblCellSpacing : fallback_.TblCellSpacing; end; function TblPr.WriteXmlChildTblCellSpacing(_p1: any; _p2: any); @@ -13909,6 +15190,7 @@ begin end else if v is class(TblCellSpacing) then begin + v.Parent := self; {self.}XmlChildTblCellSpacing := v; container_.Set({self.}XmlChildTblCellSpacing); end @@ -13924,7 +15206,7 @@ begin {self.}XmlChildTblCaption := new PureWVal(self, {self.}Prefix, "tblCaption"); container_.Set({self.}XmlChildTblCaption); end - return {self.}XmlChildTblCaption and not {self.}XmlChildTblCaption.Removed ? {self.}XmlChildTblCaption : fallback_.XmlChildTblCaption; + return {self.}XmlChildTblCaption and not {self.}XmlChildTblCaption.Removed ? {self.}XmlChildTblCaption : fallback_.TblCaption; end; function TblPr.WriteXmlChildTblCaption(_p1: any; _p2: any); @@ -13937,6 +15219,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTblCaption := v; container_.Set({self.}XmlChildTblCaption); end @@ -13952,7 +15235,7 @@ begin {self.}XmlChildTblDescription := new PureWVal(self, {self.}Prefix, "tblDescription"); container_.Set({self.}XmlChildTblDescription); end - return {self.}XmlChildTblDescription and not {self.}XmlChildTblDescription.Removed ? {self.}XmlChildTblDescription : fallback_.XmlChildTblDescription; + return {self.}XmlChildTblDescription and not {self.}XmlChildTblDescription.Removed ? {self.}XmlChildTblDescription : fallback_.TblDescription; end; function TblPr.WriteXmlChildTblDescription(_p1: any; _p2: any); @@ -13965,6 +15248,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTblDescription := v; container_.Set({self.}XmlChildTblDescription); end @@ -13980,7 +15264,7 @@ begin {self.}XmlChildTblStyleRowBandSize := new PureWVal(self, {self.}Prefix, "tblStyleRowBandSize"); container_.Set({self.}XmlChildTblStyleRowBandSize); end - return {self.}XmlChildTblStyleRowBandSize and not {self.}XmlChildTblStyleRowBandSize.Removed ? {self.}XmlChildTblStyleRowBandSize : fallback_.XmlChildTblStyleRowBandSize; + return {self.}XmlChildTblStyleRowBandSize and not {self.}XmlChildTblStyleRowBandSize.Removed ? {self.}XmlChildTblStyleRowBandSize : fallback_.TblStyleRowBandSize; end; function TblPr.WriteXmlChildTblStyleRowBandSize(_p1: any; _p2: any); @@ -13993,6 +15277,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTblStyleRowBandSize := v; container_.Set({self.}XmlChildTblStyleRowBandSize); end @@ -14008,7 +15293,7 @@ begin {self.}XmlChildTblStyleColBandSize := new PureWVal(self, {self.}Prefix, "tblStyleColBandSize"); container_.Set({self.}XmlChildTblStyleColBandSize); end - return {self.}XmlChildTblStyleColBandSize and not {self.}XmlChildTblStyleColBandSize.Removed ? {self.}XmlChildTblStyleColBandSize : fallback_.XmlChildTblStyleColBandSize; + return {self.}XmlChildTblStyleColBandSize and not {self.}XmlChildTblStyleColBandSize.Removed ? {self.}XmlChildTblStyleColBandSize : fallback_.TblStyleColBandSize; end; function TblPr.WriteXmlChildTblStyleColBandSize(_p1: any; _p2: any); @@ -14021,6 +15306,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTblStyleColBandSize := v; container_.Set({self.}XmlChildTblStyleColBandSize); end @@ -14029,20 +15315,20 @@ begin end end; -function TblCellSpacing.Create();overload; +function TblCellSpacing.create();overload; begin - {self.}Create(nil, "w", "tblCellSpacing"); + {self.}create(nil, "w", "tblCellSpacing"); end; -function TblCellSpacing.Create(_node: XmlNode);overload; +function TblCellSpacing.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblCellSpacing.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblCellSpacing.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblCellSpacing.Init();override; @@ -14062,7 +15348,7 @@ function TblCellSpacing.Copy(_obj: TblCellSpacing);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.W) then {self.}W := _obj.W; if not ifnil(_obj.Type) then @@ -14070,6 +15356,16 @@ begin tslassigning := tslassigning_backup; end; +function TblCellSpacing.Clone(): TblCellSpacing;override; +begin + obj := new TblCellSpacing(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}W) then + obj.W := {self.}W; + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + return obj; +end; + function TblCellSpacing.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrW) then @@ -14106,20 +15402,20 @@ begin {self.}XmlAttrType.Value := _value; end; -function TblW.Create();overload; +function TblW.create();overload; begin - {self.}Create(nil, "w", "tblW"); + {self.}create(nil, "w", "tblW"); end; -function TblW.Create(_node: XmlNode);overload; +function TblW.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblW.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblW.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblW.Init();override; @@ -14139,7 +15435,7 @@ function TblW.Copy(_obj: TblW);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.W) then {self.}W := _obj.W; if not ifnil(_obj.Type) then @@ -14147,6 +15443,16 @@ begin tslassigning := tslassigning_backup; end; +function TblW.Clone(): TblW;override; +begin + obj := new TblW(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}W) then + obj.W := {self.}W; + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + return obj; +end; + function TblW.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrW) then @@ -14183,20 +15489,20 @@ begin {self.}XmlAttrType.Value := _value; end; -function TblLayout.Create();overload; +function TblLayout.create();overload; begin - {self.}Create(nil, "w", "tblLayout"); + {self.}create(nil, "w", "tblLayout"); end; -function TblLayout.Create(_node: XmlNode);overload; +function TblLayout.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblLayout.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblLayout.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblLayout.Init();override; @@ -14215,12 +15521,20 @@ function TblLayout.Copy(_obj: TblLayout);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; tslassigning := tslassigning_backup; end; +function TblLayout.Clone(): TblLayout;override; +begin + obj := new TblLayout(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + return obj; +end; + function TblLayout.ConvertToPoint();override; begin @@ -14241,20 +15555,20 @@ begin {self.}XmlAttrType.Value := _value; end; -function TblLook.Create();overload; +function TblLook.create();overload; begin - {self.}Create(nil, "w", "tblLook"); + {self.}create(nil, "w", "tblLook"); end; -function TblLook.Create(_node: XmlNode);overload; +function TblLook.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblLook.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblLook.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblLook.Init();override; @@ -14279,7 +15593,7 @@ function TblLook.Copy(_obj: TblLook);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.FirstRow) then @@ -14297,6 +15611,26 @@ begin tslassigning := tslassigning_backup; end; +function TblLook.Clone(): TblLook;override; +begin + obj := new TblLook(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}FirstRow) then + obj.FirstRow := {self.}FirstRow; + if not ifnil({self.}LastRow) then + obj.LastRow := {self.}LastRow; + if not ifnil({self.}FirstColumn) then + obj.FirstColumn := {self.}FirstColumn; + if not ifnil({self.}LastColumn) then + obj.LastColumn := {self.}LastColumn; + if not ifnil({self.}NoHBand) then + obj.NoHBand := {self.}NoHBand; + if not ifnil({self.}NoVBand) then + obj.NoVBand := {self.}NoVBand; + return obj; +end; + function TblLook.ConvertToPoint();override; begin @@ -14407,20 +15741,20 @@ begin {self.}XmlAttrNoVBand.Value := _value; end; -function TblBorders.Create();overload; +function TblBorders.create();overload; begin - {self.}Create(nil, "w", "tblBorders"); + {self.}create(nil, "w", "tblBorders"); end; -function TblBorders.Create(_node: XmlNode);overload; +function TblBorders.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblBorders.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblBorders.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblBorders.Init();override; @@ -14444,7 +15778,7 @@ function TblBorders.Copy(_obj: TblBorders);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTop) then {self.}Top.Copy(_obj.XmlChildTop); if not ifnil(_obj.XmlChildLeft) then @@ -14460,6 +15794,26 @@ begin tslassigning := tslassigning_backup; end; +function TblBorders.Clone(): TblBorders;override; +begin + obj := new TblBorders(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "top": obj.Top := element.Clone(); + pre + "left": obj.Left := element.Clone(); + pre + "bottom": obj.Bottom := element.Clone(); + pre + "right": obj.Right := element.Clone(); + pre + "insideH": obj.InsideH := element.Clone(); + pre + "insideV": obj.InsideV := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function TblBorders.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTop) then @@ -14476,14 +15830,14 @@ begin {self.}XmlChildInsideV.ConvertToPoint(); end; -function TblBorders.ReadXmlChildTop(): TblBorder; +function TblBorders.ReadXmlChildTop(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildTop) or {self.}XmlChildTop.Removed) then begin - {self.}XmlChildTop := new TblBorder(self, {self.}Prefix, "top"); + {self.}XmlChildTop := new Bdr(self, {self.}Prefix, "top"); container_.Set({self.}XmlChildTop); end - return {self.}XmlChildTop and not {self.}XmlChildTop.Removed ? {self.}XmlChildTop : fallback_.XmlChildTop; + return {self.}XmlChildTop and not {self.}XmlChildTop.Removed ? {self.}XmlChildTop : fallback_.Top; end; function TblBorders.WriteXmlChildTop(_p1: any; _p2: any); @@ -14494,24 +15848,25 @@ begin if ifObj({self.}XmlChildTop) then {self.}RemoveChild({self.}XmlChildTop); end - else if v is class(TblBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildTop := v; container_.Set({self.}XmlChildTop); end else begin - raise "Invalid assignment: Top expects TblBorder or nil"; + raise "Invalid assignment: Top expects Bdr or nil"; end end; -function TblBorders.ReadXmlChildLeft(): TblBorder; +function TblBorders.ReadXmlChildLeft(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildLeft) or {self.}XmlChildLeft.Removed) then begin - {self.}XmlChildLeft := new TblBorder(self, {self.}Prefix, "left"); + {self.}XmlChildLeft := new Bdr(self, {self.}Prefix, "left"); container_.Set({self.}XmlChildLeft); end - return {self.}XmlChildLeft and not {self.}XmlChildLeft.Removed ? {self.}XmlChildLeft : fallback_.XmlChildLeft; + return {self.}XmlChildLeft and not {self.}XmlChildLeft.Removed ? {self.}XmlChildLeft : fallback_.Left; end; function TblBorders.WriteXmlChildLeft(_p1: any; _p2: any); @@ -14522,24 +15877,25 @@ begin if ifObj({self.}XmlChildLeft) then {self.}RemoveChild({self.}XmlChildLeft); end - else if v is class(TblBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildLeft := v; container_.Set({self.}XmlChildLeft); end else begin - raise "Invalid assignment: Left expects TblBorder or nil"; + raise "Invalid assignment: Left expects Bdr or nil"; end end; -function TblBorders.ReadXmlChildBottom(): TblBorder; +function TblBorders.ReadXmlChildBottom(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildBottom) or {self.}XmlChildBottom.Removed) then begin - {self.}XmlChildBottom := new TblBorder(self, {self.}Prefix, "bottom"); + {self.}XmlChildBottom := new Bdr(self, {self.}Prefix, "bottom"); container_.Set({self.}XmlChildBottom); end - return {self.}XmlChildBottom and not {self.}XmlChildBottom.Removed ? {self.}XmlChildBottom : fallback_.XmlChildBottom; + return {self.}XmlChildBottom and not {self.}XmlChildBottom.Removed ? {self.}XmlChildBottom : fallback_.Bottom; end; function TblBorders.WriteXmlChildBottom(_p1: any; _p2: any); @@ -14550,24 +15906,25 @@ begin if ifObj({self.}XmlChildBottom) then {self.}RemoveChild({self.}XmlChildBottom); end - else if v is class(TblBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildBottom := v; container_.Set({self.}XmlChildBottom); end else begin - raise "Invalid assignment: Bottom expects TblBorder or nil"; + raise "Invalid assignment: Bottom expects Bdr or nil"; end end; -function TblBorders.ReadXmlChildRight(): TblBorder; +function TblBorders.ReadXmlChildRight(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildRight) or {self.}XmlChildRight.Removed) then begin - {self.}XmlChildRight := new TblBorder(self, {self.}Prefix, "right"); + {self.}XmlChildRight := new Bdr(self, {self.}Prefix, "right"); container_.Set({self.}XmlChildRight); end - return {self.}XmlChildRight and not {self.}XmlChildRight.Removed ? {self.}XmlChildRight : fallback_.XmlChildRight; + return {self.}XmlChildRight and not {self.}XmlChildRight.Removed ? {self.}XmlChildRight : fallback_.Right; end; function TblBorders.WriteXmlChildRight(_p1: any; _p2: any); @@ -14578,24 +15935,25 @@ begin if ifObj({self.}XmlChildRight) then {self.}RemoveChild({self.}XmlChildRight); end - else if v is class(TblBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildRight := v; container_.Set({self.}XmlChildRight); end else begin - raise "Invalid assignment: Right expects TblBorder or nil"; + raise "Invalid assignment: Right expects Bdr or nil"; end end; -function TblBorders.ReadXmlChildInsideH(): TblBorder; +function TblBorders.ReadXmlChildInsideH(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildInsideH) or {self.}XmlChildInsideH.Removed) then begin - {self.}XmlChildInsideH := new TblBorder(self, {self.}Prefix, "insideH"); + {self.}XmlChildInsideH := new Bdr(self, {self.}Prefix, "insideH"); container_.Set({self.}XmlChildInsideH); end - return {self.}XmlChildInsideH and not {self.}XmlChildInsideH.Removed ? {self.}XmlChildInsideH : fallback_.XmlChildInsideH; + return {self.}XmlChildInsideH and not {self.}XmlChildInsideH.Removed ? {self.}XmlChildInsideH : fallback_.InsideH; end; function TblBorders.WriteXmlChildInsideH(_p1: any; _p2: any); @@ -14606,24 +15964,25 @@ begin if ifObj({self.}XmlChildInsideH) then {self.}RemoveChild({self.}XmlChildInsideH); end - else if v is class(TblBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildInsideH := v; container_.Set({self.}XmlChildInsideH); end else begin - raise "Invalid assignment: InsideH expects TblBorder or nil"; + raise "Invalid assignment: InsideH expects Bdr or nil"; end end; -function TblBorders.ReadXmlChildInsideV(): TblBorder; +function TblBorders.ReadXmlChildInsideV(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildInsideV) or {self.}XmlChildInsideV.Removed) then begin - {self.}XmlChildInsideV := new TblBorder(self, {self.}Prefix, "insideV"); + {self.}XmlChildInsideV := new Bdr(self, {self.}Prefix, "insideV"); container_.Set({self.}XmlChildInsideV); end - return {self.}XmlChildInsideV and not {self.}XmlChildInsideV.Removed ? {self.}XmlChildInsideV : fallback_.XmlChildInsideV; + return {self.}XmlChildInsideV and not {self.}XmlChildInsideV.Removed ? {self.}XmlChildInsideV : fallback_.InsideV; end; function TblBorders.WriteXmlChildInsideV(_p1: any; _p2: any); @@ -14634,179 +15993,31 @@ begin if ifObj({self.}XmlChildInsideV) then {self.}RemoveChild({self.}XmlChildInsideV); end - else if v is class(TblBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildInsideV := v; container_.Set({self.}XmlChildInsideV); end else begin - raise "Invalid assignment: InsideV expects TblBorder or nil"; + raise "Invalid assignment: InsideV expects Bdr or nil"; end end; -function TblBorder.Create();overload; +function TblGrid.create();overload; begin - {self.}Create(nil, "w", ""); + {self.}create(nil, "w", "tblGrid"); end; -function TblBorder.Create(_node: XmlNode);overload; +function TblGrid.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblBorder.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblGrid.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); -end; - -function TblBorder.Init();override; -begin - pre := {self.}Prefix ? {self.}Prefix + ":" : ""; - attributes_ := array(); - attributes_pf_ := array( - pre + "val": makeweakref(thisFunction(WriteXmlAttrVal)), - pre + "color": makeweakref(thisFunction(WriteXmlAttrColor)), - pre + "space": makeweakref(thisFunction(WriteXmlAttrSpace)), - pre + "themeColor": makeweakref(thisFunction(WriteXmlAttrThemeColor)), - pre + "themeTint": makeweakref(thisFunction(WriteXmlAttrThemeTint)), - pre + "sz": makeweakref(thisFunction(WriteXmlAttrSz)), - ); - sorted_child_ := array( - ); - container_ := new TSOfficeContainer(sorted_child_); -end; - -function TblBorder.Copy(_obj: TblBorder);override; -begin - tslassigning_backup := tslassigning; - tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); - if not ifnil(_obj.Val) then - {self.}Val := _obj.Val; - if not ifnil(_obj.Color) then - {self.}Color := _obj.Color; - if not ifnil(_obj.Space) then - {self.}Space := _obj.Space; - if not ifnil(_obj.ThemeColor) then - {self.}ThemeColor := _obj.ThemeColor; - if not ifnil(_obj.ThemeTint) then - {self.}ThemeTint := _obj.ThemeTint; - if not ifnil(_obj.Sz) then - {self.}Sz := _obj.Sz; - tslassigning := tslassigning_backup; -end; - -function TblBorder.ConvertToPoint();override; -begin - if not ifnil({self.}XmlAttrSz) then - {self.}Sz := TSSafeUnitConverter.EighthPointToPoints({self.}XmlAttrSz.Value); -end; - -function TblBorder.ReadXmlAttrVal(); -begin - return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; -end; - -function TblBorder.WriteXmlAttrVal(_value: any); -begin - if ifnil({self.}XmlAttrVal) then - begin - {self.}XmlAttrVal := new OpenXmlAttribute({self.}Prefix, "val", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "val" : "val"] := {self.}XmlAttrVal; - end - {self.}XmlAttrVal.Value := _value; -end; - -function TblBorder.ReadXmlAttrColor(); -begin - return ifnil({self.}XmlAttrColor.Value) ? fallback_.XmlAttrColor.Value : {self.}XmlAttrColor.Value; -end; - -function TblBorder.WriteXmlAttrColor(_value: any); -begin - if ifnil({self.}XmlAttrColor) then - begin - {self.}XmlAttrColor := new OpenXmlAttribute({self.}Prefix, "color", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "color" : "color"] := {self.}XmlAttrColor; - end - {self.}XmlAttrColor.Value := _value; -end; - -function TblBorder.ReadXmlAttrSpace(); -begin - return ifnil({self.}XmlAttrSpace.Value) ? fallback_.XmlAttrSpace.Value : {self.}XmlAttrSpace.Value; -end; - -function TblBorder.WriteXmlAttrSpace(_value: any); -begin - if ifnil({self.}XmlAttrSpace) then - begin - {self.}XmlAttrSpace := new OpenXmlAttribute({self.}Prefix, "space", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "space" : "space"] := {self.}XmlAttrSpace; - end - {self.}XmlAttrSpace.Value := _value; -end; - -function TblBorder.ReadXmlAttrThemeColor(); -begin - return ifnil({self.}XmlAttrThemeColor.Value) ? fallback_.XmlAttrThemeColor.Value : {self.}XmlAttrThemeColor.Value; -end; - -function TblBorder.WriteXmlAttrThemeColor(_value: any); -begin - if ifnil({self.}XmlAttrThemeColor) then - begin - {self.}XmlAttrThemeColor := new OpenXmlAttribute({self.}Prefix, "themeColor", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "themeColor" : "themeColor"] := {self.}XmlAttrThemeColor; - end - {self.}XmlAttrThemeColor.Value := _value; -end; - -function TblBorder.ReadXmlAttrThemeTint(); -begin - return ifnil({self.}XmlAttrThemeTint.Value) ? fallback_.XmlAttrThemeTint.Value : {self.}XmlAttrThemeTint.Value; -end; - -function TblBorder.WriteXmlAttrThemeTint(_value: any); -begin - if ifnil({self.}XmlAttrThemeTint) then - begin - {self.}XmlAttrThemeTint := new OpenXmlAttribute({self.}Prefix, "themeTint", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "themeTint" : "themeTint"] := {self.}XmlAttrThemeTint; - end - {self.}XmlAttrThemeTint.Value := _value; -end; - -function TblBorder.ReadXmlAttrSz(); -begin - return ifnil({self.}XmlAttrSz.Value) ? fallback_.XmlAttrSz.Value : {self.}XmlAttrSz.Value; -end; - -function TblBorder.WriteXmlAttrSz(_value: any); -begin - if ifnil({self.}XmlAttrSz) then - begin - {self.}XmlAttrSz := new OpenXmlAttribute({self.}Prefix, "sz", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "sz" : "sz"] := {self.}XmlAttrSz; - end - {self.}XmlAttrSz.Value := _value; -end; - -function TblGrid.Create();overload; -begin - {self.}Create(nil, "w", "tblGrid"); -end; - -function TblGrid.Create(_node: XmlNode);overload; -begin - inherited Create(_node: XmlNode); -end; - -function TblGrid.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; -begin - setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblGrid.Init();override; @@ -14825,10 +16036,19 @@ function TblGrid.Copy(_obj: TblGrid);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function TblGrid.Clone(): TblGrid;override; +begin + obj := new TblGrid(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function TblGrid.ConvertToPoint();override; begin elems := {self.}GridCols(); @@ -14865,6 +16085,7 @@ end; function TblGrid.AddGridCol(): GridCol; begin obj := new GridCol(self, {self.}Prefix, "gridCol"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -14872,24 +16093,25 @@ end; function TblGrid.AppendGridCol(): GridCol; begin obj := new GridCol(self, {self.}Prefix, "gridCol"); + obj.Enable := true; container_.Append(obj); return obj; end; -function GridCol.Create();overload; +function GridCol.create();overload; begin - {self.}Create(nil, "w", "gridCol"); + {self.}create(nil, "w", "gridCol"); end; -function GridCol.Create(_node: XmlNode);overload; +function GridCol.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function GridCol.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function GridCol.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function GridCol.Init();override; @@ -14908,12 +16130,20 @@ function GridCol.Copy(_obj: GridCol);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.w) then {self.}w := _obj.w; tslassigning := tslassigning_backup; end; +function GridCol.Clone(): GridCol;override; +begin + obj := new GridCol(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}w) then + obj.w := {self.}w; + return obj; +end; + function GridCol.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrw) then @@ -14935,20 +16165,20 @@ begin {self.}XmlAttrw.Value := _value; end; -function Tr.Create();overload; +function Tr.create();overload; begin - {self.}Create(nil, "w", "tr"); + {self.}create(nil, "w", "tr"); end; -function Tr.Create(_node: XmlNode);overload; +function Tr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Tr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Tr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Tr.Init();override; @@ -14962,9 +16192,10 @@ begin "w:rsidTr": makeweakref(thisFunction(WriteXmlAttrRsidTr)), ); sorted_child_ := array( - pre + "trPr": array(0, makeweakref(thisFunction(ReadXmlChildTrPr))), - pre + "sdt": array(1, makeweakref(thisFunction(AppendSdt))), - pre + "tc": array(2, makeweakref(thisFunction(AppendTc))), + pre + "tblPrEx": array(0, makeweakref(thisFunction(ReadXmlChildTblPrEx))), + pre + "trPr": array(1, makeweakref(thisFunction(ReadXmlChildTrPr))), + pre + "sdt": array(2, makeweakref(thisFunction(AppendSdt))), + pre + "tc": array(3, makeweakref(thisFunction(AppendTc))), ); container_ := new TSOfficeContainer(sorted_child_); end; @@ -14973,7 +16204,7 @@ function Tr.Copy(_obj: Tr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.RsidR) then {self.}RsidR := _obj.RsidR; if not ifnil(_obj.ParaId) then @@ -14982,13 +16213,41 @@ begin {self.}TextId := _obj.TextId; if not ifnil(_obj.RsidTr) then {self.}RsidTr := _obj.RsidTr; + if not ifnil(_obj.XmlChildTblPrEx) then + {self.}TblPrEx.Copy(_obj.XmlChildTblPrEx); if not ifnil(_obj.XmlChildTrPr) then {self.}TrPr.Copy(_obj.XmlChildTrPr); tslassigning := tslassigning_backup; end; +function Tr.Clone(): Tr;override; +begin + obj := new Tr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}RsidR) then + obj.RsidR := {self.}RsidR; + if not ifnil({self.}ParaId) then + obj.ParaId := {self.}ParaId; + if not ifnil({self.}TextId) then + obj.TextId := {self.}TextId; + if not ifnil({self.}RsidTr) then + obj.RsidTr := {self.}RsidTr; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "tblPrEx": obj.TblPrEx := element.Clone(); + pre + "trPr": obj.TrPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Tr.ConvertToPoint();override; begin + if not ifnil({self.}XmlChildTblPrEx) then + {self.}XmlChildTblPrEx.ConvertToPoint(); if not ifnil({self.}XmlChildTrPr) then {self.}XmlChildTrPr.ConvertToPoint(); elems := {self.}Sdts(); @@ -15059,6 +16318,35 @@ begin {self.}XmlAttrRsidTr.Value := _value; end; +function Tr.ReadXmlChildTblPrEx(): TblPrEx; +begin + if tslassigning and (ifnil({self.}XmlChildTblPrEx) or {self.}XmlChildTblPrEx.Removed) then + begin + {self.}XmlChildTblPrEx := new TblPrEx(self, {self.}Prefix, "tblPrEx"); + container_.Set({self.}XmlChildTblPrEx); + end + return {self.}XmlChildTblPrEx and not {self.}XmlChildTblPrEx.Removed ? {self.}XmlChildTblPrEx : fallback_.TblPrEx; +end; + +function Tr.WriteXmlChildTblPrEx(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblPrEx) then + {self.}RemoveChild({self.}XmlChildTblPrEx); + end + else if v is class(TblPrEx) then + begin + v.Parent := self; + {self.}XmlChildTblPrEx := v; + container_.Set({self.}XmlChildTblPrEx); + end + else begin + raise "Invalid assignment: TblPrEx expects TblPrEx or nil"; + end +end; + function Tr.ReadXmlChildTrPr(): TrPr; begin if tslassigning and (ifnil({self.}XmlChildTrPr) or {self.}XmlChildTrPr.Removed) then @@ -15066,7 +16354,7 @@ begin {self.}XmlChildTrPr := new TrPr(self, {self.}Prefix, "trPr"); container_.Set({self.}XmlChildTrPr); end - return {self.}XmlChildTrPr and not {self.}XmlChildTrPr.Removed ? {self.}XmlChildTrPr : fallback_.XmlChildTrPr; + return {self.}XmlChildTrPr and not {self.}XmlChildTrPr.Removed ? {self.}XmlChildTrPr : fallback_.TrPr; end; function Tr.WriteXmlChildTrPr(_p1: any; _p2: any); @@ -15079,6 +16367,7 @@ begin end else if v is class(TrPr) then begin + v.Parent := self; {self.}XmlChildTrPr := v; container_.Set({self.}XmlChildTrPr); end @@ -15142,6 +16431,7 @@ end; function Tr.AddSdt(): Sdt; begin obj := new Sdt(self, {self.}Prefix, "sdt"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -15149,6 +16439,7 @@ end; function Tr.AddTc(): Tc; begin obj := new Tc(self, {self.}Prefix, "tc"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -15156,6 +16447,7 @@ end; function Tr.AppendSdt(): Sdt; begin obj := new Sdt(self, {self.}Prefix, "sdt"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -15163,24 +16455,576 @@ end; function Tr.AppendTc(): Tc; begin obj := new Tc(self, {self.}Prefix, "tc"); + obj.Enable := true; container_.Append(obj); return obj; end; -function TrPr.Create();overload; +function TblPrEx.create();overload; begin - {self.}Create(nil, "w", "trPr"); + {self.}create(nil, "w", "tblPrEx"); end; -function TrPr.Create(_node: XmlNode);overload; +function TblPrEx.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TrPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblPrEx.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); +end; + +function TblPrEx.Init();override; +begin + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + attributes_ := array(); + attributes_pf_ := array( + ); + sorted_child_ := array( + pre + "jc": array(0, makeweakref(thisFunction(ReadXmlChildJc))), + pre + "shd": array(1, makeweakref(thisFunction(ReadXmlChildShd))), + pre + "tblBorders": array(2, makeweakref(thisFunction(ReadXmlChildTblBorders))), + pre + "tblCellMar": array(3, makeweakref(thisFunction(ReadXmlChildTblCellMar))), + pre + "tblCellSpacing": array(4, makeweakref(thisFunction(ReadXmlChildTblCellSpacing))), + pre + "tblInd": array(5, makeweakref(thisFunction(ReadXmlChildTblInd))), + pre + "tblLayout": array(6, makeweakref(thisFunction(ReadXmlChildTblLayout))), + pre + "tblLook": array(7, makeweakref(thisFunction(ReadXmlChildTblLook))), + pre + "tblW": array(8, makeweakref(thisFunction(ReadXmlChildTblW))), + pre + "tblPrExChange": array(9, makeweakref(thisFunction(ReadXmlChildTblPrExChange))), + ); + container_ := new TSOfficeContainer(sorted_child_); +end; + +function TblPrEx.Copy(_obj: TblPrEx);override; +begin + tslassigning_backup := tslassigning; + tslassigning := 1; + inherited Copy(_obj); + if not ifnil(_obj.XmlChildJc) then + {self.}Jc.Copy(_obj.XmlChildJc); + if not ifnil(_obj.XmlChildShd) then + {self.}Shd.Copy(_obj.XmlChildShd); + if not ifnil(_obj.XmlChildTblBorders) then + {self.}TblBorders.Copy(_obj.XmlChildTblBorders); + if not ifnil(_obj.XmlChildTblCellMar) then + {self.}TblCellMar.Copy(_obj.XmlChildTblCellMar); + if not ifnil(_obj.XmlChildTblCellSpacing) then + {self.}TblCellSpacing.Copy(_obj.XmlChildTblCellSpacing); + if not ifnil(_obj.XmlChildTblInd) then + {self.}TblInd.Copy(_obj.XmlChildTblInd); + if not ifnil(_obj.XmlChildTblLayout) then + {self.}TblLayout.Copy(_obj.XmlChildTblLayout); + if not ifnil(_obj.XmlChildTblLook) then + {self.}TblLook.Copy(_obj.XmlChildTblLook); + if not ifnil(_obj.XmlChildTblW) then + {self.}TblW.Copy(_obj.XmlChildTblW); + if not ifnil(_obj.XmlChildTblPrExChange) then + {self.}TblPrExChange.Copy(_obj.XmlChildTblPrExChange); + tslassigning := tslassigning_backup; +end; + +function TblPrEx.Clone(): TblPrEx;override; +begin + obj := new TblPrEx(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "jc": obj.Jc := element.Clone(); + pre + "shd": obj.Shd := element.Clone(); + pre + "tblBorders": obj.TblBorders := element.Clone(); + pre + "tblCellMar": obj.TblCellMar := element.Clone(); + pre + "tblCellSpacing": obj.TblCellSpacing := element.Clone(); + pre + "tblInd": obj.TblInd := element.Clone(); + pre + "tblLayout": obj.TblLayout := element.Clone(); + pre + "tblLook": obj.TblLook := element.Clone(); + pre + "tblW": obj.TblW := element.Clone(); + pre + "tblPrExChange": obj.TblPrExChange := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + +function TblPrEx.ConvertToPoint();override; +begin + if not ifnil({self.}XmlChildJc) then + {self.}XmlChildJc.ConvertToPoint(); + if not ifnil({self.}XmlChildShd) then + {self.}XmlChildShd.ConvertToPoint(); + if not ifnil({self.}XmlChildTblBorders) then + {self.}XmlChildTblBorders.ConvertToPoint(); + if not ifnil({self.}XmlChildTblCellMar) then + {self.}XmlChildTblCellMar.ConvertToPoint(); + if not ifnil({self.}XmlChildTblCellSpacing) then + {self.}XmlChildTblCellSpacing.ConvertToPoint(); + if not ifnil({self.}XmlChildTblInd) then + {self.}XmlChildTblInd.ConvertToPoint(); + if not ifnil({self.}XmlChildTblLayout) then + {self.}XmlChildTblLayout.ConvertToPoint(); + if not ifnil({self.}XmlChildTblLook) then + {self.}XmlChildTblLook.ConvertToPoint(); + if not ifnil({self.}XmlChildTblW) then + {self.}XmlChildTblW.ConvertToPoint(); + if not ifnil({self.}XmlChildTblPrExChange) then + {self.}XmlChildTblPrExChange.ConvertToPoint(); +end; + +function TblPrEx.ReadXmlChildJc(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildJc) or {self.}XmlChildJc.Removed) then + begin + {self.}XmlChildJc := new PureWVal(self, {self.}Prefix, "jc"); + container_.Set({self.}XmlChildJc); + end + return {self.}XmlChildJc and not {self.}XmlChildJc.Removed ? {self.}XmlChildJc : fallback_.Jc; +end; + +function TblPrEx.WriteXmlChildJc(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildJc) then + {self.}RemoveChild({self.}XmlChildJc); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildJc := v; + container_.Set({self.}XmlChildJc); + end + else begin + raise "Invalid assignment: Jc expects PureWVal or nil"; + end +end; + +function TblPrEx.ReadXmlChildShd(): Shd; +begin + if tslassigning and (ifnil({self.}XmlChildShd) or {self.}XmlChildShd.Removed) then + begin + {self.}XmlChildShd := new Shd(self, {self.}Prefix, "shd"); + container_.Set({self.}XmlChildShd); + end + return {self.}XmlChildShd and not {self.}XmlChildShd.Removed ? {self.}XmlChildShd : fallback_.Shd; +end; + +function TblPrEx.WriteXmlChildShd(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShd) then + {self.}RemoveChild({self.}XmlChildShd); + end + else if v is class(Shd) then + begin + v.Parent := self; + {self.}XmlChildShd := v; + container_.Set({self.}XmlChildShd); + end + else begin + raise "Invalid assignment: Shd expects Shd or nil"; + end +end; + +function TblPrEx.ReadXmlChildTblBorders(): TblBorders; +begin + if tslassigning and (ifnil({self.}XmlChildTblBorders) or {self.}XmlChildTblBorders.Removed) then + begin + {self.}XmlChildTblBorders := new TblBorders(self, {self.}Prefix, "tblBorders"); + container_.Set({self.}XmlChildTblBorders); + end + return {self.}XmlChildTblBorders and not {self.}XmlChildTblBorders.Removed ? {self.}XmlChildTblBorders : fallback_.TblBorders; +end; + +function TblPrEx.WriteXmlChildTblBorders(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblBorders) then + {self.}RemoveChild({self.}XmlChildTblBorders); + end + else if v is class(TblBorders) then + begin + v.Parent := self; + {self.}XmlChildTblBorders := v; + container_.Set({self.}XmlChildTblBorders); + end + else begin + raise "Invalid assignment: TblBorders expects TblBorders or nil"; + end +end; + +function TblPrEx.ReadXmlChildTblCellMar(): TblCellMar; +begin + if tslassigning and (ifnil({self.}XmlChildTblCellMar) or {self.}XmlChildTblCellMar.Removed) then + begin + {self.}XmlChildTblCellMar := new TblCellMar(self, {self.}Prefix, "tblCellMar"); + container_.Set({self.}XmlChildTblCellMar); + end + return {self.}XmlChildTblCellMar and not {self.}XmlChildTblCellMar.Removed ? {self.}XmlChildTblCellMar : fallback_.TblCellMar; +end; + +function TblPrEx.WriteXmlChildTblCellMar(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblCellMar) then + {self.}RemoveChild({self.}XmlChildTblCellMar); + end + else if v is class(TblCellMar) then + begin + v.Parent := self; + {self.}XmlChildTblCellMar := v; + container_.Set({self.}XmlChildTblCellMar); + end + else begin + raise "Invalid assignment: TblCellMar expects TblCellMar or nil"; + end +end; + +function TblPrEx.ReadXmlChildTblCellSpacing(): TblCellSpacing; +begin + if tslassigning and (ifnil({self.}XmlChildTblCellSpacing) or {self.}XmlChildTblCellSpacing.Removed) then + begin + {self.}XmlChildTblCellSpacing := new TblCellSpacing(self, {self.}Prefix, "tblCellSpacing"); + container_.Set({self.}XmlChildTblCellSpacing); + end + return {self.}XmlChildTblCellSpacing and not {self.}XmlChildTblCellSpacing.Removed ? {self.}XmlChildTblCellSpacing : fallback_.TblCellSpacing; +end; + +function TblPrEx.WriteXmlChildTblCellSpacing(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblCellSpacing) then + {self.}RemoveChild({self.}XmlChildTblCellSpacing); + end + else if v is class(TblCellSpacing) then + begin + v.Parent := self; + {self.}XmlChildTblCellSpacing := v; + container_.Set({self.}XmlChildTblCellSpacing); + end + else begin + raise "Invalid assignment: TblCellSpacing expects TblCellSpacing or nil"; + end +end; + +function TblPrEx.ReadXmlChildTblInd(): TblInd; +begin + if tslassigning and (ifnil({self.}XmlChildTblInd) or {self.}XmlChildTblInd.Removed) then + begin + {self.}XmlChildTblInd := new TblInd(self, {self.}Prefix, "tblInd"); + container_.Set({self.}XmlChildTblInd); + end + return {self.}XmlChildTblInd and not {self.}XmlChildTblInd.Removed ? {self.}XmlChildTblInd : fallback_.TblInd; +end; + +function TblPrEx.WriteXmlChildTblInd(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblInd) then + {self.}RemoveChild({self.}XmlChildTblInd); + end + else if v is class(TblInd) then + begin + v.Parent := self; + {self.}XmlChildTblInd := v; + container_.Set({self.}XmlChildTblInd); + end + else begin + raise "Invalid assignment: TblInd expects TblInd or nil"; + end +end; + +function TblPrEx.ReadXmlChildTblLayout(): TblLayout; +begin + if tslassigning and (ifnil({self.}XmlChildTblLayout) or {self.}XmlChildTblLayout.Removed) then + begin + {self.}XmlChildTblLayout := new TblLayout(self, {self.}Prefix, "tblLayout"); + container_.Set({self.}XmlChildTblLayout); + end + return {self.}XmlChildTblLayout and not {self.}XmlChildTblLayout.Removed ? {self.}XmlChildTblLayout : fallback_.TblLayout; +end; + +function TblPrEx.WriteXmlChildTblLayout(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblLayout) then + {self.}RemoveChild({self.}XmlChildTblLayout); + end + else if v is class(TblLayout) then + begin + v.Parent := self; + {self.}XmlChildTblLayout := v; + container_.Set({self.}XmlChildTblLayout); + end + else begin + raise "Invalid assignment: TblLayout expects TblLayout or nil"; + end +end; + +function TblPrEx.ReadXmlChildTblLook(): TblLook; +begin + if tslassigning and (ifnil({self.}XmlChildTblLook) or {self.}XmlChildTblLook.Removed) then + begin + {self.}XmlChildTblLook := new TblLook(self, {self.}Prefix, "tblLook"); + container_.Set({self.}XmlChildTblLook); + end + return {self.}XmlChildTblLook and not {self.}XmlChildTblLook.Removed ? {self.}XmlChildTblLook : fallback_.TblLook; +end; + +function TblPrEx.WriteXmlChildTblLook(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblLook) then + {self.}RemoveChild({self.}XmlChildTblLook); + end + else if v is class(TblLook) then + begin + v.Parent := self; + {self.}XmlChildTblLook := v; + container_.Set({self.}XmlChildTblLook); + end + else begin + raise "Invalid assignment: TblLook expects TblLook or nil"; + end +end; + +function TblPrEx.ReadXmlChildTblW(): TblW; +begin + if tslassigning and (ifnil({self.}XmlChildTblW) or {self.}XmlChildTblW.Removed) then + begin + {self.}XmlChildTblW := new TblW(self, {self.}Prefix, "tblW"); + container_.Set({self.}XmlChildTblW); + end + return {self.}XmlChildTblW and not {self.}XmlChildTblW.Removed ? {self.}XmlChildTblW : fallback_.TblW; +end; + +function TblPrEx.WriteXmlChildTblW(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblW) then + {self.}RemoveChild({self.}XmlChildTblW); + end + else if v is class(TblW) then + begin + v.Parent := self; + {self.}XmlChildTblW := v; + container_.Set({self.}XmlChildTblW); + end + else begin + raise "Invalid assignment: TblW expects TblW or nil"; + end +end; + +function TblPrEx.ReadXmlChildTblPrExChange(): TblPrExChange; +begin + if tslassigning and (ifnil({self.}XmlChildTblPrExChange) or {self.}XmlChildTblPrExChange.Removed) then + begin + {self.}XmlChildTblPrExChange := new TblPrExChange(self, {self.}Prefix, "tblPrExChange"); + container_.Set({self.}XmlChildTblPrExChange); + end + return {self.}XmlChildTblPrExChange and not {self.}XmlChildTblPrExChange.Removed ? {self.}XmlChildTblPrExChange : fallback_.TblPrExChange; +end; + +function TblPrEx.WriteXmlChildTblPrExChange(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblPrExChange) then + {self.}RemoveChild({self.}XmlChildTblPrExChange); + end + else if v is class(TblPrExChange) then + begin + v.Parent := self; + {self.}XmlChildTblPrExChange := v; + container_.Set({self.}XmlChildTblPrExChange); + end + else begin + raise "Invalid assignment: TblPrExChange expects TblPrExChange or nil"; + end +end; + +function TblPrExChange.create();overload; +begin + {self.}create(nil, "w", "tblPrExChange"); +end; + +function TblPrExChange.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function TblPrExChange.create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); + inherited create(_parent, _prefix, _local_name); +end; + +function TblPrExChange.Init();override; +begin + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + attributes_ := array(); + attributes_pf_ := array( + "w:author": makeweakref(thisFunction(WriteXmlAttrAuthor)), + "w:date": makeweakref(thisFunction(WriteXmlAttrDate)), + "w:id": makeweakref(thisFunction(WriteXmlAttrId)), + ); + sorted_child_ := array( + pre + "tblPrEx": array(0, makeweakref(thisFunction(ReadXmlChildTblPrEx))), + ); + container_ := new TSOfficeContainer(sorted_child_); +end; + +function TblPrExChange.Copy(_obj: TblPrExChange);override; +begin + tslassigning_backup := tslassigning; + tslassigning := 1; + inherited Copy(_obj); + if not ifnil(_obj.Author) then + {self.}Author := _obj.Author; + if not ifnil(_obj.Date) then + {self.}Date := _obj.Date; + if not ifnil(_obj.Id) then + {self.}Id := _obj.Id; + if not ifnil(_obj.XmlChildTblPrEx) then + {self.}TblPrEx.Copy(_obj.XmlChildTblPrEx); + tslassigning := tslassigning_backup; +end; + +function TblPrExChange.Clone(): TblPrExChange;override; +begin + obj := new TblPrExChange(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Author) then + obj.Author := {self.}Author; + if not ifnil({self.}Date) then + obj.Date := {self.}Date; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "tblPrEx": obj.TblPrEx := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + +function TblPrExChange.ConvertToPoint();override; +begin + if not ifnil({self.}XmlChildTblPrEx) then + {self.}XmlChildTblPrEx.ConvertToPoint(); +end; + +function TblPrExChange.ReadXmlAttrAuthor(); +begin + return ifnil({self.}XmlAttrAuthor.Value) ? fallback_.XmlAttrAuthor.Value : {self.}XmlAttrAuthor.Value; +end; + +function TblPrExChange.WriteXmlAttrAuthor(_value: any); +begin + if ifnil({self.}XmlAttrAuthor) then + begin + {self.}XmlAttrAuthor := new OpenXmlAttribute("w", "author", nil); + attributes_["w:author"] := {self.}XmlAttrAuthor; + end + {self.}XmlAttrAuthor.Value := _value; +end; + +function TblPrExChange.ReadXmlAttrDate(); +begin + return ifnil({self.}XmlAttrDate.Value) ? fallback_.XmlAttrDate.Value : {self.}XmlAttrDate.Value; +end; + +function TblPrExChange.WriteXmlAttrDate(_value: any); +begin + if ifnil({self.}XmlAttrDate) then + begin + {self.}XmlAttrDate := new OpenXmlAttribute("w", "date", nil); + attributes_["w:date"] := {self.}XmlAttrDate; + end + {self.}XmlAttrDate.Value := _value; +end; + +function TblPrExChange.ReadXmlAttrId(); +begin + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; +end; + +function TblPrExChange.WriteXmlAttrId(_value: any); +begin + if ifnil({self.}XmlAttrId) then + begin + {self.}XmlAttrId := new OpenXmlAttribute("w", "id", nil); + attributes_["w:id"] := {self.}XmlAttrId; + end + {self.}XmlAttrId.Value := _value; +end; + +function TblPrExChange.ReadXmlChildTblPrEx(): TblPrEx; +begin + if tslassigning and (ifnil({self.}XmlChildTblPrEx) or {self.}XmlChildTblPrEx.Removed) then + begin + {self.}XmlChildTblPrEx := new TblPrEx(self, {self.}Prefix, "tblPrEx"); + container_.Set({self.}XmlChildTblPrEx); + end + return {self.}XmlChildTblPrEx and not {self.}XmlChildTblPrEx.Removed ? {self.}XmlChildTblPrEx : fallback_.TblPrEx; +end; + +function TblPrExChange.WriteXmlChildTblPrEx(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTblPrEx) then + {self.}RemoveChild({self.}XmlChildTblPrEx); + end + else if v is class(TblPrEx) then + begin + v.Parent := self; + {self.}XmlChildTblPrEx := v; + container_.Set({self.}XmlChildTblPrEx); + end + else begin + raise "Invalid assignment: TblPrEx expects TblPrEx or nil"; + end +end; + +function TrPr.create();overload; +begin + {self.}create(nil, "w", "trPr"); +end; + +function TrPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function TrPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); + inherited create(_parent, _prefix, _local_name); end; function TrPr.Init();override; @@ -15205,7 +17049,7 @@ function TrPr.Copy(_obj: TrPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTrHeight) then {self.}TrHeight.Copy(_obj.XmlChildTrHeight); if not ifnil(_obj.XmlChildTblHeader) then @@ -15223,6 +17067,27 @@ begin tslassigning := tslassigning_backup; end; +function TrPr.Clone(): TrPr;override; +begin + obj := new TrPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "trHeight": obj.TrHeight := element.Clone(); + pre + "tblHeader": obj.TblHeader := element.Clone(); + pre + "jc": obj.Jc := element.Clone(); + pre + "cantSplit": obj.CantSplit := element.Clone(); + pre + "cnfStyle": obj.CnfStyle := element.Clone(); + pre + "ins": obj.Ins := element.Clone(); + pre + "del": obj.Del := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function TrPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTrHeight) then @@ -15244,7 +17109,7 @@ begin {self.}XmlChildTblHeader := new OpenXmlSimpleType(self, {self.}Prefix, "tblHeader"); container_.Set({self.}XmlChildTblHeader); end - return {self.}XmlChildTblHeader and not {self.}XmlChildTblHeader.Removed ? {self.}XmlChildTblHeader : fallback_.XmlChildTblHeader; + return {self.}XmlChildTblHeader and not {self.}XmlChildTblHeader.Removed ? {self.}XmlChildTblHeader : fallback_.TblHeader; end; function TrPr.WriteXmlChildTblHeader(_value: nil_or_OpenXmlSimpleType); @@ -15256,6 +17121,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildTblHeader := _value; container_.Set({self.}XmlChildTblHeader); end @@ -15271,7 +17137,7 @@ begin {self.}XmlChildCantSplit := new OpenXmlSimpleType(self, {self.}Prefix, "cantSplit"); container_.Set({self.}XmlChildCantSplit); end - return {self.}XmlChildCantSplit and not {self.}XmlChildCantSplit.Removed ? {self.}XmlChildCantSplit : fallback_.XmlChildCantSplit; + return {self.}XmlChildCantSplit and not {self.}XmlChildCantSplit.Removed ? {self.}XmlChildCantSplit : fallback_.CantSplit; end; function TrPr.WriteXmlChildCantSplit(_value: nil_or_OpenXmlSimpleType); @@ -15283,6 +17149,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildCantSplit := _value; container_.Set({self.}XmlChildCantSplit); end @@ -15298,7 +17165,7 @@ begin {self.}XmlChildTrHeight := new TrHeight(self, {self.}Prefix, "trHeight"); container_.Set({self.}XmlChildTrHeight); end - return {self.}XmlChildTrHeight and not {self.}XmlChildTrHeight.Removed ? {self.}XmlChildTrHeight : fallback_.XmlChildTrHeight; + return {self.}XmlChildTrHeight and not {self.}XmlChildTrHeight.Removed ? {self.}XmlChildTrHeight : fallback_.TrHeight; end; function TrPr.WriteXmlChildTrHeight(_p1: any; _p2: any); @@ -15311,6 +17178,7 @@ begin end else if v is class(TrHeight) then begin + v.Parent := self; {self.}XmlChildTrHeight := v; container_.Set({self.}XmlChildTrHeight); end @@ -15326,7 +17194,7 @@ begin {self.}XmlChildJc := new PureWVal(self, {self.}Prefix, "jc"); container_.Set({self.}XmlChildJc); end - return {self.}XmlChildJc and not {self.}XmlChildJc.Removed ? {self.}XmlChildJc : fallback_.XmlChildJc; + return {self.}XmlChildJc and not {self.}XmlChildJc.Removed ? {self.}XmlChildJc : fallback_.Jc; end; function TrPr.WriteXmlChildJc(_p1: any; _p2: any); @@ -15339,6 +17207,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildJc := v; container_.Set({self.}XmlChildJc); end @@ -15354,7 +17223,7 @@ begin {self.}XmlChildCnfStyle := new CnfStyle(self, {self.}Prefix, "cnfStyle"); container_.Set({self.}XmlChildCnfStyle); end - return {self.}XmlChildCnfStyle and not {self.}XmlChildCnfStyle.Removed ? {self.}XmlChildCnfStyle : fallback_.XmlChildCnfStyle; + return {self.}XmlChildCnfStyle and not {self.}XmlChildCnfStyle.Removed ? {self.}XmlChildCnfStyle : fallback_.CnfStyle; end; function TrPr.WriteXmlChildCnfStyle(_p1: any; _p2: any); @@ -15367,6 +17236,7 @@ begin end else if v is class(CnfStyle) then begin + v.Parent := self; {self.}XmlChildCnfStyle := v; container_.Set({self.}XmlChildCnfStyle); end @@ -15382,7 +17252,7 @@ begin {self.}XmlChildIns := new Ins(self, {self.}Prefix, "ins"); container_.Set({self.}XmlChildIns); end - return {self.}XmlChildIns and not {self.}XmlChildIns.Removed ? {self.}XmlChildIns : fallback_.XmlChildIns; + return {self.}XmlChildIns and not {self.}XmlChildIns.Removed ? {self.}XmlChildIns : fallback_.Ins; end; function TrPr.WriteXmlChildIns(_p1: any; _p2: any); @@ -15395,6 +17265,7 @@ begin end else if v is class(Ins) then begin + v.Parent := self; {self.}XmlChildIns := v; container_.Set({self.}XmlChildIns); end @@ -15410,7 +17281,7 @@ begin {self.}XmlChildDel := new Del(self, {self.}Prefix, "del"); container_.Set({self.}XmlChildDel); end - return {self.}XmlChildDel and not {self.}XmlChildDel.Removed ? {self.}XmlChildDel : fallback_.XmlChildDel; + return {self.}XmlChildDel and not {self.}XmlChildDel.Removed ? {self.}XmlChildDel : fallback_.Del; end; function TrPr.WriteXmlChildDel(_p1: any; _p2: any); @@ -15423,6 +17294,7 @@ begin end else if v is class(Del) then begin + v.Parent := self; {self.}XmlChildDel := v; container_.Set({self.}XmlChildDel); end @@ -15431,20 +17303,20 @@ begin end end; -function Ins.Create();overload; +function Ins.create();overload; begin - {self.}Create(nil, "w", "ins"); + {self.}create(nil, "w", "ins"); end; -function Ins.Create(_node: XmlNode);overload; +function Ins.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Ins.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Ins.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Ins.Init();override; @@ -15467,7 +17339,7 @@ function Ins.Copy(_obj: Ins);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.Author) then @@ -15479,6 +17351,23 @@ begin tslassigning := tslassigning_backup; end; +function Ins.Clone(): Ins;override; +begin + obj := new Ins(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Author) then + obj.Author := {self.}Author; + if not ifnil({self.}Date) then + obj.Date := {self.}Date; + if not ifnil({self.}DateUtc) then + obj.DateUtc := {self.}DateUtc; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Ins.ConvertToPoint();override; begin elems := {self.}Rs(); @@ -15575,6 +17464,7 @@ end; function Ins.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -15582,24 +17472,25 @@ end; function Ins.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; -function CnfStyle.Create();overload; +function CnfStyle.create();overload; begin - {self.}Create(nil, "w", "cnfStyle"); + {self.}create(nil, "w", "cnfStyle"); end; -function CnfStyle.Create(_node: XmlNode);overload; +function CnfStyle.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function CnfStyle.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CnfStyle.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CnfStyle.Init();override; @@ -15630,7 +17521,7 @@ function CnfStyle.Copy(_obj: CnfStyle);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.FirstRow) then @@ -15660,6 +17551,38 @@ begin tslassigning := tslassigning_backup; end; +function CnfStyle.Clone(): CnfStyle;override; +begin + obj := new CnfStyle(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}FirstRow) then + obj.FirstRow := {self.}FirstRow; + if not ifnil({self.}LastRow) then + obj.LastRow := {self.}LastRow; + if not ifnil({self.}FirstColumn) then + obj.FirstColumn := {self.}FirstColumn; + if not ifnil({self.}LastColumn) then + obj.LastColumn := {self.}LastColumn; + if not ifnil({self.}OddVBand) then + obj.OddVBand := {self.}OddVBand; + if not ifnil({self.}EvenVBand) then + obj.EvenVBand := {self.}EvenVBand; + if not ifnil({self.}OddHBand) then + obj.OddHBand := {self.}OddHBand; + if not ifnil({self.}EvenHBand) then + obj.EvenHBand := {self.}EvenHBand; + if not ifnil({self.}FirstRowFirstColumn) then + obj.FirstRowFirstColumn := {self.}FirstRowFirstColumn; + if not ifnil({self.}FirstRowLastColumn) then + obj.FirstRowLastColumn := {self.}FirstRowLastColumn; + if not ifnil({self.}LastRowFirstColumn) then + obj.LastRowFirstColumn := {self.}LastRowFirstColumn; + if not ifnil({self.}LastRowLastColumn) then + obj.LastRowLastColumn := {self.}LastRowLastColumn; + return obj; +end; + function CnfStyle.ConvertToPoint();override; begin @@ -15860,20 +17783,20 @@ begin {self.}XmlAttrLastRowLastColumn.Value := _value; end; -function TrHeight.Create();overload; +function TrHeight.create();overload; begin - {self.}Create(nil, "w", "trHeight"); + {self.}create(nil, "w", "trHeight"); end; -function TrHeight.Create(_node: XmlNode);overload; +function TrHeight.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TrHeight.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TrHeight.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TrHeight.Init();override; @@ -15882,7 +17805,7 @@ begin attributes_ := array(); attributes_pf_ := array( pre + "hRule": makeweakref(thisFunction(WriteXmlAttrHRule)), - pre + "val": makeweakref(thisFunction(WriteXmlAttrval)), + pre + "val": makeweakref(thisFunction(WriteXmlAttrVal)), ); sorted_child_ := array( ); @@ -15893,18 +17816,28 @@ function TrHeight.Copy(_obj: TrHeight);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.HRule) then {self.}HRule := _obj.HRule; - if not ifnil(_obj.val) then - {self.}val := _obj.val; + if not ifnil(_obj.Val) then + {self.}Val := _obj.Val; tslassigning := tslassigning_backup; end; +function TrHeight.Clone(): TrHeight;override; +begin + obj := new TrHeight(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}HRule) then + obj.HRule := {self.}HRule; + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function TrHeight.ConvertToPoint();override; begin - if not ifnil({self.}XmlAttrval) then - {self.}val := TSSafeUnitConverter.TwipsToPoints({self.}XmlAttrval.Value); + if not ifnil({self.}XmlAttrVal) then + {self.}Val := TSSafeUnitConverter.TwipsToPoints({self.}XmlAttrVal.Value); end; function TrHeight.ReadXmlAttrHRule(); @@ -15922,35 +17855,35 @@ begin {self.}XmlAttrHRule.Value := _value; end; -function TrHeight.ReadXmlAttrval(); +function TrHeight.ReadXmlAttrVal(); begin - return ifnil({self.}XmlAttrval.Value) ? fallback_.XmlAttrval.Value : {self.}XmlAttrval.Value; + return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; end; -function TrHeight.WriteXmlAttrval(_value: any); +function TrHeight.WriteXmlAttrVal(_value: any); begin - if ifnil({self.}XmlAttrval) then + if ifnil({self.}XmlAttrVal) then begin - {self.}XmlAttrval := new OpenXmlAttribute({self.}Prefix, "val", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "val" : "val"] := {self.}XmlAttrval; + {self.}XmlAttrVal := new OpenXmlAttribute({self.}Prefix, "val", nil); + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "val" : "val"] := {self.}XmlAttrVal; end - {self.}XmlAttrval.Value := _value; + {self.}XmlAttrVal.Value := _value; end; -function Tc.Create();overload; +function Tc.create();overload; begin - {self.}Create(nil, "w", "tc"); + {self.}create(nil, "w", "tc"); end; -function Tc.Create(_node: XmlNode);overload; +function Tc.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Tc.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Tc.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Tc.Init();override; @@ -15971,12 +17904,27 @@ function Tc.Copy(_obj: Tc);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTcPr) then {self.}TcPr.Copy(_obj.XmlChildTcPr); tslassigning := tslassigning_backup; end; +function Tc.Clone(): Tc;override; +begin + obj := new Tc(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "tcPr": obj.TcPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Tc.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTcPr) then @@ -15996,7 +17944,7 @@ begin {self.}XmlChildTcPr := new TcPr(self, {self.}Prefix, "tcPr"); container_.Set({self.}XmlChildTcPr); end - return {self.}XmlChildTcPr and not {self.}XmlChildTcPr.Removed ? {self.}XmlChildTcPr : fallback_.XmlChildTcPr; + return {self.}XmlChildTcPr and not {self.}XmlChildTcPr.Removed ? {self.}XmlChildTcPr : fallback_.TcPr; end; function Tc.WriteXmlChildTcPr(_p1: any; _p2: any); @@ -16009,6 +17957,7 @@ begin end else if v is class(TcPr) then begin + v.Parent := self; {self.}XmlChildTcPr := v; container_.Set({self.}XmlChildTcPr); end @@ -16072,6 +18021,7 @@ end; function Tc.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -16079,6 +18029,7 @@ end; function Tc.AddTbl(): Tbl; begin obj := new Tbl(self, {self.}Prefix, "tbl"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -16086,6 +18037,7 @@ end; function Tc.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -16093,24 +18045,25 @@ end; function Tc.AppendTbl(): Tbl; begin obj := new Tbl(self, {self.}Prefix, "tbl"); + obj.Enable := true; container_.Append(obj); return obj; end; -function TcPr.Create();overload; +function TcPr.create();overload; begin - {self.}Create(nil, "w", "tcPr"); + {self.}create(nil, "w", "tcPr"); end; -function TcPr.Create(_node: XmlNode);overload; +function TcPr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TcPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TcPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TcPr.Init();override; @@ -16124,10 +18077,13 @@ begin pre + "gridSpan": array(1, makeweakref(thisFunction(ReadXmlChildGridSpan))), pre + "vMerge": array(2, makeweakref(thisFunction(ReadXmlChildVMerge))), pre + "vAlign": array(3, makeweakref(thisFunction(ReadXmlChildVAlign))), - pre + "hideMark": array(4, makeweakref(thisFunction(ReadXmlChildHideMark))), - pre + "shd": array(5, makeweakref(thisFunction(ReadXmlChildShd))), - pre + "tcBorders": array(6, makeweakref(thisFunction(ReadXmlChildTcBorders))), - pre + "textDirection": array(7, makeweakref(thisFunction(ReadXmlChildTextDirection))), + pre + "noWrap": array(4, makeweakref(thisFunction(ReadXmlChildNoWrap))), + pre + "hideMark": array(5, makeweakref(thisFunction(ReadXmlChildHideMark))), + pre + "shd": array(6, makeweakref(thisFunction(ReadXmlChildShd))), + pre + "tcMar": array(7, makeweakref(thisFunction(ReadXmlChildTcMar))), + pre + "tcBorders": array(8, makeweakref(thisFunction(ReadXmlChildTcBorders))), + pre + "textDirection": array(9, makeweakref(thisFunction(ReadXmlChildTextDirection))), + pre + "tcFitText": array(10, makeweakref(thisFunction(ReadXmlChildTcFitText))), ); container_ := new TSOfficeContainer(sorted_child_); end; @@ -16136,7 +18092,7 @@ function TcPr.Copy(_obj: TcPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTcW) then {self.}TcW.Copy(_obj.XmlChildTcW); if not ifnil(_obj.XmlChildGridSpan) then @@ -16145,17 +18101,48 @@ begin ifnil({self.}XmlChildVMerge) ? {self.}VMerge.Copy(_obj.XmlChildVMerge) : {self.}XmlChildVMerge.Copy(_obj.XmlChildVMerge); if not ifnil(_obj.XmlChildVAlign) then {self.}VAlign.Copy(_obj.XmlChildVAlign); + if not ifnil(_obj.XmlChildNoWrap) then + ifnil({self.}XmlChildNoWrap) ? {self.}NoWrap.Copy(_obj.XmlChildNoWrap) : {self.}XmlChildNoWrap.Copy(_obj.XmlChildNoWrap); if not ifnil(_obj.XmlChildHideMark) then ifnil({self.}XmlChildHideMark) ? {self.}HideMark.Copy(_obj.XmlChildHideMark) : {self.}XmlChildHideMark.Copy(_obj.XmlChildHideMark); if not ifnil(_obj.XmlChildShd) then {self.}Shd.Copy(_obj.XmlChildShd); + if not ifnil(_obj.XmlChildTcMar) then + {self.}TcMar.Copy(_obj.XmlChildTcMar); if not ifnil(_obj.XmlChildTcBorders) then {self.}TcBorders.Copy(_obj.XmlChildTcBorders); if not ifnil(_obj.XmlChildTextDirection) then {self.}TextDirection.Copy(_obj.XmlChildTextDirection); + if not ifnil(_obj.XmlChildTcFitText) then + ifnil({self.}XmlChildTcFitText) ? {self.}TcFitText.Copy(_obj.XmlChildTcFitText) : {self.}XmlChildTcFitText.Copy(_obj.XmlChildTcFitText); tslassigning := tslassigning_backup; end; +function TcPr.Clone(): TcPr;override; +begin + obj := new TcPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "tcW": obj.TcW := element.Clone(); + pre + "gridSpan": obj.GridSpan := element.Clone(); + pre + "vMerge": obj.VMerge := element.Clone(); + pre + "vAlign": obj.VAlign := element.Clone(); + pre + "noWrap": obj.NoWrap := element.Clone(); + pre + "hideMark": obj.HideMark := element.Clone(); + pre + "shd": obj.Shd := element.Clone(); + pre + "tcMar": obj.TcMar := element.Clone(); + pre + "tcBorders": obj.TcBorders := element.Clone(); + pre + "textDirection": obj.TextDirection := element.Clone(); + pre + "tcFitText": obj.TcFitText := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function TcPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTcW) then @@ -16166,6 +18153,8 @@ begin {self.}XmlChildVAlign.ConvertToPoint(); if not ifnil({self.}XmlChildShd) then {self.}XmlChildShd.ConvertToPoint(); + if not ifnil({self.}XmlChildTcMar) then + {self.}XmlChildTcMar.ConvertToPoint(); if not ifnil({self.}XmlChildTcBorders) then {self.}XmlChildTcBorders.ConvertToPoint(); if not ifnil({self.}XmlChildTextDirection) then @@ -16179,7 +18168,7 @@ begin {self.}XmlChildVMerge := new OpenXmlSimpleType(self, {self.}Prefix, "vMerge"); container_.Set({self.}XmlChildVMerge); end - return {self.}XmlChildVMerge and not {self.}XmlChildVMerge.Removed ? {self.}XmlChildVMerge : fallback_.XmlChildVMerge; + return {self.}XmlChildVMerge and not {self.}XmlChildVMerge.Removed ? {self.}XmlChildVMerge : fallback_.VMerge; end; function TcPr.WriteXmlChildVMerge(_value: nil_or_OpenXmlSimpleType); @@ -16191,6 +18180,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildVMerge := _value; container_.Set({self.}XmlChildVMerge); end @@ -16199,6 +18189,34 @@ begin end end; +function TcPr.ReadXmlChildNoWrap(); +begin + if tslassigning and (ifnil({self.}XmlChildNoWrap) or {self.}XmlChildNoWrap.Removed) then + begin + {self.}XmlChildNoWrap := new OpenXmlSimpleType(self, {self.}Prefix, "noWrap"); + container_.Set({self.}XmlChildNoWrap); + end + return {self.}XmlChildNoWrap and not {self.}XmlChildNoWrap.Removed ? {self.}XmlChildNoWrap : fallback_.NoWrap; +end; + +function TcPr.WriteXmlChildNoWrap(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildNoWrap) then + {self.}RemoveChild({self.}XmlChildNoWrap); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildNoWrap := _value; + container_.Set({self.}XmlChildNoWrap); + end + else begin + raise "Invalid assignment: NoWrap expects nil or OpenXmlSimpleType"; + end +end; + function TcPr.ReadXmlChildHideMark(); begin if tslassigning and (ifnil({self.}XmlChildHideMark) or {self.}XmlChildHideMark.Removed) then @@ -16206,7 +18224,7 @@ begin {self.}XmlChildHideMark := new OpenXmlSimpleType(self, {self.}Prefix, "hideMark"); container_.Set({self.}XmlChildHideMark); end - return {self.}XmlChildHideMark and not {self.}XmlChildHideMark.Removed ? {self.}XmlChildHideMark : fallback_.XmlChildHideMark; + return {self.}XmlChildHideMark and not {self.}XmlChildHideMark.Removed ? {self.}XmlChildHideMark : fallback_.HideMark; end; function TcPr.WriteXmlChildHideMark(_value: nil_or_OpenXmlSimpleType); @@ -16218,6 +18236,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildHideMark := _value; container_.Set({self.}XmlChildHideMark); end @@ -16226,6 +18245,34 @@ begin end end; +function TcPr.ReadXmlChildTcFitText(); +begin + if tslassigning and (ifnil({self.}XmlChildTcFitText) or {self.}XmlChildTcFitText.Removed) then + begin + {self.}XmlChildTcFitText := new OpenXmlSimpleType(self, {self.}Prefix, "tcFitText"); + container_.Set({self.}XmlChildTcFitText); + end + return {self.}XmlChildTcFitText and not {self.}XmlChildTcFitText.Removed ? {self.}XmlChildTcFitText : fallback_.TcFitText; +end; + +function TcPr.WriteXmlChildTcFitText(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildTcFitText) then + {self.}RemoveChild({self.}XmlChildTcFitText); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildTcFitText := _value; + container_.Set({self.}XmlChildTcFitText); + end + else begin + raise "Invalid assignment: TcFitText expects nil or OpenXmlSimpleType"; + end +end; + function TcPr.ReadXmlChildTcW(): TblW; begin if tslassigning and (ifnil({self.}XmlChildTcW) or {self.}XmlChildTcW.Removed) then @@ -16233,7 +18280,7 @@ begin {self.}XmlChildTcW := new TblW(self, {self.}Prefix, "tcW"); container_.Set({self.}XmlChildTcW); end - return {self.}XmlChildTcW and not {self.}XmlChildTcW.Removed ? {self.}XmlChildTcW : fallback_.XmlChildTcW; + return {self.}XmlChildTcW and not {self.}XmlChildTcW.Removed ? {self.}XmlChildTcW : fallback_.TcW; end; function TcPr.WriteXmlChildTcW(_p1: any; _p2: any); @@ -16246,6 +18293,7 @@ begin end else if v is class(TblW) then begin + v.Parent := self; {self.}XmlChildTcW := v; container_.Set({self.}XmlChildTcW); end @@ -16261,7 +18309,7 @@ begin {self.}XmlChildGridSpan := new GridSpan(self, {self.}Prefix, "gridSpan"); container_.Set({self.}XmlChildGridSpan); end - return {self.}XmlChildGridSpan and not {self.}XmlChildGridSpan.Removed ? {self.}XmlChildGridSpan : fallback_.XmlChildGridSpan; + return {self.}XmlChildGridSpan and not {self.}XmlChildGridSpan.Removed ? {self.}XmlChildGridSpan : fallback_.GridSpan; end; function TcPr.WriteXmlChildGridSpan(_p1: any; _p2: any); @@ -16274,6 +18322,7 @@ begin end else if v is class(GridSpan) then begin + v.Parent := self; {self.}XmlChildGridSpan := v; container_.Set({self.}XmlChildGridSpan); end @@ -16289,7 +18338,7 @@ begin {self.}XmlChildVAlign := new PureWVal(self, {self.}Prefix, "vAlign"); container_.Set({self.}XmlChildVAlign); end - return {self.}XmlChildVAlign and not {self.}XmlChildVAlign.Removed ? {self.}XmlChildVAlign : fallback_.XmlChildVAlign; + return {self.}XmlChildVAlign and not {self.}XmlChildVAlign.Removed ? {self.}XmlChildVAlign : fallback_.VAlign; end; function TcPr.WriteXmlChildVAlign(_p1: any; _p2: any); @@ -16302,6 +18351,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildVAlign := v; container_.Set({self.}XmlChildVAlign); end @@ -16317,7 +18367,7 @@ begin {self.}XmlChildShd := new Shd(self, {self.}Prefix, "shd"); container_.Set({self.}XmlChildShd); end - return {self.}XmlChildShd and not {self.}XmlChildShd.Removed ? {self.}XmlChildShd : fallback_.XmlChildShd; + return {self.}XmlChildShd and not {self.}XmlChildShd.Removed ? {self.}XmlChildShd : fallback_.Shd; end; function TcPr.WriteXmlChildShd(_p1: any; _p2: any); @@ -16330,6 +18380,7 @@ begin end else if v is class(Shd) then begin + v.Parent := self; {self.}XmlChildShd := v; container_.Set({self.}XmlChildShd); end @@ -16338,6 +18389,35 @@ begin end end; +function TcPr.ReadXmlChildTcMar(): TcMar; +begin + if tslassigning and (ifnil({self.}XmlChildTcMar) or {self.}XmlChildTcMar.Removed) then + begin + {self.}XmlChildTcMar := new TcMar(self, {self.}Prefix, "tcMar"); + container_.Set({self.}XmlChildTcMar); + end + return {self.}XmlChildTcMar and not {self.}XmlChildTcMar.Removed ? {self.}XmlChildTcMar : fallback_.TcMar; +end; + +function TcPr.WriteXmlChildTcMar(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTcMar) then + {self.}RemoveChild({self.}XmlChildTcMar); + end + else if v is class(TcMar) then + begin + v.Parent := self; + {self.}XmlChildTcMar := v; + container_.Set({self.}XmlChildTcMar); + end + else begin + raise "Invalid assignment: TcMar expects TcMar or nil"; + end +end; + function TcPr.ReadXmlChildTcBorders(): TcBorders; begin if tslassigning and (ifnil({self.}XmlChildTcBorders) or {self.}XmlChildTcBorders.Removed) then @@ -16345,7 +18425,7 @@ begin {self.}XmlChildTcBorders := new TcBorders(self, {self.}Prefix, "tcBorders"); container_.Set({self.}XmlChildTcBorders); end - return {self.}XmlChildTcBorders and not {self.}XmlChildTcBorders.Removed ? {self.}XmlChildTcBorders : fallback_.XmlChildTcBorders; + return {self.}XmlChildTcBorders and not {self.}XmlChildTcBorders.Removed ? {self.}XmlChildTcBorders : fallback_.TcBorders; end; function TcPr.WriteXmlChildTcBorders(_p1: any; _p2: any); @@ -16358,6 +18438,7 @@ begin end else if v is class(TcBorders) then begin + v.Parent := self; {self.}XmlChildTcBorders := v; container_.Set({self.}XmlChildTcBorders); end @@ -16373,7 +18454,7 @@ begin {self.}XmlChildTextDirection := new PureWVal(self, {self.}Prefix, "textDirection"); container_.Set({self.}XmlChildTextDirection); end - return {self.}XmlChildTextDirection and not {self.}XmlChildTextDirection.Removed ? {self.}XmlChildTextDirection : fallback_.XmlChildTextDirection; + return {self.}XmlChildTextDirection and not {self.}XmlChildTextDirection.Removed ? {self.}XmlChildTextDirection : fallback_.TextDirection; end; function TcPr.WriteXmlChildTextDirection(_p1: any; _p2: any); @@ -16386,6 +18467,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTextDirection := v; container_.Set({self.}XmlChildTextDirection); end @@ -16394,20 +18476,300 @@ begin end end; -function TcBorders.Create();overload; +function TcMar.create();overload; begin - {self.}Create(nil, "w", "tcBorders"); + {self.}create(nil, "w", "tcMar"); end; -function TcBorders.Create(_node: XmlNode);overload; +function TcMar.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TcBorders.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TcMar.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); +end; + +function TcMar.Init();override; +begin + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + attributes_ := array(); + attributes_pf_ := array( + ); + sorted_child_ := array( + pre + "top": array(0, makeweakref(thisFunction(ReadXmlChildTop))), + pre + "left": array(1, makeweakref(thisFunction(ReadXmlChildLeft))), + pre + "bottom": array(2, makeweakref(thisFunction(ReadXmlChildBottom))), + pre + "right": array(3, makeweakref(thisFunction(ReadXmlChildRight))), + ); + container_ := new TSOfficeContainer(sorted_child_); +end; + +function TcMar.Copy(_obj: TcMar);override; +begin + tslassigning_backup := tslassigning; + tslassigning := 1; + inherited Copy(_obj); + if not ifnil(_obj.XmlChildTop) then + {self.}Top.Copy(_obj.XmlChildTop); + if not ifnil(_obj.XmlChildLeft) then + {self.}Left.Copy(_obj.XmlChildLeft); + if not ifnil(_obj.XmlChildBottom) then + {self.}Bottom.Copy(_obj.XmlChildBottom); + if not ifnil(_obj.XmlChildRight) then + {self.}Right.Copy(_obj.XmlChildRight); + tslassigning := tslassigning_backup; +end; + +function TcMar.Clone(): TcMar;override; +begin + obj := new TcMar(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "top": obj.Top := element.Clone(); + pre + "left": obj.Left := element.Clone(); + pre + "bottom": obj.Bottom := element.Clone(); + pre + "right": obj.Right := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + +function TcMar.ConvertToPoint();override; +begin + if not ifnil({self.}XmlChildTop) then + {self.}XmlChildTop.ConvertToPoint(); + if not ifnil({self.}XmlChildLeft) then + {self.}XmlChildLeft.ConvertToPoint(); + if not ifnil({self.}XmlChildBottom) then + {self.}XmlChildBottom.ConvertToPoint(); + if not ifnil({self.}XmlChildRight) then + {self.}XmlChildRight.ConvertToPoint(); +end; + +function TcMar.ReadXmlChildTop(): TcMargin; +begin + if tslassigning and (ifnil({self.}XmlChildTop) or {self.}XmlChildTop.Removed) then + begin + {self.}XmlChildTop := new TcMargin(self, {self.}Prefix, "top"); + container_.Set({self.}XmlChildTop); + end + return {self.}XmlChildTop and not {self.}XmlChildTop.Removed ? {self.}XmlChildTop : fallback_.Top; +end; + +function TcMar.WriteXmlChildTop(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTop) then + {self.}RemoveChild({self.}XmlChildTop); + end + else if v is class(TcMargin) then + begin + v.Parent := self; + {self.}XmlChildTop := v; + container_.Set({self.}XmlChildTop); + end + else begin + raise "Invalid assignment: Top expects TcMargin or nil"; + end +end; + +function TcMar.ReadXmlChildLeft(): TcMargin; +begin + if tslassigning and (ifnil({self.}XmlChildLeft) or {self.}XmlChildLeft.Removed) then + begin + {self.}XmlChildLeft := new TcMargin(self, {self.}Prefix, "left"); + container_.Set({self.}XmlChildLeft); + end + return {self.}XmlChildLeft and not {self.}XmlChildLeft.Removed ? {self.}XmlChildLeft : fallback_.Left; +end; + +function TcMar.WriteXmlChildLeft(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLeft) then + {self.}RemoveChild({self.}XmlChildLeft); + end + else if v is class(TcMargin) then + begin + v.Parent := self; + {self.}XmlChildLeft := v; + container_.Set({self.}XmlChildLeft); + end + else begin + raise "Invalid assignment: Left expects TcMargin or nil"; + end +end; + +function TcMar.ReadXmlChildBottom(): TcMargin; +begin + if tslassigning and (ifnil({self.}XmlChildBottom) or {self.}XmlChildBottom.Removed) then + begin + {self.}XmlChildBottom := new TcMargin(self, {self.}Prefix, "bottom"); + container_.Set({self.}XmlChildBottom); + end + return {self.}XmlChildBottom and not {self.}XmlChildBottom.Removed ? {self.}XmlChildBottom : fallback_.Bottom; +end; + +function TcMar.WriteXmlChildBottom(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBottom) then + {self.}RemoveChild({self.}XmlChildBottom); + end + else if v is class(TcMargin) then + begin + v.Parent := self; + {self.}XmlChildBottom := v; + container_.Set({self.}XmlChildBottom); + end + else begin + raise "Invalid assignment: Bottom expects TcMargin or nil"; + end +end; + +function TcMar.ReadXmlChildRight(): TcMargin; +begin + if tslassigning and (ifnil({self.}XmlChildRight) or {self.}XmlChildRight.Removed) then + begin + {self.}XmlChildRight := new TcMargin(self, {self.}Prefix, "right"); + container_.Set({self.}XmlChildRight); + end + return {self.}XmlChildRight and not {self.}XmlChildRight.Removed ? {self.}XmlChildRight : fallback_.Right; +end; + +function TcMar.WriteXmlChildRight(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRight) then + {self.}RemoveChild({self.}XmlChildRight); + end + else if v is class(TcMargin) then + begin + v.Parent := self; + {self.}XmlChildRight := v; + container_.Set({self.}XmlChildRight); + end + else begin + raise "Invalid assignment: Right expects TcMargin or nil"; + end +end; + +function TcMargin.create();overload; +begin + {self.}create(nil, "w", ""); +end; + +function TcMargin.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function TcMargin.create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); + inherited create(_parent, _prefix, _local_name); +end; + +function TcMargin.Init();override; +begin + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + attributes_ := array(); + attributes_pf_ := array( + pre + "w": makeweakref(thisFunction(WriteXmlAttrW)), + pre + "type": makeweakref(thisFunction(WriteXmlAttrType)), + ); + sorted_child_ := array( + ); + container_ := new TSOfficeContainer(sorted_child_); +end; + +function TcMargin.Copy(_obj: TcMargin);override; +begin + tslassigning_backup := tslassigning; + tslassigning := 1; + inherited Copy(_obj); + if not ifnil(_obj.W) then + {self.}W := _obj.W; + if not ifnil(_obj.Type) then + {self.}Type := _obj.Type; + tslassigning := tslassigning_backup; +end; + +function TcMargin.Clone(): TcMargin;override; +begin + obj := new TcMargin(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}W) then + obj.W := {self.}W; + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + return obj; +end; + +function TcMargin.ConvertToPoint();override; +begin + if not ifnil({self.}XmlAttrW) then + {self.}W := TSSafeUnitConverter.TwipsToPoints({self.}XmlAttrW.Value); +end; + +function TcMargin.ReadXmlAttrW(); +begin + return ifnil({self.}XmlAttrW.Value) ? fallback_.XmlAttrW.Value : {self.}XmlAttrW.Value; +end; + +function TcMargin.WriteXmlAttrW(_value: any); +begin + if ifnil({self.}XmlAttrW) then + begin + {self.}XmlAttrW := new OpenXmlAttribute({self.}Prefix, "w", nil); + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "w" : "w"] := {self.}XmlAttrW; + end + {self.}XmlAttrW.Value := _value; +end; + +function TcMargin.ReadXmlAttrType(); +begin + return ifnil({self.}XmlAttrType.Value) ? fallback_.XmlAttrType.Value : {self.}XmlAttrType.Value; +end; + +function TcMargin.WriteXmlAttrType(_value: any); +begin + if ifnil({self.}XmlAttrType) then + begin + {self.}XmlAttrType := new OpenXmlAttribute({self.}Prefix, "type", nil); + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "type" : "type"] := {self.}XmlAttrType; + end + {self.}XmlAttrType.Value := _value; +end; + +function TcBorders.create();overload; +begin + {self.}create(nil, "w", "tcBorders"); +end; + +function TcBorders.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function TcBorders.create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); + inherited create(_parent, _prefix, _local_name); end; function TcBorders.Init();override; @@ -16433,7 +18795,7 @@ function TcBorders.Copy(_obj: TcBorders);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTop) then {self.}Top.Copy(_obj.XmlChildTop); if not ifnil(_obj.XmlChildLeft) then @@ -16453,6 +18815,28 @@ begin tslassigning := tslassigning_backup; end; +function TcBorders.Clone(): TcBorders;override; +begin + obj := new TcBorders(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "top": obj.Top := element.Clone(); + pre + "left": obj.Left := element.Clone(); + pre + "bottom": obj.Bottom := element.Clone(); + pre + "right": obj.Right := element.Clone(); + pre + "tl2br": obj.Tl2Br := element.Clone(); + pre + "tr2bl": obj.Tr2Bl := element.Clone(); + pre + "insideH": obj.InsideH := element.Clone(); + pre + "insideV": obj.InsideV := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function TcBorders.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTop) then @@ -16473,14 +18857,14 @@ begin {self.}XmlChildInsideV.ConvertToPoint(); end; -function TcBorders.ReadXmlChildTop(): TcBorder; +function TcBorders.ReadXmlChildTop(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildTop) or {self.}XmlChildTop.Removed) then begin - {self.}XmlChildTop := new TcBorder(self, {self.}Prefix, "top"); + {self.}XmlChildTop := new Bdr(self, {self.}Prefix, "top"); container_.Set({self.}XmlChildTop); end - return {self.}XmlChildTop and not {self.}XmlChildTop.Removed ? {self.}XmlChildTop : fallback_.XmlChildTop; + return {self.}XmlChildTop and not {self.}XmlChildTop.Removed ? {self.}XmlChildTop : fallback_.Top; end; function TcBorders.WriteXmlChildTop(_p1: any; _p2: any); @@ -16491,24 +18875,25 @@ begin if ifObj({self.}XmlChildTop) then {self.}RemoveChild({self.}XmlChildTop); end - else if v is class(TcBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildTop := v; container_.Set({self.}XmlChildTop); end else begin - raise "Invalid assignment: Top expects TcBorder or nil"; + raise "Invalid assignment: Top expects Bdr or nil"; end end; -function TcBorders.ReadXmlChildLeft(): TcBorder; +function TcBorders.ReadXmlChildLeft(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildLeft) or {self.}XmlChildLeft.Removed) then begin - {self.}XmlChildLeft := new TcBorder(self, {self.}Prefix, "left"); + {self.}XmlChildLeft := new Bdr(self, {self.}Prefix, "left"); container_.Set({self.}XmlChildLeft); end - return {self.}XmlChildLeft and not {self.}XmlChildLeft.Removed ? {self.}XmlChildLeft : fallback_.XmlChildLeft; + return {self.}XmlChildLeft and not {self.}XmlChildLeft.Removed ? {self.}XmlChildLeft : fallback_.Left; end; function TcBorders.WriteXmlChildLeft(_p1: any; _p2: any); @@ -16519,24 +18904,25 @@ begin if ifObj({self.}XmlChildLeft) then {self.}RemoveChild({self.}XmlChildLeft); end - else if v is class(TcBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildLeft := v; container_.Set({self.}XmlChildLeft); end else begin - raise "Invalid assignment: Left expects TcBorder or nil"; + raise "Invalid assignment: Left expects Bdr or nil"; end end; -function TcBorders.ReadXmlChildBottom(): TcBorder; +function TcBorders.ReadXmlChildBottom(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildBottom) or {self.}XmlChildBottom.Removed) then begin - {self.}XmlChildBottom := new TcBorder(self, {self.}Prefix, "bottom"); + {self.}XmlChildBottom := new Bdr(self, {self.}Prefix, "bottom"); container_.Set({self.}XmlChildBottom); end - return {self.}XmlChildBottom and not {self.}XmlChildBottom.Removed ? {self.}XmlChildBottom : fallback_.XmlChildBottom; + return {self.}XmlChildBottom and not {self.}XmlChildBottom.Removed ? {self.}XmlChildBottom : fallback_.Bottom; end; function TcBorders.WriteXmlChildBottom(_p1: any; _p2: any); @@ -16547,24 +18933,25 @@ begin if ifObj({self.}XmlChildBottom) then {self.}RemoveChild({self.}XmlChildBottom); end - else if v is class(TcBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildBottom := v; container_.Set({self.}XmlChildBottom); end else begin - raise "Invalid assignment: Bottom expects TcBorder or nil"; + raise "Invalid assignment: Bottom expects Bdr or nil"; end end; -function TcBorders.ReadXmlChildRight(): TcBorder; +function TcBorders.ReadXmlChildRight(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildRight) or {self.}XmlChildRight.Removed) then begin - {self.}XmlChildRight := new TcBorder(self, {self.}Prefix, "right"); + {self.}XmlChildRight := new Bdr(self, {self.}Prefix, "right"); container_.Set({self.}XmlChildRight); end - return {self.}XmlChildRight and not {self.}XmlChildRight.Removed ? {self.}XmlChildRight : fallback_.XmlChildRight; + return {self.}XmlChildRight and not {self.}XmlChildRight.Removed ? {self.}XmlChildRight : fallback_.Right; end; function TcBorders.WriteXmlChildRight(_p1: any; _p2: any); @@ -16575,24 +18962,25 @@ begin if ifObj({self.}XmlChildRight) then {self.}RemoveChild({self.}XmlChildRight); end - else if v is class(TcBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildRight := v; container_.Set({self.}XmlChildRight); end else begin - raise "Invalid assignment: Right expects TcBorder or nil"; + raise "Invalid assignment: Right expects Bdr or nil"; end end; -function TcBorders.ReadXmlChildTl2Br(): TcBorder; +function TcBorders.ReadXmlChildTl2Br(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildTl2Br) or {self.}XmlChildTl2Br.Removed) then begin - {self.}XmlChildTl2Br := new TcBorder(self, {self.}Prefix, "tl2br"); + {self.}XmlChildTl2Br := new Bdr(self, {self.}Prefix, "tl2br"); container_.Set({self.}XmlChildTl2Br); end - return {self.}XmlChildTl2Br and not {self.}XmlChildTl2Br.Removed ? {self.}XmlChildTl2Br : fallback_.XmlChildTl2Br; + return {self.}XmlChildTl2Br and not {self.}XmlChildTl2Br.Removed ? {self.}XmlChildTl2Br : fallback_.Tl2Br; end; function TcBorders.WriteXmlChildTl2Br(_p1: any; _p2: any); @@ -16603,24 +18991,25 @@ begin if ifObj({self.}XmlChildTl2Br) then {self.}RemoveChild({self.}XmlChildTl2Br); end - else if v is class(TcBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildTl2Br := v; container_.Set({self.}XmlChildTl2Br); end else begin - raise "Invalid assignment: Tl2Br expects TcBorder or nil"; + raise "Invalid assignment: Tl2Br expects Bdr or nil"; end end; -function TcBorders.ReadXmlChildTr2Bl(): TcBorder; +function TcBorders.ReadXmlChildTr2Bl(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildTr2Bl) or {self.}XmlChildTr2Bl.Removed) then begin - {self.}XmlChildTr2Bl := new TcBorder(self, {self.}Prefix, "tr2bl"); + {self.}XmlChildTr2Bl := new Bdr(self, {self.}Prefix, "tr2bl"); container_.Set({self.}XmlChildTr2Bl); end - return {self.}XmlChildTr2Bl and not {self.}XmlChildTr2Bl.Removed ? {self.}XmlChildTr2Bl : fallback_.XmlChildTr2Bl; + return {self.}XmlChildTr2Bl and not {self.}XmlChildTr2Bl.Removed ? {self.}XmlChildTr2Bl : fallback_.Tr2Bl; end; function TcBorders.WriteXmlChildTr2Bl(_p1: any; _p2: any); @@ -16631,24 +19020,25 @@ begin if ifObj({self.}XmlChildTr2Bl) then {self.}RemoveChild({self.}XmlChildTr2Bl); end - else if v is class(TcBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildTr2Bl := v; container_.Set({self.}XmlChildTr2Bl); end else begin - raise "Invalid assignment: Tr2Bl expects TcBorder or nil"; + raise "Invalid assignment: Tr2Bl expects Bdr or nil"; end end; -function TcBorders.ReadXmlChildInsideH(): TcBorder; +function TcBorders.ReadXmlChildInsideH(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildInsideH) or {self.}XmlChildInsideH.Removed) then begin - {self.}XmlChildInsideH := new TcBorder(self, {self.}Prefix, "insideH"); + {self.}XmlChildInsideH := new Bdr(self, {self.}Prefix, "insideH"); container_.Set({self.}XmlChildInsideH); end - return {self.}XmlChildInsideH and not {self.}XmlChildInsideH.Removed ? {self.}XmlChildInsideH : fallback_.XmlChildInsideH; + return {self.}XmlChildInsideH and not {self.}XmlChildInsideH.Removed ? {self.}XmlChildInsideH : fallback_.InsideH; end; function TcBorders.WriteXmlChildInsideH(_p1: any; _p2: any); @@ -16659,24 +19049,25 @@ begin if ifObj({self.}XmlChildInsideH) then {self.}RemoveChild({self.}XmlChildInsideH); end - else if v is class(TcBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildInsideH := v; container_.Set({self.}XmlChildInsideH); end else begin - raise "Invalid assignment: InsideH expects TcBorder or nil"; + raise "Invalid assignment: InsideH expects Bdr or nil"; end end; -function TcBorders.ReadXmlChildInsideV(): TcBorder; +function TcBorders.ReadXmlChildInsideV(): Bdr; begin if tslassigning and (ifnil({self.}XmlChildInsideV) or {self.}XmlChildInsideV.Removed) then begin - {self.}XmlChildInsideV := new TcBorder(self, {self.}Prefix, "insideV"); + {self.}XmlChildInsideV := new Bdr(self, {self.}Prefix, "insideV"); container_.Set({self.}XmlChildInsideV); end - return {self.}XmlChildInsideV and not {self.}XmlChildInsideV.Removed ? {self.}XmlChildInsideV : fallback_.XmlChildInsideV; + return {self.}XmlChildInsideV and not {self.}XmlChildInsideV.Removed ? {self.}XmlChildInsideV : fallback_.InsideV; end; function TcBorders.WriteXmlChildInsideV(_p1: any; _p2: any); @@ -16687,179 +19078,31 @@ begin if ifObj({self.}XmlChildInsideV) then {self.}RemoveChild({self.}XmlChildInsideV); end - else if v is class(TcBorder) then + else if v is class(Bdr) then begin + v.Parent := self; {self.}XmlChildInsideV := v; container_.Set({self.}XmlChildInsideV); end else begin - raise "Invalid assignment: InsideV expects TcBorder or nil"; + raise "Invalid assignment: InsideV expects Bdr or nil"; end end; -function TcBorder.Create();overload; +function GridSpan.create();overload; begin - {self.}Create(nil, "w", ""); + {self.}create(nil, "w", "gridSpan"); end; -function TcBorder.Create(_node: XmlNode);overload; +function GridSpan.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TcBorder.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function GridSpan.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); -end; - -function TcBorder.Init();override; -begin - pre := {self.}Prefix ? {self.}Prefix + ":" : ""; - attributes_ := array(); - attributes_pf_ := array( - pre + "val": makeweakref(thisFunction(WriteXmlAttrVal)), - pre + "color": makeweakref(thisFunction(WriteXmlAttrColor)), - pre + "space": makeweakref(thisFunction(WriteXmlAttrSpace)), - pre + "themeColor": makeweakref(thisFunction(WriteXmlAttrThemeColor)), - pre + "themeTint": makeweakref(thisFunction(WriteXmlAttrThemeTint)), - pre + "sz": makeweakref(thisFunction(WriteXmlAttrSz)), - ); - sorted_child_ := array( - ); - container_ := new TSOfficeContainer(sorted_child_); -end; - -function TcBorder.Copy(_obj: TcBorder);override; -begin - tslassigning_backup := tslassigning; - tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); - if not ifnil(_obj.Val) then - {self.}Val := _obj.Val; - if not ifnil(_obj.Color) then - {self.}Color := _obj.Color; - if not ifnil(_obj.Space) then - {self.}Space := _obj.Space; - if not ifnil(_obj.ThemeColor) then - {self.}ThemeColor := _obj.ThemeColor; - if not ifnil(_obj.ThemeTint) then - {self.}ThemeTint := _obj.ThemeTint; - if not ifnil(_obj.Sz) then - {self.}Sz := _obj.Sz; - tslassigning := tslassigning_backup; -end; - -function TcBorder.ConvertToPoint();override; -begin - if not ifnil({self.}XmlAttrSz) then - {self.}Sz := TSSafeUnitConverter.EighthPointToPoints({self.}XmlAttrSz.Value); -end; - -function TcBorder.ReadXmlAttrVal(); -begin - return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; -end; - -function TcBorder.WriteXmlAttrVal(_value: any); -begin - if ifnil({self.}XmlAttrVal) then - begin - {self.}XmlAttrVal := new OpenXmlAttribute({self.}Prefix, "val", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "val" : "val"] := {self.}XmlAttrVal; - end - {self.}XmlAttrVal.Value := _value; -end; - -function TcBorder.ReadXmlAttrColor(); -begin - return ifnil({self.}XmlAttrColor.Value) ? fallback_.XmlAttrColor.Value : {self.}XmlAttrColor.Value; -end; - -function TcBorder.WriteXmlAttrColor(_value: any); -begin - if ifnil({self.}XmlAttrColor) then - begin - {self.}XmlAttrColor := new OpenXmlAttribute({self.}Prefix, "color", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "color" : "color"] := {self.}XmlAttrColor; - end - {self.}XmlAttrColor.Value := _value; -end; - -function TcBorder.ReadXmlAttrSpace(); -begin - return ifnil({self.}XmlAttrSpace.Value) ? fallback_.XmlAttrSpace.Value : {self.}XmlAttrSpace.Value; -end; - -function TcBorder.WriteXmlAttrSpace(_value: any); -begin - if ifnil({self.}XmlAttrSpace) then - begin - {self.}XmlAttrSpace := new OpenXmlAttribute({self.}Prefix, "space", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "space" : "space"] := {self.}XmlAttrSpace; - end - {self.}XmlAttrSpace.Value := _value; -end; - -function TcBorder.ReadXmlAttrThemeColor(); -begin - return ifnil({self.}XmlAttrThemeColor.Value) ? fallback_.XmlAttrThemeColor.Value : {self.}XmlAttrThemeColor.Value; -end; - -function TcBorder.WriteXmlAttrThemeColor(_value: any); -begin - if ifnil({self.}XmlAttrThemeColor) then - begin - {self.}XmlAttrThemeColor := new OpenXmlAttribute({self.}Prefix, "themeColor", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "themeColor" : "themeColor"] := {self.}XmlAttrThemeColor; - end - {self.}XmlAttrThemeColor.Value := _value; -end; - -function TcBorder.ReadXmlAttrThemeTint(); -begin - return ifnil({self.}XmlAttrThemeTint.Value) ? fallback_.XmlAttrThemeTint.Value : {self.}XmlAttrThemeTint.Value; -end; - -function TcBorder.WriteXmlAttrThemeTint(_value: any); -begin - if ifnil({self.}XmlAttrThemeTint) then - begin - {self.}XmlAttrThemeTint := new OpenXmlAttribute({self.}Prefix, "themeTint", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "themeTint" : "themeTint"] := {self.}XmlAttrThemeTint; - end - {self.}XmlAttrThemeTint.Value := _value; -end; - -function TcBorder.ReadXmlAttrSz(); -begin - return ifnil({self.}XmlAttrSz.Value) ? fallback_.XmlAttrSz.Value : {self.}XmlAttrSz.Value; -end; - -function TcBorder.WriteXmlAttrSz(_value: any); -begin - if ifnil({self.}XmlAttrSz) then - begin - {self.}XmlAttrSz := new OpenXmlAttribute({self.}Prefix, "sz", nil); - attributes_[{self.}Prefix ? {self.}Prefix + ":" + "sz" : "sz"] := {self.}XmlAttrSz; - end - {self.}XmlAttrSz.Value := _value; -end; - -function GridSpan.Create();overload; -begin - {self.}Create(nil, "w", "gridSpan"); -end; - -function GridSpan.Create(_node: XmlNode);overload; -begin - inherited Create(_node: XmlNode); -end; - -function GridSpan.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; -begin - setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function GridSpan.Init();override; @@ -16878,12 +19121,20 @@ function GridSpan.Copy(_obj: GridSpan);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; tslassigning := tslassigning_backup; end; +function GridSpan.Clone(): GridSpan;override; +begin + obj := new GridSpan(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function GridSpan.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrVal) then @@ -16905,20 +19156,20 @@ begin {self.}XmlAttrVal.Value := _value; end; -function Sdt.Create();overload; +function Sdt.create();overload; begin - {self.}Create(nil, "w", "sdt"); + {self.}create(nil, "w", "sdt"); end; -function Sdt.Create(_node: XmlNode);overload; +function Sdt.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Sdt.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Sdt.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Sdt.Init();override; @@ -16939,7 +19190,7 @@ function Sdt.Copy(_obj: Sdt);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSdtPr) then {self.}SdtPr.Copy(_obj.XmlChildSdtPr); if not ifnil(_obj.XmlChildSdtEndPr) then @@ -16949,6 +19200,23 @@ begin tslassigning := tslassigning_backup; end; +function Sdt.Clone(): Sdt;override; +begin + obj := new Sdt(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sdtPr": obj.SdtPr := element.Clone(); + pre + "sdtEndPr": obj.SdtEndPr := element.Clone(); + pre + "sdtContent": obj.SdtContent := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Sdt.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSdtPr) then @@ -16966,7 +19234,7 @@ begin {self.}XmlChildSdtPr := new SdtPr(self, {self.}Prefix, "sdtPr"); container_.Set({self.}XmlChildSdtPr); end - return {self.}XmlChildSdtPr and not {self.}XmlChildSdtPr.Removed ? {self.}XmlChildSdtPr : fallback_.XmlChildSdtPr; + return {self.}XmlChildSdtPr and not {self.}XmlChildSdtPr.Removed ? {self.}XmlChildSdtPr : fallback_.SdtPr; end; function Sdt.WriteXmlChildSdtPr(_p1: any; _p2: any); @@ -16979,6 +19247,7 @@ begin end else if v is class(SdtPr) then begin + v.Parent := self; {self.}XmlChildSdtPr := v; container_.Set({self.}XmlChildSdtPr); end @@ -16994,7 +19263,7 @@ begin {self.}XmlChildSdtEndPr := new SdtEndPr(self, {self.}Prefix, "sdtEndPr"); container_.Set({self.}XmlChildSdtEndPr); end - return {self.}XmlChildSdtEndPr and not {self.}XmlChildSdtEndPr.Removed ? {self.}XmlChildSdtEndPr : fallback_.XmlChildSdtEndPr; + return {self.}XmlChildSdtEndPr and not {self.}XmlChildSdtEndPr.Removed ? {self.}XmlChildSdtEndPr : fallback_.SdtEndPr; end; function Sdt.WriteXmlChildSdtEndPr(_p1: any; _p2: any); @@ -17007,6 +19276,7 @@ begin end else if v is class(SdtEndPr) then begin + v.Parent := self; {self.}XmlChildSdtEndPr := v; container_.Set({self.}XmlChildSdtEndPr); end @@ -17022,7 +19292,7 @@ begin {self.}XmlChildSdtContent := new SdtContent(self, {self.}Prefix, "sdtContent"); container_.Set({self.}XmlChildSdtContent); end - return {self.}XmlChildSdtContent and not {self.}XmlChildSdtContent.Removed ? {self.}XmlChildSdtContent : fallback_.XmlChildSdtContent; + return {self.}XmlChildSdtContent and not {self.}XmlChildSdtContent.Removed ? {self.}XmlChildSdtContent : fallback_.SdtContent; end; function Sdt.WriteXmlChildSdtContent(_p1: any; _p2: any); @@ -17035,6 +19305,7 @@ begin end else if v is class(SdtContent) then begin + v.Parent := self; {self.}XmlChildSdtContent := v; container_.Set({self.}XmlChildSdtContent); end @@ -17043,20 +19314,20 @@ begin end end; -function SdtPr.Create();overload; +function SdtPr.create();overload; begin - {self.}Create(nil, "w", "sdtPr"); + {self.}create(nil, "w", "sdtPr"); end; -function SdtPr.Create(_node: XmlNode);overload; +function SdtPr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function SdtPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SdtPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SdtPr.Init();override; @@ -17077,7 +19348,7 @@ function SdtPr.Copy(_obj: SdtPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRPr) then {self.}RPr.Copy(_obj.XmlChildRPr); if not ifnil(_obj.XmlChildId) then @@ -17087,6 +19358,23 @@ begin tslassigning := tslassigning_backup; end; +function SdtPr.Clone(): SdtPr;override; +begin + obj := new SdtPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rPr": obj.RPr := element.Clone(); + pre + "id": obj.Id := element.Clone(); + pre + "docPartObj": obj.DocPartObj := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SdtPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRPr) then @@ -17104,7 +19392,7 @@ begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; end; function SdtPr.WriteXmlChildRPr(_p1: any; _p2: any); @@ -17117,6 +19405,7 @@ begin end else if v is class(RPr) then begin + v.Parent := self; {self.}XmlChildRPr := v; container_.Set({self.}XmlChildRPr); end @@ -17132,7 +19421,7 @@ begin {self.}XmlChildId := new PureWVal(self, {self.}Prefix, "id"); container_.Set({self.}XmlChildId); end - return {self.}XmlChildId and not {self.}XmlChildId.Removed ? {self.}XmlChildId : fallback_.XmlChildId; + return {self.}XmlChildId and not {self.}XmlChildId.Removed ? {self.}XmlChildId : fallback_.Id; end; function SdtPr.WriteXmlChildId(_p1: any; _p2: any); @@ -17145,6 +19434,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildId := v; container_.Set({self.}XmlChildId); end @@ -17160,7 +19450,7 @@ begin {self.}XmlChildDocPartObj := new DocPartObj(self, {self.}Prefix, "docPartObj"); container_.Set({self.}XmlChildDocPartObj); end - return {self.}XmlChildDocPartObj and not {self.}XmlChildDocPartObj.Removed ? {self.}XmlChildDocPartObj : fallback_.XmlChildDocPartObj; + return {self.}XmlChildDocPartObj and not {self.}XmlChildDocPartObj.Removed ? {self.}XmlChildDocPartObj : fallback_.DocPartObj; end; function SdtPr.WriteXmlChildDocPartObj(_p1: any; _p2: any); @@ -17173,6 +19463,7 @@ begin end else if v is class(DocPartObj) then begin + v.Parent := self; {self.}XmlChildDocPartObj := v; container_.Set({self.}XmlChildDocPartObj); end @@ -17181,20 +19472,20 @@ begin end end; -function DocPartObj.Create();overload; +function DocPartObj.create();overload; begin - {self.}Create(nil, "w", "docPartObj"); + {self.}create(nil, "w", "docPartObj"); end; -function DocPartObj.Create(_node: XmlNode);overload; +function DocPartObj.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function DocPartObj.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function DocPartObj.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function DocPartObj.Init();override; @@ -17214,7 +19505,7 @@ function DocPartObj.Copy(_obj: DocPartObj);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildDocPartGallery) then {self.}DocPartGallery.Copy(_obj.XmlChildDocPartGallery); if not ifnil(_obj.XmlChildDocPartUnique) then @@ -17222,6 +19513,22 @@ begin tslassigning := tslassigning_backup; end; +function DocPartObj.Clone(): DocPartObj;override; +begin + obj := new DocPartObj(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "docPartGallery": obj.DocPartGallery := element.Clone(); + pre + "docPartUnique": obj.DocPartUnique := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function DocPartObj.ConvertToPoint();override; begin if not ifnil({self.}XmlChildDocPartGallery) then @@ -17237,7 +19544,7 @@ begin {self.}XmlChildDocPartGallery := new PureWVal(self, {self.}Prefix, "docPartGallery"); container_.Set({self.}XmlChildDocPartGallery); end - return {self.}XmlChildDocPartGallery and not {self.}XmlChildDocPartGallery.Removed ? {self.}XmlChildDocPartGallery : fallback_.XmlChildDocPartGallery; + return {self.}XmlChildDocPartGallery and not {self.}XmlChildDocPartGallery.Removed ? {self.}XmlChildDocPartGallery : fallback_.DocPartGallery; end; function DocPartObj.WriteXmlChildDocPartGallery(_p1: any; _p2: any); @@ -17250,6 +19557,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildDocPartGallery := v; container_.Set({self.}XmlChildDocPartGallery); end @@ -17258,14 +19566,14 @@ begin end end; -function DocPartObj.ReadXmlChildDocPartUnique(): PureVal; +function DocPartObj.ReadXmlChildDocPartUnique(): PureWVal; begin if tslassigning and (ifnil({self.}XmlChildDocPartUnique) or {self.}XmlChildDocPartUnique.Removed) then begin - {self.}XmlChildDocPartUnique := new PureVal(self, {self.}Prefix, "docPartUnique"); + {self.}XmlChildDocPartUnique := new PureWVal(self, {self.}Prefix, "docPartUnique"); container_.Set({self.}XmlChildDocPartUnique); end - return {self.}XmlChildDocPartUnique and not {self.}XmlChildDocPartUnique.Removed ? {self.}XmlChildDocPartUnique : fallback_.XmlChildDocPartUnique; + return {self.}XmlChildDocPartUnique and not {self.}XmlChildDocPartUnique.Removed ? {self.}XmlChildDocPartUnique : fallback_.DocPartUnique; end; function DocPartObj.WriteXmlChildDocPartUnique(_p1: any; _p2: any); @@ -17276,30 +19584,31 @@ begin if ifObj({self.}XmlChildDocPartUnique) then {self.}RemoveChild({self.}XmlChildDocPartUnique); end - else if v is class(PureVal) then + else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildDocPartUnique := v; container_.Set({self.}XmlChildDocPartUnique); end else begin - raise "Invalid assignment: DocPartUnique expects PureVal or nil"; + raise "Invalid assignment: DocPartUnique expects PureWVal or nil"; end end; -function SdtEndPr.Create();overload; +function SdtEndPr.create();overload; begin - {self.}Create(nil, "w", "sdtEndPr"); + {self.}create(nil, "w", "sdtEndPr"); end; -function SdtEndPr.Create(_node: XmlNode);overload; +function SdtEndPr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function SdtEndPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SdtEndPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SdtEndPr.Init();override; @@ -17318,12 +19627,27 @@ function SdtEndPr.Copy(_obj: SdtEndPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRPr) then {self.}RPr.Copy(_obj.XmlChildRPr); tslassigning := tslassigning_backup; end; +function SdtEndPr.Clone(): SdtEndPr;override; +begin + obj := new SdtEndPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rPr": obj.RPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SdtEndPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRPr) then @@ -17337,7 +19661,7 @@ begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; end; function SdtEndPr.WriteXmlChildRPr(_p1: any; _p2: any); @@ -17350,6 +19674,7 @@ begin end else if v is class(RPr) then begin + v.Parent := self; {self.}XmlChildRPr := v; container_.Set({self.}XmlChildRPr); end @@ -17358,20 +19683,20 @@ begin end end; -function SdtContent.Create();overload; +function SdtContent.create();overload; begin - {self.}Create(nil, "w", "sdtContent"); + {self.}create(nil, "w", "sdtContent"); end; -function SdtContent.Create(_node: XmlNode);overload; +function SdtContent.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function SdtContent.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SdtContent.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SdtContent.Init();override; @@ -17392,12 +19717,27 @@ function SdtContent.Copy(_obj: SdtContent);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSdt) then {self.}Sdt.Copy(_obj.XmlChildSdt); tslassigning := tslassigning_backup; end; +function SdtContent.Clone(): SdtContent;override; +begin + obj := new SdtContent(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sdt": obj.Sdt := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SdtContent.ConvertToPoint();override; begin elems := {self.}Ps(); @@ -17417,7 +19757,7 @@ begin {self.}XmlChildSdt := new Sdt(self, {self.}Prefix, "sdt"); container_.Set({self.}XmlChildSdt); end - return {self.}XmlChildSdt and not {self.}XmlChildSdt.Removed ? {self.}XmlChildSdt : fallback_.XmlChildSdt; + return {self.}XmlChildSdt and not {self.}XmlChildSdt.Removed ? {self.}XmlChildSdt : fallback_.Sdt; end; function SdtContent.WriteXmlChildSdt(_p1: any; _p2: any); @@ -17430,6 +19770,7 @@ begin end else if v is class(Sdt) then begin + v.Parent := self; {self.}XmlChildSdt := v; container_.Set({self.}XmlChildSdt); end @@ -17493,6 +19834,7 @@ end; function SdtContent.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -17500,6 +19842,7 @@ end; function SdtContent.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -17507,6 +19850,7 @@ end; function SdtContent.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -17514,24 +19858,25 @@ end; function SdtContent.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; -function SectPr.Create();overload; +function SectPr.create();overload; begin - {self.}Create(nil, "w", "sectPr"); + {self.}create(nil, "w", "sectPr"); end; -function SectPr.Create(_node: XmlNode);overload; +function SectPr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function SectPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SectPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SectPr.Init();override; @@ -17563,7 +19908,7 @@ function SectPr.Copy(_obj: SectPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.RsidR) then {self.}RsidR := _obj.RsidR; if not ifnil(_obj.RsidSect) then @@ -17591,6 +19936,34 @@ begin tslassigning := tslassigning_backup; end; +function SectPr.Clone(): SectPr;override; +begin + obj := new SectPr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}RsidR) then + obj.RsidR := {self.}RsidR; + if not ifnil({self.}RsidSect) then + obj.RsidSect := {self.}RsidSect; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "footnotePr": obj.FootnotePr := element.Clone(); + pre + "endnotePr": obj.EndnotePr := element.Clone(); + pre + "type": obj.Type := element.Clone(); + pre + "pgSz": obj.PgSz := element.Clone(); + pre + "pgMar": obj.PgMar := element.Clone(); + pre + "pgNumType": obj.PgNumType := element.Clone(); + pre + "cols": obj.Cols := element.Clone(); + pre + "titlePg": obj.TitlePg := element.Clone(); + pre + "docGrid": obj.DocGrid := element.Clone(); + pre + "textDirection": obj.TextDirection := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SectPr.ConvertToPoint();override; begin elems := {self.}HeaderReferences(); @@ -17656,7 +20029,7 @@ begin {self.}XmlChildTitlePg := new OpenXmlSimpleType(self, {self.}Prefix, "titlePg"); container_.Set({self.}XmlChildTitlePg); end - return {self.}XmlChildTitlePg and not {self.}XmlChildTitlePg.Removed ? {self.}XmlChildTitlePg : fallback_.XmlChildTitlePg; + return {self.}XmlChildTitlePg and not {self.}XmlChildTitlePg.Removed ? {self.}XmlChildTitlePg : fallback_.TitlePg; end; function SectPr.WriteXmlChildTitlePg(_value: nil_or_OpenXmlSimpleType); @@ -17668,6 +20041,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildTitlePg := _value; container_.Set({self.}XmlChildTitlePg); end @@ -17683,7 +20057,7 @@ begin {self.}XmlChildFootnotePr := new FootnotePr(self, {self.}Prefix, "footnotePr"); container_.Set({self.}XmlChildFootnotePr); end - return {self.}XmlChildFootnotePr and not {self.}XmlChildFootnotePr.Removed ? {self.}XmlChildFootnotePr : fallback_.XmlChildFootnotePr; + return {self.}XmlChildFootnotePr and not {self.}XmlChildFootnotePr.Removed ? {self.}XmlChildFootnotePr : fallback_.FootnotePr; end; function SectPr.WriteXmlChildFootnotePr(_p1: any; _p2: any); @@ -17696,6 +20070,7 @@ begin end else if v is class(FootnotePr) then begin + v.Parent := self; {self.}XmlChildFootnotePr := v; container_.Set({self.}XmlChildFootnotePr); end @@ -17711,7 +20086,7 @@ begin {self.}XmlChildEndnotePr := new EndnotePr(self, {self.}Prefix, "endnotePr"); container_.Set({self.}XmlChildEndnotePr); end - return {self.}XmlChildEndnotePr and not {self.}XmlChildEndnotePr.Removed ? {self.}XmlChildEndnotePr : fallback_.XmlChildEndnotePr; + return {self.}XmlChildEndnotePr and not {self.}XmlChildEndnotePr.Removed ? {self.}XmlChildEndnotePr : fallback_.EndnotePr; end; function SectPr.WriteXmlChildEndnotePr(_p1: any; _p2: any); @@ -17724,6 +20099,7 @@ begin end else if v is class(EndnotePr) then begin + v.Parent := self; {self.}XmlChildEndnotePr := v; container_.Set({self.}XmlChildEndnotePr); end @@ -17739,7 +20115,7 @@ begin {self.}XmlChildType := new PureWVal(self, {self.}Prefix, "type"); container_.Set({self.}XmlChildType); end - return {self.}XmlChildType and not {self.}XmlChildType.Removed ? {self.}XmlChildType : fallback_.XmlChildType; + return {self.}XmlChildType and not {self.}XmlChildType.Removed ? {self.}XmlChildType : fallback_.Type; end; function SectPr.WriteXmlChildType(_p1: any; _p2: any); @@ -17752,6 +20128,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildType := v; container_.Set({self.}XmlChildType); end @@ -17767,7 +20144,7 @@ begin {self.}XmlChildPgSz := new PgSz(self, {self.}Prefix, "pgSz"); container_.Set({self.}XmlChildPgSz); end - return {self.}XmlChildPgSz and not {self.}XmlChildPgSz.Removed ? {self.}XmlChildPgSz : fallback_.XmlChildPgSz; + return {self.}XmlChildPgSz and not {self.}XmlChildPgSz.Removed ? {self.}XmlChildPgSz : fallback_.PgSz; end; function SectPr.WriteXmlChildPgSz(_p1: any; _p2: any); @@ -17780,6 +20157,7 @@ begin end else if v is class(PgSz) then begin + v.Parent := self; {self.}XmlChildPgSz := v; container_.Set({self.}XmlChildPgSz); end @@ -17795,7 +20173,7 @@ begin {self.}XmlChildPgMar := new PgMar(self, {self.}Prefix, "pgMar"); container_.Set({self.}XmlChildPgMar); end - return {self.}XmlChildPgMar and not {self.}XmlChildPgMar.Removed ? {self.}XmlChildPgMar : fallback_.XmlChildPgMar; + return {self.}XmlChildPgMar and not {self.}XmlChildPgMar.Removed ? {self.}XmlChildPgMar : fallback_.PgMar; end; function SectPr.WriteXmlChildPgMar(_p1: any; _p2: any); @@ -17808,6 +20186,7 @@ begin end else if v is class(PgMar) then begin + v.Parent := self; {self.}XmlChildPgMar := v; container_.Set({self.}XmlChildPgMar); end @@ -17823,7 +20202,7 @@ begin {self.}XmlChildPgNumType := new PgNumType(self, {self.}Prefix, "pgNumType"); container_.Set({self.}XmlChildPgNumType); end - return {self.}XmlChildPgNumType and not {self.}XmlChildPgNumType.Removed ? {self.}XmlChildPgNumType : fallback_.XmlChildPgNumType; + return {self.}XmlChildPgNumType and not {self.}XmlChildPgNumType.Removed ? {self.}XmlChildPgNumType : fallback_.PgNumType; end; function SectPr.WriteXmlChildPgNumType(_p1: any; _p2: any); @@ -17836,6 +20215,7 @@ begin end else if v is class(PgNumType) then begin + v.Parent := self; {self.}XmlChildPgNumType := v; container_.Set({self.}XmlChildPgNumType); end @@ -17851,7 +20231,7 @@ begin {self.}XmlChildCols := new Cols(self, {self.}Prefix, "cols"); container_.Set({self.}XmlChildCols); end - return {self.}XmlChildCols and not {self.}XmlChildCols.Removed ? {self.}XmlChildCols : fallback_.XmlChildCols; + return {self.}XmlChildCols and not {self.}XmlChildCols.Removed ? {self.}XmlChildCols : fallback_.Cols; end; function SectPr.WriteXmlChildCols(_p1: any; _p2: any); @@ -17864,6 +20244,7 @@ begin end else if v is class(Cols) then begin + v.Parent := self; {self.}XmlChildCols := v; container_.Set({self.}XmlChildCols); end @@ -17879,7 +20260,7 @@ begin {self.}XmlChildDocGrid := new DocGrid(self, {self.}Prefix, "docGrid"); container_.Set({self.}XmlChildDocGrid); end - return {self.}XmlChildDocGrid and not {self.}XmlChildDocGrid.Removed ? {self.}XmlChildDocGrid : fallback_.XmlChildDocGrid; + return {self.}XmlChildDocGrid and not {self.}XmlChildDocGrid.Removed ? {self.}XmlChildDocGrid : fallback_.DocGrid; end; function SectPr.WriteXmlChildDocGrid(_p1: any; _p2: any); @@ -17892,6 +20273,7 @@ begin end else if v is class(DocGrid) then begin + v.Parent := self; {self.}XmlChildDocGrid := v; container_.Set({self.}XmlChildDocGrid); end @@ -17907,7 +20289,7 @@ begin {self.}XmlChildTextDirection := new PureWVal(self, {self.}Prefix, "textDirection"); container_.Set({self.}XmlChildTextDirection); end - return {self.}XmlChildTextDirection and not {self.}XmlChildTextDirection.Removed ? {self.}XmlChildTextDirection : fallback_.XmlChildTextDirection; + return {self.}XmlChildTextDirection and not {self.}XmlChildTextDirection.Removed ? {self.}XmlChildTextDirection : fallback_.TextDirection; end; function SectPr.WriteXmlChildTextDirection(_p1: any; _p2: any); @@ -17920,6 +20302,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTextDirection := v; container_.Set({self.}XmlChildTextDirection); end @@ -17983,6 +20366,7 @@ end; function SectPr.AddHeaderReference(): Reference; begin obj := new Reference(self, {self.}Prefix, "headerReference"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -17990,6 +20374,7 @@ end; function SectPr.AddFooterReference(): Reference; begin obj := new Reference(self, {self.}Prefix, "footerReference"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -17997,6 +20382,7 @@ end; function SectPr.AppendHeaderReference(): Reference; begin obj := new Reference(self, {self.}Prefix, "headerReference"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -18004,24 +20390,25 @@ end; function SectPr.AppendFooterReference(): Reference; begin obj := new Reference(self, {self.}Prefix, "footerReference"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Reference.Create();overload; +function Reference.create();overload; begin - {self.}Create(nil, "w", ""); + {self.}create(nil, "w", ""); end; -function Reference.Create(_node: XmlNode);overload; +function Reference.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Reference.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Reference.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Reference.Init();override; @@ -18041,7 +20428,7 @@ function Reference.Copy(_obj: Reference);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; if not ifnil(_obj.Id) then @@ -18049,6 +20436,16 @@ begin tslassigning := tslassigning_backup; end; +function Reference.Clone(): Reference;override; +begin + obj := new Reference(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + return obj; +end; + function Reference.ConvertToPoint();override; begin @@ -18084,20 +20481,20 @@ begin {self.}XmlAttrId.Value := _value; end; -function PgNumType.Create();overload; +function PgNumType.create();overload; begin - {self.}Create(nil, "w", "pgNumType"); + {self.}create(nil, "w", "pgNumType"); end; -function PgNumType.Create(_node: XmlNode);overload; +function PgNumType.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function PgNumType.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PgNumType.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PgNumType.Init();override; @@ -18116,12 +20513,20 @@ function PgNumType.Copy(_obj: PgNumType);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Start) then {self.}Start := _obj.Start; tslassigning := tslassigning_backup; end; +function PgNumType.Clone(): PgNumType;override; +begin + obj := new PgNumType(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Start) then + obj.Start := {self.}Start; + return obj; +end; + function PgNumType.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrStart) then @@ -18143,20 +20548,20 @@ begin {self.}XmlAttrStart.Value := _value; end; -function PgSz.Create();overload; +function PgSz.create();overload; begin - {self.}Create(nil, "w", "pgSz"); + {self.}create(nil, "w", "pgSz"); end; -function PgSz.Create(_node: XmlNode);overload; +function PgSz.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function PgSz.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PgSz.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PgSz.Init();override; @@ -18178,7 +20583,7 @@ function PgSz.Copy(_obj: PgSz);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.W) then {self.}W := _obj.W; if not ifnil(_obj.H) then @@ -18190,6 +20595,20 @@ begin tslassigning := tslassigning_backup; end; +function PgSz.Clone(): PgSz;override; +begin + obj := new PgSz(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}W) then + obj.W := {self.}W; + if not ifnil({self.}H) then + obj.H := {self.}H; + if not ifnil({self.}Orient) then + obj.Orient := {self.}Orient; + if not ifnil({self.}Code) then + obj.Code := {self.}Code; + return obj; +end; + function PgSz.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrW) then @@ -18258,20 +20677,20 @@ begin {self.}XmlAttrCode.Value := _value; end; -function PgMar.Create();overload; +function PgMar.create();overload; begin - {self.}Create(nil, "w", "pgMar"); + {self.}create(nil, "w", "pgMar"); end; -function PgMar.Create(_node: XmlNode);overload; +function PgMar.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function PgMar.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PgMar.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PgMar.Init();override; @@ -18296,7 +20715,7 @@ function PgMar.Copy(_obj: PgMar);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Top) then {self.}Top := _obj.Top; if not ifnil(_obj.Right) then @@ -18314,6 +20733,26 @@ begin tslassigning := tslassigning_backup; end; +function PgMar.Clone(): PgMar;override; +begin + obj := new PgMar(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Top) then + obj.Top := {self.}Top; + if not ifnil({self.}Right) then + obj.Right := {self.}Right; + if not ifnil({self.}Bottom) then + obj.Bottom := {self.}Bottom; + if not ifnil({self.}Left) then + obj.Left := {self.}Left; + if not ifnil({self.}Header) then + obj.Header := {self.}Header; + if not ifnil({self.}Footer) then + obj.Footer := {self.}Footer; + if not ifnil({self.}Gutter) then + obj.Gutter := {self.}Gutter; + return obj; +end; + function PgMar.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrTop) then @@ -18437,20 +20876,20 @@ begin {self.}XmlAttrGutter.Value := _value; end; -function Cols.Create();overload; +function Cols.create();overload; begin - {self.}Create(nil, "w", "cols"); + {self.}create(nil, "w", "cols"); end; -function Cols.Create(_node: XmlNode);overload; +function Cols.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Cols.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Cols.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Cols.Init();override; @@ -18472,7 +20911,7 @@ function Cols.Copy(_obj: Cols);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Num) then {self.}Num := _obj.Num; if not ifnil(_obj.Space) then @@ -18482,6 +20921,21 @@ begin tslassigning := tslassigning_backup; end; +function Cols.Clone(): Cols;override; +begin + obj := new Cols(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Num) then + obj.Num := {self.}Num; + if not ifnil({self.}Space) then + obj.Space := {self.}Space; + if not ifnil({self.}EqualWidth) then + obj.EqualWidth := {self.}EqualWidth; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Cols.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrNum) then @@ -18567,6 +21021,7 @@ end; function Cols.AddCol(): Col; begin obj := new Col(self, {self.}Prefix, "col"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -18574,24 +21029,25 @@ end; function Cols.AppendCol(): Col; begin obj := new Col(self, {self.}Prefix, "col"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Col.Create();overload; +function Col.create();overload; begin - {self.}Create(nil, "w", "col"); + {self.}create(nil, "w", "col"); end; -function Col.Create(_node: XmlNode);overload; +function Col.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Col.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Col.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Col.Init();override; @@ -18611,7 +21067,7 @@ function Col.Copy(_obj: Col);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.W) then {self.}W := _obj.W; if not ifnil(_obj.Space) then @@ -18619,6 +21075,16 @@ begin tslassigning := tslassigning_backup; end; +function Col.Clone(): Col;override; +begin + obj := new Col(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}W) then + obj.W := {self.}W; + if not ifnil({self.}Space) then + obj.Space := {self.}Space; + return obj; +end; + function Col.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrW) then @@ -18657,20 +21123,20 @@ begin {self.}XmlAttrSpace.Value := _value; end; -function DocGrid.Create();overload; +function DocGrid.create();overload; begin - {self.}Create(nil, "w", "docGrid"); + {self.}create(nil, "w", "docGrid"); end; -function DocGrid.Create(_node: XmlNode);overload; +function DocGrid.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function DocGrid.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function DocGrid.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function DocGrid.Init();override; @@ -18690,7 +21156,7 @@ function DocGrid.Copy(_obj: DocGrid);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; if not ifnil(_obj.LinePitch) then @@ -18698,6 +21164,16 @@ begin tslassigning := tslassigning_backup; end; +function DocGrid.Clone(): DocGrid;override; +begin + obj := new DocGrid(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + if not ifnil({self.}LinePitch) then + obj.LinePitch := {self.}LinePitch; + return obj; +end; + function DocGrid.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrLinePitch) then @@ -18734,20 +21210,20 @@ begin {self.}XmlAttrLinePitch.Value := _value; end; -function Endnotes.Create();overload; +function Endnotes.create();overload; begin - {self.}Create(nil, "w", "endnotes"); + {self.}create(nil, "w", "endnotes"); end; -function Endnotes.Create(_node: XmlNode);overload; +function Endnotes.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Endnotes.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Endnotes.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Endnotes.Init();override; @@ -18767,12 +21243,23 @@ function Endnotes.Copy(_obj: Endnotes);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; tslassigning := tslassigning_backup; end; +function Endnotes.Clone(): Endnotes;override; +begin + obj := new Endnotes(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Endnotes.ConvertToPoint();override; begin elems := {self.}Endnotes(); @@ -18824,6 +21311,7 @@ end; function Endnotes.AddEndnote(): Endnote; begin obj := new Endnote(self, {self.}Prefix, "endnote"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -18831,24 +21319,25 @@ end; function Endnotes.AppendEndnote(): Endnote; begin obj := new Endnote(self, {self.}Prefix, "endnote"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Endnote.Create();overload; +function Endnote.create();overload; begin - {self.}Create(nil, "w", "endnote"); + {self.}create(nil, "w", "endnote"); end; -function Endnote.Create(_node: XmlNode);overload; +function Endnote.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Endnote.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Endnote.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Endnote.Init();override; @@ -18869,7 +21358,7 @@ function Endnote.Copy(_obj: Endnote);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; if not ifnil(_obj.Id) then @@ -18877,6 +21366,19 @@ begin tslassigning := tslassigning_backup; end; +function Endnote.Clone(): Endnote;override; +begin + obj := new Endnote(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Endnote.ConvertToPoint();override; begin elems := {self.}Ps(); @@ -18943,6 +21445,7 @@ end; function Endnote.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -18950,24 +21453,25 @@ end; function Endnote.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Footnotes.Create();overload; +function Footnotes.create();overload; begin - {self.}Create(nil, "w", "footnotes"); + {self.}create(nil, "w", "footnotes"); end; -function Footnotes.Create(_node: XmlNode);overload; +function Footnotes.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Footnotes.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Footnotes.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Footnotes.Init();override; @@ -18987,12 +21491,23 @@ function Footnotes.Copy(_obj: Footnotes);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; tslassigning := tslassigning_backup; end; +function Footnotes.Clone(): Footnotes;override; +begin + obj := new Footnotes(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Footnotes.ConvertToPoint();override; begin elems := {self.}Footnotes(); @@ -19044,6 +21559,7 @@ end; function Footnotes.AddFootnote(): Footnote; begin obj := new Footnote(self, {self.}Prefix, "footnote"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -19051,24 +21567,25 @@ end; function Footnotes.AppendFootnote(): Footnote; begin obj := new Footnote(self, {self.}Prefix, "footnote"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Footnote.Create();overload; +function Footnote.create();overload; begin - {self.}Create(nil, "w", "footnote"); + {self.}create(nil, "w", "footnote"); end; -function Footnote.Create(_node: XmlNode);overload; +function Footnote.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Footnote.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Footnote.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Footnote.Init();override; @@ -19089,7 +21606,7 @@ function Footnote.Copy(_obj: Footnote);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; if not ifnil(_obj.Id) then @@ -19097,6 +21614,19 @@ begin tslassigning := tslassigning_backup; end; +function Footnote.Clone(): Footnote;override; +begin + obj := new Footnote(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Footnote.ConvertToPoint();override; begin elems := {self.}Ps(); @@ -19163,6 +21693,7 @@ end; function Footnote.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -19170,24 +21701,25 @@ end; function Footnote.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Fonts.Create();overload; +function Fonts.create();overload; begin - {self.}Create(nil, "w", "fonts"); + {self.}create(nil, "w", "fonts"); end; -function Fonts.Create(_node: XmlNode);overload; +function Fonts.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Fonts.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Fonts.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Fonts.Init();override; @@ -19207,12 +21739,23 @@ function Fonts.Copy(_obj: Fonts);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; tslassigning := tslassigning_backup; end; +function Fonts.Clone(): Fonts;override; +begin + obj := new Fonts(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Fonts.ConvertToPoint();override; begin elems := {self.}Fonts(); @@ -19264,6 +21807,7 @@ end; function Fonts.AddFont(): Font; begin obj := new Font(self, {self.}Prefix, "font"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -19271,24 +21815,25 @@ end; function Fonts.AppendFont(): Font; begin obj := new Font(self, {self.}Prefix, "font"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Font.Create();overload; +function Font.create();overload; begin - {self.}Create(nil, "w", "font"); + {self.}create(nil, "w", "font"); end; -function Font.Create(_node: XmlNode);overload; +function Font.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Font.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Font.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Font.Init();override; @@ -19313,7 +21858,7 @@ function Font.Copy(_obj: Font);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.XmlChildAltName) then @@ -19331,6 +21876,28 @@ begin tslassigning := tslassigning_backup; end; +function Font.Clone(): Font;override; +begin + obj := new Font(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "altName": obj.AltName := element.Clone(); + pre + "panosel": obj.Panosel := element.Clone(); + pre + "charset": obj.Charset := element.Clone(); + pre + "family": obj.Family := element.Clone(); + pre + "pitch": obj.Pitch := element.Clone(); + pre + "sig": obj.Sig := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Font.ConvertToPoint();override; begin if not ifnil({self.}XmlChildAltName) then @@ -19369,7 +21936,7 @@ begin {self.}XmlChildAltName := new PureWVal(self, {self.}Prefix, "altName"); container_.Set({self.}XmlChildAltName); end - return {self.}XmlChildAltName and not {self.}XmlChildAltName.Removed ? {self.}XmlChildAltName : fallback_.XmlChildAltName; + return {self.}XmlChildAltName and not {self.}XmlChildAltName.Removed ? {self.}XmlChildAltName : fallback_.AltName; end; function Font.WriteXmlChildAltName(_p1: any; _p2: any); @@ -19382,6 +21949,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildAltName := v; container_.Set({self.}XmlChildAltName); end @@ -19397,7 +21965,7 @@ begin {self.}XmlChildPanosel := new PureWVal(self, {self.}Prefix, "panosel"); container_.Set({self.}XmlChildPanosel); end - return {self.}XmlChildPanosel and not {self.}XmlChildPanosel.Removed ? {self.}XmlChildPanosel : fallback_.XmlChildPanosel; + return {self.}XmlChildPanosel and not {self.}XmlChildPanosel.Removed ? {self.}XmlChildPanosel : fallback_.Panosel; end; function Font.WriteXmlChildPanosel(_p1: any; _p2: any); @@ -19410,6 +21978,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildPanosel := v; container_.Set({self.}XmlChildPanosel); end @@ -19425,7 +21994,7 @@ begin {self.}XmlChildCharset := new PureWVal(self, {self.}Prefix, "charset"); container_.Set({self.}XmlChildCharset); end - return {self.}XmlChildCharset and not {self.}XmlChildCharset.Removed ? {self.}XmlChildCharset : fallback_.XmlChildCharset; + return {self.}XmlChildCharset and not {self.}XmlChildCharset.Removed ? {self.}XmlChildCharset : fallback_.Charset; end; function Font.WriteXmlChildCharset(_p1: any; _p2: any); @@ -19438,6 +22007,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildCharset := v; container_.Set({self.}XmlChildCharset); end @@ -19453,7 +22023,7 @@ begin {self.}XmlChildFamily := new PureWVal(self, {self.}Prefix, "family"); container_.Set({self.}XmlChildFamily); end - return {self.}XmlChildFamily and not {self.}XmlChildFamily.Removed ? {self.}XmlChildFamily : fallback_.XmlChildFamily; + return {self.}XmlChildFamily and not {self.}XmlChildFamily.Removed ? {self.}XmlChildFamily : fallback_.Family; end; function Font.WriteXmlChildFamily(_p1: any; _p2: any); @@ -19466,6 +22036,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildFamily := v; container_.Set({self.}XmlChildFamily); end @@ -19481,7 +22052,7 @@ begin {self.}XmlChildPitch := new PureWVal(self, {self.}Prefix, "pitch"); container_.Set({self.}XmlChildPitch); end - return {self.}XmlChildPitch and not {self.}XmlChildPitch.Removed ? {self.}XmlChildPitch : fallback_.XmlChildPitch; + return {self.}XmlChildPitch and not {self.}XmlChildPitch.Removed ? {self.}XmlChildPitch : fallback_.Pitch; end; function Font.WriteXmlChildPitch(_p1: any; _p2: any); @@ -19494,6 +22065,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildPitch := v; container_.Set({self.}XmlChildPitch); end @@ -19509,7 +22081,7 @@ begin {self.}XmlChildSig := new Sig(self, {self.}Prefix, "sig"); container_.Set({self.}XmlChildSig); end - return {self.}XmlChildSig and not {self.}XmlChildSig.Removed ? {self.}XmlChildSig : fallback_.XmlChildSig; + return {self.}XmlChildSig and not {self.}XmlChildSig.Removed ? {self.}XmlChildSig : fallback_.Sig; end; function Font.WriteXmlChildSig(_p1: any; _p2: any); @@ -19522,6 +22094,7 @@ begin end else if v is class(Sig) then begin + v.Parent := self; {self.}XmlChildSig := v; container_.Set({self.}XmlChildSig); end @@ -19530,20 +22103,20 @@ begin end end; -function Sig.Create();overload; +function Sig.create();overload; begin - {self.}Create(nil, "w", "sig"); + {self.}create(nil, "w", "sig"); end; -function Sig.Create(_node: XmlNode);overload; +function Sig.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Sig.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Sig.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Sig.Init();override; @@ -19567,7 +22140,7 @@ function Sig.Copy(_obj: Sig);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Usb0) then {self.}Usb0 := _obj.Usb0; if not ifnil(_obj.Usb1) then @@ -19583,6 +22156,24 @@ begin tslassigning := tslassigning_backup; end; +function Sig.Clone(): Sig;override; +begin + obj := new Sig(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Usb0) then + obj.Usb0 := {self.}Usb0; + if not ifnil({self.}Usb1) then + obj.Usb1 := {self.}Usb1; + if not ifnil({self.}Usb2) then + obj.Usb2 := {self.}Usb2; + if not ifnil({self.}Usb3) then + obj.Usb3 := {self.}Usb3; + if not ifnil({self.}Csb0) then + obj.Csb0 := {self.}Csb0; + if not ifnil({self.}Csb1) then + obj.Csb1 := {self.}Csb1; + return obj; +end; + function Sig.ConvertToPoint();override; begin @@ -19678,20 +22269,20 @@ begin {self.}XmlAttrCsb1.Value := _value; end; -function Settings.Create();overload; +function Settings.create();overload; begin - {self.}Create(nil, "w", "settings"); + {self.}create(nil, "w", "settings"); end; -function Settings.Create(_node: XmlNode);overload; +function Settings.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Settings.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Settings.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Settings.Init();override; @@ -19709,10 +22300,31 @@ begin "sig": makeweakref(thisFunction(WriteXmlAttrSigN)), ); sorted_child_ := array( - pre + "docId": array(0, makeweakref(thisFunction(ReadXmlChildDocId))), - "w14:docId": array(1, makeweakref(thisFunction(ReadXmlChildW14DocId))), - "w15:docId": array(2, makeweakref(thisFunction(ReadXmlChildW15DocId))), - "w15:chartTrackingRefBased": array(3, makeweakref(thisFunction(ReadXmlChildChartTrackingRefBased))), + pre + "zoom": array(0, makeweakref(thisFunction(ReadXmlChildZoom))), + pre + "bordersDoNotSurroundHeader": array(1, makeweakref(thisFunction(ReadXmlChildBordersDoNotSurroundHeader))), + pre + "bordersDoNotSurroundFooter": array(2, makeweakref(thisFunction(ReadXmlChildBordersDoNotSurroundFooter))), + pre + "defaultTabStop": array(3, makeweakref(thisFunction(ReadXmlChildDefaultTabStop))), + pre + "evenAndOddHeaders": array(4, makeweakref(thisFunction(ReadXmlChildEvenAndOddHeaders))), + pre + "drawingGridVerticalSpacing": array(5, makeweakref(thisFunction(ReadXmlChildDrawingGridVerticalSpacing))), + pre + "displayHorizontalDrawingGridEvery": array(6, makeweakref(thisFunction(ReadXmlChildDisplayHorizontalDrawingGridEvery))), + pre + "DisplayVerticalDrawingGridEvery": array(7, makeweakref(thisFunction(ReadXmlChildDisplayVerticalDrawingGridEvery))), + pre + "characterSpacingControl": array(8, makeweakref(thisFunction(ReadXmlChildCharacterSpacingControl))), + pre + "hdrShapeDefaults": array(9, makeweakref(thisFunction(ReadXmlChildHdrShapeDefaults))), + pre + "footnotePr": array(10, makeweakref(thisFunction(ReadXmlChildFootnotePr))), + pre + "endnotePr": array(11, makeweakref(thisFunction(ReadXmlChildEndnotePr))), + pre + "Compat": array(12, makeweakref(thisFunction(ReadXmlChildCompat))), + pre + "rsids": array(13, makeweakref(thisFunction(ReadXmlChildRsids))), + "m:mathPr": array(14, makeweakref(thisFunction(ReadXmlChildMathPr))), + pre + "themeFontLang": array(15, makeweakref(thisFunction(ReadXmlChildThemeFontLang))), + pre + "clrSchemeMapping": array(16, makeweakref(thisFunction(ReadXmlChildClrSchemeMapping))), + pre + "doNotIncludeSubdocsInStats": array(17, makeweakref(thisFunction(ReadXmlChildDoNotIncludeSubdocsInStats))), + pre + "shapeDefaults": array(18, makeweakref(thisFunction(ReadXmlChildShapeDefaults))), + pre + "decimalSymbol": array(19, makeweakref(thisFunction(ReadXmlChildDecimalSymbol))), + pre + "listSeparator": array(20, makeweakref(thisFunction(ReadXmlChildListSeparator))), + pre + "docId": array(21, makeweakref(thisFunction(ReadXmlChildDocId))), + "w14:docId": array(22, makeweakref(thisFunction(ReadXmlChildW14DocId))), + "w15:docId": array(23, makeweakref(thisFunction(ReadXmlChildW15DocId))), + "w15:chartTrackingRefBased": array(24, makeweakref(thisFunction(ReadXmlChildChartTrackingRefBased))), ); container_ := new TSOfficeContainer(sorted_child_); end; @@ -19721,7 +22333,7 @@ function Settings.Copy(_obj: Settings);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.MCIgnorable) then {self.}MCIgnorable := _obj.MCIgnorable; if not ifnil(_obj.IgnorableN) then @@ -19738,6 +22350,48 @@ begin {self.}MCSig := _obj.MCSig; if not ifnil(_obj.SigN) then {self.}SigN := _obj.SigN; + if not ifnil(_obj.XmlChildZoom) then + {self.}Zoom.Copy(_obj.XmlChildZoom); + if not ifnil(_obj.XmlChildBordersDoNotSurroundHeader) then + ifnil({self.}XmlChildBordersDoNotSurroundHeader) ? {self.}BordersDoNotSurroundHeader.Copy(_obj.XmlChildBordersDoNotSurroundHeader) : {self.}XmlChildBordersDoNotSurroundHeader.Copy(_obj.XmlChildBordersDoNotSurroundHeader); + if not ifnil(_obj.XmlChildBordersDoNotSurroundFooter) then + ifnil({self.}XmlChildBordersDoNotSurroundFooter) ? {self.}BordersDoNotSurroundFooter.Copy(_obj.XmlChildBordersDoNotSurroundFooter) : {self.}XmlChildBordersDoNotSurroundFooter.Copy(_obj.XmlChildBordersDoNotSurroundFooter); + if not ifnil(_obj.XmlChildDefaultTabStop) then + {self.}DefaultTabStop.Copy(_obj.XmlChildDefaultTabStop); + if not ifnil(_obj.XmlChildEvenAndOddHeaders) then + ifnil({self.}XmlChildEvenAndOddHeaders) ? {self.}EvenAndOddHeaders.Copy(_obj.XmlChildEvenAndOddHeaders) : {self.}XmlChildEvenAndOddHeaders.Copy(_obj.XmlChildEvenAndOddHeaders); + if not ifnil(_obj.XmlChildDrawingGridVerticalSpacing) then + {self.}DrawingGridVerticalSpacing.Copy(_obj.XmlChildDrawingGridVerticalSpacing); + if not ifnil(_obj.XmlChildDisplayHorizontalDrawingGridEvery) then + {self.}DisplayHorizontalDrawingGridEvery.Copy(_obj.XmlChildDisplayHorizontalDrawingGridEvery); + if not ifnil(_obj.XmlChildDisplayVerticalDrawingGridEvery) then + {self.}DisplayVerticalDrawingGridEvery.Copy(_obj.XmlChildDisplayVerticalDrawingGridEvery); + if not ifnil(_obj.XmlChildCharacterSpacingControl) then + {self.}CharacterSpacingControl.Copy(_obj.XmlChildCharacterSpacingControl); + if not ifnil(_obj.XmlChildHdrShapeDefaults) then + {self.}HdrShapeDefaults.Copy(_obj.XmlChildHdrShapeDefaults); + if not ifnil(_obj.XmlChildFootnotePr) then + {self.}FootnotePr.Copy(_obj.XmlChildFootnotePr); + if not ifnil(_obj.XmlChildEndnotePr) then + {self.}EndnotePr.Copy(_obj.XmlChildEndnotePr); + if not ifnil(_obj.XmlChildCompat) then + {self.}Compat.Copy(_obj.XmlChildCompat); + if not ifnil(_obj.XmlChildRsids) then + {self.}Rsids.Copy(_obj.XmlChildRsids); + if not ifnil(_obj.XmlChildMathPr) then + {self.}MathPr.Copy(_obj.XmlChildMathPr); + if not ifnil(_obj.XmlChildThemeFontLang) then + {self.}ThemeFontLang.Copy(_obj.XmlChildThemeFontLang); + if not ifnil(_obj.XmlChildClrSchemeMapping) then + {self.}ClrSchemeMapping.Copy(_obj.XmlChildClrSchemeMapping); + if not ifnil(_obj.XmlChildDoNotIncludeSubdocsInStats) then + ifnil({self.}XmlChildDoNotIncludeSubdocsInStats) ? {self.}DoNotIncludeSubdocsInStats.Copy(_obj.XmlChildDoNotIncludeSubdocsInStats) : {self.}XmlChildDoNotIncludeSubdocsInStats.Copy(_obj.XmlChildDoNotIncludeSubdocsInStats); + if not ifnil(_obj.XmlChildShapeDefaults) then + {self.}ShapeDefaults.Copy(_obj.XmlChildShapeDefaults); + if not ifnil(_obj.XmlChildDecimalSymbol) then + {self.}DecimalSymbol.Copy(_obj.XmlChildDecimalSymbol); + if not ifnil(_obj.XmlChildListSeparator) then + {self.}ListSeparator.Copy(_obj.XmlChildListSeparator); if not ifnil(_obj.XmlChildDocId) then {self.}DocId.Copy(_obj.XmlChildDocId); if not ifnil(_obj.XmlChildW14DocId) then @@ -19749,8 +22403,97 @@ begin tslassigning := tslassigning_backup; end; +function Settings.Clone(): Settings;override; +begin + obj := new Settings(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}MCIgnorable) then + obj.MCIgnorable := {self.}MCIgnorable; + if not ifnil({self.}IgnorableN) then + obj.IgnorableN := {self.}IgnorableN; + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + if not ifnil({self.}MCPr) then + obj.MCPr := {self.}MCPr; + if not ifnil({self.}Pr) then + obj.Pr := {self.}Pr; + if not ifnil({self.}XSig) then + obj.XSig := {self.}XSig; + if not ifnil({self.}MCSig) then + obj.MCSig := {self.}MCSig; + if not ifnil({self.}SigN) then + obj.SigN := {self.}SigN; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "zoom": obj.Zoom := element.Clone(); + pre + "bordersDoNotSurroundHeader": obj.BordersDoNotSurroundHeader := element.Clone(); + pre + "bordersDoNotSurroundFooter": obj.BordersDoNotSurroundFooter := element.Clone(); + pre + "defaultTabStop": obj.DefaultTabStop := element.Clone(); + pre + "evenAndOddHeaders": obj.EvenAndOddHeaders := element.Clone(); + pre + "drawingGridVerticalSpacing": obj.DrawingGridVerticalSpacing := element.Clone(); + pre + "displayHorizontalDrawingGridEvery": obj.DisplayHorizontalDrawingGridEvery := element.Clone(); + pre + "DisplayVerticalDrawingGridEvery": obj.DisplayVerticalDrawingGridEvery := element.Clone(); + pre + "characterSpacingControl": obj.CharacterSpacingControl := element.Clone(); + pre + "hdrShapeDefaults": obj.HdrShapeDefaults := element.Clone(); + pre + "footnotePr": obj.FootnotePr := element.Clone(); + pre + "endnotePr": obj.EndnotePr := element.Clone(); + pre + "Compat": obj.Compat := element.Clone(); + pre + "rsids": obj.Rsids := element.Clone(); + "m:mathPr": obj.MathPr := element.Clone(); + pre + "themeFontLang": obj.ThemeFontLang := element.Clone(); + pre + "clrSchemeMapping": obj.ClrSchemeMapping := element.Clone(); + pre + "doNotIncludeSubdocsInStats": obj.DoNotIncludeSubdocsInStats := element.Clone(); + pre + "shapeDefaults": obj.ShapeDefaults := element.Clone(); + pre + "decimalSymbol": obj.DecimalSymbol := element.Clone(); + pre + "listSeparator": obj.ListSeparator := element.Clone(); + pre + "docId": obj.DocId := element.Clone(); + "w14:docId": obj.W14DocId := element.Clone(); + "w15:docId": obj.W15DocId := element.Clone(); + "w15:chartTrackingRefBased": obj.ChartTrackingRefBased := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Settings.ConvertToPoint();override; begin + if not ifnil({self.}XmlChildZoom) then + {self.}XmlChildZoom.ConvertToPoint(); + if not ifnil({self.}XmlChildDefaultTabStop) then + {self.}XmlChildDefaultTabStop.ConvertToPoint(); + if not ifnil({self.}XmlChildDrawingGridVerticalSpacing) then + {self.}XmlChildDrawingGridVerticalSpacing.ConvertToPoint(); + if not ifnil({self.}XmlChildDisplayHorizontalDrawingGridEvery) then + {self.}XmlChildDisplayHorizontalDrawingGridEvery.ConvertToPoint(); + if not ifnil({self.}XmlChildDisplayVerticalDrawingGridEvery) then + {self.}XmlChildDisplayVerticalDrawingGridEvery.ConvertToPoint(); + if not ifnil({self.}XmlChildCharacterSpacingControl) then + {self.}XmlChildCharacterSpacingControl.ConvertToPoint(); + if not ifnil({self.}XmlChildHdrShapeDefaults) then + {self.}XmlChildHdrShapeDefaults.ConvertToPoint(); + if not ifnil({self.}XmlChildFootnotePr) then + {self.}XmlChildFootnotePr.ConvertToPoint(); + if not ifnil({self.}XmlChildEndnotePr) then + {self.}XmlChildEndnotePr.ConvertToPoint(); + if not ifnil({self.}XmlChildCompat) then + {self.}XmlChildCompat.ConvertToPoint(); + if not ifnil({self.}XmlChildRsids) then + {self.}XmlChildRsids.ConvertToPoint(); + if not ifnil({self.}XmlChildMathPr) then + {self.}XmlChildMathPr.ConvertToPoint(); + if not ifnil({self.}XmlChildThemeFontLang) then + {self.}XmlChildThemeFontLang.ConvertToPoint(); + if not ifnil({self.}XmlChildClrSchemeMapping) then + {self.}XmlChildClrSchemeMapping.ConvertToPoint(); + if not ifnil({self.}XmlChildShapeDefaults) then + {self.}XmlChildShapeDefaults.ConvertToPoint(); + if not ifnil({self.}XmlChildDecimalSymbol) then + {self.}XmlChildDecimalSymbol.ConvertToPoint(); + if not ifnil({self.}XmlChildListSeparator) then + {self.}XmlChildListSeparator.ConvertToPoint(); if not ifnil({self.}XmlChildDocId) then {self.}XmlChildDocId.ConvertToPoint(); if not ifnil({self.}XmlChildW14DocId) then @@ -19897,6 +22640,118 @@ begin {self.}XmlAttrSigN.Value := _value; end; +function Settings.ReadXmlChildBordersDoNotSurroundHeader(); +begin + if tslassigning and (ifnil({self.}XmlChildBordersDoNotSurroundHeader) or {self.}XmlChildBordersDoNotSurroundHeader.Removed) then + begin + {self.}XmlChildBordersDoNotSurroundHeader := new OpenXmlSimpleType(self, {self.}Prefix, "bordersDoNotSurroundHeader"); + container_.Set({self.}XmlChildBordersDoNotSurroundHeader); + end + return {self.}XmlChildBordersDoNotSurroundHeader and not {self.}XmlChildBordersDoNotSurroundHeader.Removed ? {self.}XmlChildBordersDoNotSurroundHeader : fallback_.BordersDoNotSurroundHeader; +end; + +function Settings.WriteXmlChildBordersDoNotSurroundHeader(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildBordersDoNotSurroundHeader) then + {self.}RemoveChild({self.}XmlChildBordersDoNotSurroundHeader); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildBordersDoNotSurroundHeader := _value; + container_.Set({self.}XmlChildBordersDoNotSurroundHeader); + end + else begin + raise "Invalid assignment: BordersDoNotSurroundHeader expects nil or OpenXmlSimpleType"; + end +end; + +function Settings.ReadXmlChildBordersDoNotSurroundFooter(); +begin + if tslassigning and (ifnil({self.}XmlChildBordersDoNotSurroundFooter) or {self.}XmlChildBordersDoNotSurroundFooter.Removed) then + begin + {self.}XmlChildBordersDoNotSurroundFooter := new OpenXmlSimpleType(self, {self.}Prefix, "bordersDoNotSurroundFooter"); + container_.Set({self.}XmlChildBordersDoNotSurroundFooter); + end + return {self.}XmlChildBordersDoNotSurroundFooter and not {self.}XmlChildBordersDoNotSurroundFooter.Removed ? {self.}XmlChildBordersDoNotSurroundFooter : fallback_.BordersDoNotSurroundFooter; +end; + +function Settings.WriteXmlChildBordersDoNotSurroundFooter(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildBordersDoNotSurroundFooter) then + {self.}RemoveChild({self.}XmlChildBordersDoNotSurroundFooter); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildBordersDoNotSurroundFooter := _value; + container_.Set({self.}XmlChildBordersDoNotSurroundFooter); + end + else begin + raise "Invalid assignment: BordersDoNotSurroundFooter expects nil or OpenXmlSimpleType"; + end +end; + +function Settings.ReadXmlChildEvenAndOddHeaders(); +begin + if tslassigning and (ifnil({self.}XmlChildEvenAndOddHeaders) or {self.}XmlChildEvenAndOddHeaders.Removed) then + begin + {self.}XmlChildEvenAndOddHeaders := new OpenXmlSimpleType(self, {self.}Prefix, "evenAndOddHeaders"); + container_.Set({self.}XmlChildEvenAndOddHeaders); + end + return {self.}XmlChildEvenAndOddHeaders and not {self.}XmlChildEvenAndOddHeaders.Removed ? {self.}XmlChildEvenAndOddHeaders : fallback_.EvenAndOddHeaders; +end; + +function Settings.WriteXmlChildEvenAndOddHeaders(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildEvenAndOddHeaders) then + {self.}RemoveChild({self.}XmlChildEvenAndOddHeaders); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildEvenAndOddHeaders := _value; + container_.Set({self.}XmlChildEvenAndOddHeaders); + end + else begin + raise "Invalid assignment: EvenAndOddHeaders expects nil or OpenXmlSimpleType"; + end +end; + +function Settings.ReadXmlChildDoNotIncludeSubdocsInStats(); +begin + if tslassigning and (ifnil({self.}XmlChildDoNotIncludeSubdocsInStats) or {self.}XmlChildDoNotIncludeSubdocsInStats.Removed) then + begin + {self.}XmlChildDoNotIncludeSubdocsInStats := new OpenXmlSimpleType(self, {self.}Prefix, "doNotIncludeSubdocsInStats"); + container_.Set({self.}XmlChildDoNotIncludeSubdocsInStats); + end + return {self.}XmlChildDoNotIncludeSubdocsInStats and not {self.}XmlChildDoNotIncludeSubdocsInStats.Removed ? {self.}XmlChildDoNotIncludeSubdocsInStats : fallback_.DoNotIncludeSubdocsInStats; +end; + +function Settings.WriteXmlChildDoNotIncludeSubdocsInStats(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildDoNotIncludeSubdocsInStats) then + {self.}RemoveChild({self.}XmlChildDoNotIncludeSubdocsInStats); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildDoNotIncludeSubdocsInStats := _value; + container_.Set({self.}XmlChildDoNotIncludeSubdocsInStats); + end + else begin + raise "Invalid assignment: DoNotIncludeSubdocsInStats expects nil or OpenXmlSimpleType"; + end +end; + function Settings.ReadXmlChildChartTrackingRefBased(); begin if tslassigning and (ifnil({self.}XmlChildChartTrackingRefBased) or {self.}XmlChildChartTrackingRefBased.Removed) then @@ -19904,7 +22759,7 @@ begin {self.}XmlChildChartTrackingRefBased := new OpenXmlSimpleType(self, "w15", "chartTrackingRefBased"); container_.Set({self.}XmlChildChartTrackingRefBased); end - return {self.}XmlChildChartTrackingRefBased and not {self.}XmlChildChartTrackingRefBased.Removed ? {self.}XmlChildChartTrackingRefBased : fallback_.XmlChildChartTrackingRefBased; + return {self.}XmlChildChartTrackingRefBased and not {self.}XmlChildChartTrackingRefBased.Removed ? {self.}XmlChildChartTrackingRefBased : fallback_.ChartTrackingRefBased; end; function Settings.WriteXmlChildChartTrackingRefBased(_value: nil_or_OpenXmlSimpleType); @@ -19916,6 +22771,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildChartTrackingRefBased := _value; container_.Set({self.}XmlChildChartTrackingRefBased); end @@ -19924,6 +22780,499 @@ begin end end; +function Settings.ReadXmlChildZoom(): Zoom; +begin + if tslassigning and (ifnil({self.}XmlChildZoom) or {self.}XmlChildZoom.Removed) then + begin + {self.}XmlChildZoom := new Zoom(self, {self.}Prefix, "zoom"); + container_.Set({self.}XmlChildZoom); + end + return {self.}XmlChildZoom and not {self.}XmlChildZoom.Removed ? {self.}XmlChildZoom : fallback_.Zoom; +end; + +function Settings.WriteXmlChildZoom(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildZoom) then + {self.}RemoveChild({self.}XmlChildZoom); + end + else if v is class(Zoom) then + begin + v.Parent := self; + {self.}XmlChildZoom := v; + container_.Set({self.}XmlChildZoom); + end + else begin + raise "Invalid assignment: Zoom expects Zoom or nil"; + end +end; + +function Settings.ReadXmlChildDefaultTabStop(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildDefaultTabStop) or {self.}XmlChildDefaultTabStop.Removed) then + begin + {self.}XmlChildDefaultTabStop := new PureWVal(self, {self.}Prefix, "defaultTabStop"); + container_.Set({self.}XmlChildDefaultTabStop); + end + return {self.}XmlChildDefaultTabStop and not {self.}XmlChildDefaultTabStop.Removed ? {self.}XmlChildDefaultTabStop : fallback_.DefaultTabStop; +end; + +function Settings.WriteXmlChildDefaultTabStop(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDefaultTabStop) then + {self.}RemoveChild({self.}XmlChildDefaultTabStop); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildDefaultTabStop := v; + container_.Set({self.}XmlChildDefaultTabStop); + end + else begin + raise "Invalid assignment: DefaultTabStop expects PureWVal or nil"; + end +end; + +function Settings.ReadXmlChildDrawingGridVerticalSpacing(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildDrawingGridVerticalSpacing) or {self.}XmlChildDrawingGridVerticalSpacing.Removed) then + begin + {self.}XmlChildDrawingGridVerticalSpacing := new PureWVal(self, {self.}Prefix, "drawingGridVerticalSpacing"); + container_.Set({self.}XmlChildDrawingGridVerticalSpacing); + end + return {self.}XmlChildDrawingGridVerticalSpacing and not {self.}XmlChildDrawingGridVerticalSpacing.Removed ? {self.}XmlChildDrawingGridVerticalSpacing : fallback_.DrawingGridVerticalSpacing; +end; + +function Settings.WriteXmlChildDrawingGridVerticalSpacing(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDrawingGridVerticalSpacing) then + {self.}RemoveChild({self.}XmlChildDrawingGridVerticalSpacing); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildDrawingGridVerticalSpacing := v; + container_.Set({self.}XmlChildDrawingGridVerticalSpacing); + end + else begin + raise "Invalid assignment: DrawingGridVerticalSpacing expects PureWVal or nil"; + end +end; + +function Settings.ReadXmlChildDisplayHorizontalDrawingGridEvery(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildDisplayHorizontalDrawingGridEvery) or {self.}XmlChildDisplayHorizontalDrawingGridEvery.Removed) then + begin + {self.}XmlChildDisplayHorizontalDrawingGridEvery := new PureWVal(self, {self.}Prefix, "displayHorizontalDrawingGridEvery"); + container_.Set({self.}XmlChildDisplayHorizontalDrawingGridEvery); + end + return {self.}XmlChildDisplayHorizontalDrawingGridEvery and not {self.}XmlChildDisplayHorizontalDrawingGridEvery.Removed ? {self.}XmlChildDisplayHorizontalDrawingGridEvery : fallback_.DisplayHorizontalDrawingGridEvery; +end; + +function Settings.WriteXmlChildDisplayHorizontalDrawingGridEvery(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDisplayHorizontalDrawingGridEvery) then + {self.}RemoveChild({self.}XmlChildDisplayHorizontalDrawingGridEvery); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildDisplayHorizontalDrawingGridEvery := v; + container_.Set({self.}XmlChildDisplayHorizontalDrawingGridEvery); + end + else begin + raise "Invalid assignment: DisplayHorizontalDrawingGridEvery expects PureWVal or nil"; + end +end; + +function Settings.ReadXmlChildDisplayVerticalDrawingGridEvery(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildDisplayVerticalDrawingGridEvery) or {self.}XmlChildDisplayVerticalDrawingGridEvery.Removed) then + begin + {self.}XmlChildDisplayVerticalDrawingGridEvery := new PureWVal(self, {self.}Prefix, "DisplayVerticalDrawingGridEvery"); + container_.Set({self.}XmlChildDisplayVerticalDrawingGridEvery); + end + return {self.}XmlChildDisplayVerticalDrawingGridEvery and not {self.}XmlChildDisplayVerticalDrawingGridEvery.Removed ? {self.}XmlChildDisplayVerticalDrawingGridEvery : fallback_.DisplayVerticalDrawingGridEvery; +end; + +function Settings.WriteXmlChildDisplayVerticalDrawingGridEvery(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDisplayVerticalDrawingGridEvery) then + {self.}RemoveChild({self.}XmlChildDisplayVerticalDrawingGridEvery); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildDisplayVerticalDrawingGridEvery := v; + container_.Set({self.}XmlChildDisplayVerticalDrawingGridEvery); + end + else begin + raise "Invalid assignment: DisplayVerticalDrawingGridEvery expects PureWVal or nil"; + end +end; + +function Settings.ReadXmlChildCharacterSpacingControl(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildCharacterSpacingControl) or {self.}XmlChildCharacterSpacingControl.Removed) then + begin + {self.}XmlChildCharacterSpacingControl := new PureWVal(self, {self.}Prefix, "characterSpacingControl"); + container_.Set({self.}XmlChildCharacterSpacingControl); + end + return {self.}XmlChildCharacterSpacingControl and not {self.}XmlChildCharacterSpacingControl.Removed ? {self.}XmlChildCharacterSpacingControl : fallback_.CharacterSpacingControl; +end; + +function Settings.WriteXmlChildCharacterSpacingControl(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCharacterSpacingControl) then + {self.}RemoveChild({self.}XmlChildCharacterSpacingControl); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildCharacterSpacingControl := v; + container_.Set({self.}XmlChildCharacterSpacingControl); + end + else begin + raise "Invalid assignment: CharacterSpacingControl expects PureWVal or nil"; + end +end; + +function Settings.ReadXmlChildHdrShapeDefaults(): HdrShapeDefaults; +begin + if tslassigning and (ifnil({self.}XmlChildHdrShapeDefaults) or {self.}XmlChildHdrShapeDefaults.Removed) then + begin + {self.}XmlChildHdrShapeDefaults := new HdrShapeDefaults(self, {self.}Prefix, "hdrShapeDefaults"); + container_.Set({self.}XmlChildHdrShapeDefaults); + end + return {self.}XmlChildHdrShapeDefaults and not {self.}XmlChildHdrShapeDefaults.Removed ? {self.}XmlChildHdrShapeDefaults : fallback_.HdrShapeDefaults; +end; + +function Settings.WriteXmlChildHdrShapeDefaults(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildHdrShapeDefaults) then + {self.}RemoveChild({self.}XmlChildHdrShapeDefaults); + end + else if v is class(HdrShapeDefaults) then + begin + v.Parent := self; + {self.}XmlChildHdrShapeDefaults := v; + container_.Set({self.}XmlChildHdrShapeDefaults); + end + else begin + raise "Invalid assignment: HdrShapeDefaults expects HdrShapeDefaults or nil"; + end +end; + +function Settings.ReadXmlChildFootnotePr(): FootnotePr; +begin + if tslassigning and (ifnil({self.}XmlChildFootnotePr) or {self.}XmlChildFootnotePr.Removed) then + begin + {self.}XmlChildFootnotePr := new FootnotePr(self, {self.}Prefix, "footnotePr"); + container_.Set({self.}XmlChildFootnotePr); + end + return {self.}XmlChildFootnotePr and not {self.}XmlChildFootnotePr.Removed ? {self.}XmlChildFootnotePr : fallback_.FootnotePr; +end; + +function Settings.WriteXmlChildFootnotePr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFootnotePr) then + {self.}RemoveChild({self.}XmlChildFootnotePr); + end + else if v is class(FootnotePr) then + begin + v.Parent := self; + {self.}XmlChildFootnotePr := v; + container_.Set({self.}XmlChildFootnotePr); + end + else begin + raise "Invalid assignment: FootnotePr expects FootnotePr or nil"; + end +end; + +function Settings.ReadXmlChildEndnotePr(): EndnotePr; +begin + if tslassigning and (ifnil({self.}XmlChildEndnotePr) or {self.}XmlChildEndnotePr.Removed) then + begin + {self.}XmlChildEndnotePr := new EndnotePr(self, {self.}Prefix, "endnotePr"); + container_.Set({self.}XmlChildEndnotePr); + end + return {self.}XmlChildEndnotePr and not {self.}XmlChildEndnotePr.Removed ? {self.}XmlChildEndnotePr : fallback_.EndnotePr; +end; + +function Settings.WriteXmlChildEndnotePr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEndnotePr) then + {self.}RemoveChild({self.}XmlChildEndnotePr); + end + else if v is class(EndnotePr) then + begin + v.Parent := self; + {self.}XmlChildEndnotePr := v; + container_.Set({self.}XmlChildEndnotePr); + end + else begin + raise "Invalid assignment: EndnotePr expects EndnotePr or nil"; + end +end; + +function Settings.ReadXmlChildCompat(): Compat; +begin + if tslassigning and (ifnil({self.}XmlChildCompat) or {self.}XmlChildCompat.Removed) then + begin + {self.}XmlChildCompat := new Compat(self, {self.}Prefix, "Compat"); + container_.Set({self.}XmlChildCompat); + end + return {self.}XmlChildCompat and not {self.}XmlChildCompat.Removed ? {self.}XmlChildCompat : fallback_.Compat; +end; + +function Settings.WriteXmlChildCompat(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCompat) then + {self.}RemoveChild({self.}XmlChildCompat); + end + else if v is class(Compat) then + begin + v.Parent := self; + {self.}XmlChildCompat := v; + container_.Set({self.}XmlChildCompat); + end + else begin + raise "Invalid assignment: Compat expects Compat or nil"; + end +end; + +function Settings.ReadXmlChildRsids(): Rsids; +begin + if tslassigning and (ifnil({self.}XmlChildRsids) or {self.}XmlChildRsids.Removed) then + begin + {self.}XmlChildRsids := new Rsids(self, {self.}Prefix, "rsids"); + container_.Set({self.}XmlChildRsids); + end + return {self.}XmlChildRsids and not {self.}XmlChildRsids.Removed ? {self.}XmlChildRsids : fallback_.Rsids; +end; + +function Settings.WriteXmlChildRsids(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRsids) then + {self.}RemoveChild({self.}XmlChildRsids); + end + else if v is class(Rsids) then + begin + v.Parent := self; + {self.}XmlChildRsids := v; + container_.Set({self.}XmlChildRsids); + end + else begin + raise "Invalid assignment: Rsids expects Rsids or nil"; + end +end; + +function Settings.ReadXmlChildMathPr(): MathPr; +begin + if tslassigning and (ifnil({self.}XmlChildMathPr) or {self.}XmlChildMathPr.Removed) then + begin + {self.}XmlChildMathPr := new SharedML.MathPr(self, "m", "mathPr"); + container_.Set({self.}XmlChildMathPr); + end + return {self.}XmlChildMathPr and not {self.}XmlChildMathPr.Removed ? {self.}XmlChildMathPr : fallback_.MathPr; +end; + +function Settings.WriteXmlChildMathPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildMathPr) then + {self.}RemoveChild({self.}XmlChildMathPr); + end + else if v is class(MathPr) then + begin + v.Parent := self; + {self.}XmlChildMathPr := v; + container_.Set({self.}XmlChildMathPr); + end + else begin + raise "Invalid assignment: MathPr expects MathPr or nil"; + end +end; + +function Settings.ReadXmlChildThemeFontLang(): ThemeFontLang; +begin + if tslassigning and (ifnil({self.}XmlChildThemeFontLang) or {self.}XmlChildThemeFontLang.Removed) then + begin + {self.}XmlChildThemeFontLang := new ThemeFontLang(self, {self.}Prefix, "themeFontLang"); + container_.Set({self.}XmlChildThemeFontLang); + end + return {self.}XmlChildThemeFontLang and not {self.}XmlChildThemeFontLang.Removed ? {self.}XmlChildThemeFontLang : fallback_.ThemeFontLang; +end; + +function Settings.WriteXmlChildThemeFontLang(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildThemeFontLang) then + {self.}RemoveChild({self.}XmlChildThemeFontLang); + end + else if v is class(ThemeFontLang) then + begin + v.Parent := self; + {self.}XmlChildThemeFontLang := v; + container_.Set({self.}XmlChildThemeFontLang); + end + else begin + raise "Invalid assignment: ThemeFontLang expects ThemeFontLang or nil"; + end +end; + +function Settings.ReadXmlChildClrSchemeMapping(): ClrSchemeMapping; +begin + if tslassigning and (ifnil({self.}XmlChildClrSchemeMapping) or {self.}XmlChildClrSchemeMapping.Removed) then + begin + {self.}XmlChildClrSchemeMapping := new ClrSchemeMapping(self, {self.}Prefix, "clrSchemeMapping"); + container_.Set({self.}XmlChildClrSchemeMapping); + end + return {self.}XmlChildClrSchemeMapping and not {self.}XmlChildClrSchemeMapping.Removed ? {self.}XmlChildClrSchemeMapping : fallback_.ClrSchemeMapping; +end; + +function Settings.WriteXmlChildClrSchemeMapping(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildClrSchemeMapping) then + {self.}RemoveChild({self.}XmlChildClrSchemeMapping); + end + else if v is class(ClrSchemeMapping) then + begin + v.Parent := self; + {self.}XmlChildClrSchemeMapping := v; + container_.Set({self.}XmlChildClrSchemeMapping); + end + else begin + raise "Invalid assignment: ClrSchemeMapping expects ClrSchemeMapping or nil"; + end +end; + +function Settings.ReadXmlChildShapeDefaults(): ShapeDefaults2; +begin + if tslassigning and (ifnil({self.}XmlChildShapeDefaults) or {self.}XmlChildShapeDefaults.Removed) then + begin + {self.}XmlChildShapeDefaults := new ShapeDefaults2(self, {self.}Prefix, "shapeDefaults"); + container_.Set({self.}XmlChildShapeDefaults); + end + return {self.}XmlChildShapeDefaults and not {self.}XmlChildShapeDefaults.Removed ? {self.}XmlChildShapeDefaults : fallback_.ShapeDefaults; +end; + +function Settings.WriteXmlChildShapeDefaults(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShapeDefaults) then + {self.}RemoveChild({self.}XmlChildShapeDefaults); + end + else if v is class(ShapeDefaults2) then + begin + v.Parent := self; + {self.}XmlChildShapeDefaults := v; + container_.Set({self.}XmlChildShapeDefaults); + end + else begin + raise "Invalid assignment: ShapeDefaults expects ShapeDefaults2 or nil"; + end +end; + +function Settings.ReadXmlChildDecimalSymbol(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildDecimalSymbol) or {self.}XmlChildDecimalSymbol.Removed) then + begin + {self.}XmlChildDecimalSymbol := new PureWVal(self, {self.}Prefix, "decimalSymbol"); + container_.Set({self.}XmlChildDecimalSymbol); + end + return {self.}XmlChildDecimalSymbol and not {self.}XmlChildDecimalSymbol.Removed ? {self.}XmlChildDecimalSymbol : fallback_.DecimalSymbol; +end; + +function Settings.WriteXmlChildDecimalSymbol(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDecimalSymbol) then + {self.}RemoveChild({self.}XmlChildDecimalSymbol); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildDecimalSymbol := v; + container_.Set({self.}XmlChildDecimalSymbol); + end + else begin + raise "Invalid assignment: DecimalSymbol expects PureWVal or nil"; + end +end; + +function Settings.ReadXmlChildListSeparator(): PureWVal; +begin + if tslassigning and (ifnil({self.}XmlChildListSeparator) or {self.}XmlChildListSeparator.Removed) then + begin + {self.}XmlChildListSeparator := new PureWVal(self, {self.}Prefix, "listSeparator"); + container_.Set({self.}XmlChildListSeparator); + end + return {self.}XmlChildListSeparator and not {self.}XmlChildListSeparator.Removed ? {self.}XmlChildListSeparator : fallback_.ListSeparator; +end; + +function Settings.WriteXmlChildListSeparator(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildListSeparator) then + {self.}RemoveChild({self.}XmlChildListSeparator); + end + else if v is class(PureWVal) then + begin + v.Parent := self; + {self.}XmlChildListSeparator := v; + container_.Set({self.}XmlChildListSeparator); + end + else begin + raise "Invalid assignment: ListSeparator expects PureWVal or nil"; + end +end; + function Settings.ReadXmlChildDocId(_ns: string): PureWVal; begin if _ns = "w14" then @@ -19935,7 +23284,7 @@ begin {self.}XmlChildDocId := new PureWVal(self, {self.}Prefix, "docId"); container_.Set({self.}XmlChildDocId); end - return {self.}XmlChildDocId and not {self.}XmlChildDocId.Removed ? {self.}XmlChildDocId : fallback_.XmlChildDocId; + return {self.}XmlChildDocId and not {self.}XmlChildDocId.Removed ? {self.}XmlChildDocId : fallback_.DocId; end; function Settings.WriteXmlChildDocId(_p1: any; _p2: any); @@ -19955,6 +23304,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildDocId := v; container_.Set({self.}XmlChildDocId); end @@ -19970,7 +23320,7 @@ begin {self.}XmlChildW14DocId := new PureWVal(self, "w14", "docId"); container_.Set({self.}XmlChildW14DocId); end - return {self.}XmlChildW14DocId and not {self.}XmlChildW14DocId.Removed ? {self.}XmlChildW14DocId : fallback_.XmlChildW14DocId; + return {self.}XmlChildW14DocId and not {self.}XmlChildW14DocId.Removed ? {self.}XmlChildW14DocId : fallback_.W14DocId; end; function Settings.WriteXmlChildW14DocId(_p1: any; _p2: any); @@ -19983,6 +23333,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildW14DocId := v; container_.Set({self.}XmlChildW14DocId); end @@ -19998,7 +23349,7 @@ begin {self.}XmlChildW15DocId := new PureWVal(self, "w15", "docId"); container_.Set({self.}XmlChildW15DocId); end - return {self.}XmlChildW15DocId and not {self.}XmlChildW15DocId.Removed ? {self.}XmlChildW15DocId : fallback_.XmlChildW15DocId; + return {self.}XmlChildW15DocId and not {self.}XmlChildW15DocId.Removed ? {self.}XmlChildW15DocId : fallback_.W15DocId; end; function Settings.WriteXmlChildW15DocId(_p1: any; _p2: any); @@ -20011,6 +23362,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildW15DocId := v; container_.Set({self.}XmlChildW15DocId); end @@ -20019,20 +23371,20 @@ begin end end; -function Zoom.Create();overload; +function Zoom.create();overload; begin - {self.}Create(nil, "w", "zoom"); + {self.}create(nil, "w", "zoom"); end; -function Zoom.Create(_node: XmlNode);overload; +function Zoom.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Zoom.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Zoom.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Zoom.Init();override; @@ -20051,12 +23403,20 @@ function Zoom.Copy(_obj: Zoom);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Percent) then {self.}Percent := _obj.Percent; tslassigning := tslassigning_backup; end; +function Zoom.Clone(): Zoom;override; +begin + obj := new Zoom(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Percent) then + obj.Percent := {self.}Percent; + return obj; +end; + function Zoom.ConvertToPoint();override; begin @@ -20077,20 +23437,20 @@ begin {self.}XmlAttrPercent.Value := _value; end; -function HdrShapeDefaults.Create();overload; +function HdrShapeDefaults.create();overload; begin - {self.}Create(nil, "w", "hdrShapeDefaults"); + {self.}create(nil, "w", "hdrShapeDefaults"); end; -function HdrShapeDefaults.Create(_node: XmlNode);overload; +function HdrShapeDefaults.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function HdrShapeDefaults.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function HdrShapeDefaults.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function HdrShapeDefaults.Init();override; @@ -20109,12 +23469,27 @@ function HdrShapeDefaults.Copy(_obj: HdrShapeDefaults);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildShapeDefaults) then {self.}ShapeDefaults.Copy(_obj.XmlChildShapeDefaults); tslassigning := tslassigning_backup; end; +function HdrShapeDefaults.Clone(): HdrShapeDefaults;override; +begin + obj := new HdrShapeDefaults(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "o:shapeDefaults": obj.ShapeDefaults := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function HdrShapeDefaults.ConvertToPoint();override; begin if not ifnil({self.}XmlChildShapeDefaults) then @@ -20128,7 +23503,7 @@ begin {self.}XmlChildShapeDefaults := new ShapeDefaults(self, "o", "shapeDefaults"); container_.Set({self.}XmlChildShapeDefaults); end - return {self.}XmlChildShapeDefaults and not {self.}XmlChildShapeDefaults.Removed ? {self.}XmlChildShapeDefaults : fallback_.XmlChildShapeDefaults; + return {self.}XmlChildShapeDefaults and not {self.}XmlChildShapeDefaults.Removed ? {self.}XmlChildShapeDefaults : fallback_.ShapeDefaults; end; function HdrShapeDefaults.WriteXmlChildShapeDefaults(_p1: any; _p2: any); @@ -20141,6 +23516,7 @@ begin end else if v is class(ShapeDefaults) then begin + v.Parent := self; {self.}XmlChildShapeDefaults := v; container_.Set({self.}XmlChildShapeDefaults); end @@ -20149,20 +23525,20 @@ begin end end; -function ShapeDefaults.Create();overload; +function ShapeDefaults.create();overload; begin - {self.}Create(nil, "o", "shapeDefaults"); + {self.}create(nil, "o", "shapeDefaults"); end; -function ShapeDefaults.Create(_node: XmlNode);overload; +function ShapeDefaults.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function ShapeDefaults.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ShapeDefaults.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ShapeDefaults.Init();override; @@ -20182,7 +23558,7 @@ function ShapeDefaults.Copy(_obj: ShapeDefaults);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ext) then {self.}Ext := _obj.Ext; if not ifnil(_obj.Spidmax) then @@ -20190,6 +23566,16 @@ begin tslassigning := tslassigning_backup; end; +function ShapeDefaults.Clone(): ShapeDefaults;override; +begin + obj := new ShapeDefaults(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ext) then + obj.Ext := {self.}Ext; + if not ifnil({self.}Spidmax) then + obj.Spidmax := {self.}Spidmax; + return obj; +end; + function ShapeDefaults.ConvertToPoint();override; begin @@ -20225,20 +23611,20 @@ begin {self.}XmlAttrSpidmax.Value := _value; end; -function FootnotePr.Create();overload; +function FootnotePr.create();overload; begin - {self.}Create(nil, "w", "footnotePr"); + {self.}create(nil, "w", "footnotePr"); end; -function FootnotePr.Create(_node: XmlNode);overload; +function FootnotePr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function FootnotePr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FootnotePr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FootnotePr.Init();override; @@ -20261,7 +23647,7 @@ function FootnotePr.Copy(_obj: FootnotePr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildPos) then {self.}Pos.Copy(_obj.XmlChildPos); if not ifnil(_obj.XmlChildNumFmt) then @@ -20273,6 +23659,24 @@ begin tslassigning := tslassigning_backup; end; +function FootnotePr.Clone(): FootnotePr;override; +begin + obj := new FootnotePr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "pos": obj.Pos := element.Clone(); + pre + "numFmt": obj.NumFmt := element.Clone(); + pre + "numStart": obj.NumStart := element.Clone(); + pre + "numRestart": obj.NumRestart := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function FootnotePr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPos) then @@ -20295,7 +23699,7 @@ begin {self.}XmlChildPos := new PureWVal(self, {self.}Prefix, "pos"); container_.Set({self.}XmlChildPos); end - return {self.}XmlChildPos and not {self.}XmlChildPos.Removed ? {self.}XmlChildPos : fallback_.XmlChildPos; + return {self.}XmlChildPos and not {self.}XmlChildPos.Removed ? {self.}XmlChildPos : fallback_.Pos; end; function FootnotePr.WriteXmlChildPos(_p1: any; _p2: any); @@ -20308,6 +23712,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildPos := v; container_.Set({self.}XmlChildPos); end @@ -20323,7 +23728,7 @@ begin {self.}XmlChildNumFmt := new PureWVal(self, {self.}Prefix, "numFmt"); container_.Set({self.}XmlChildNumFmt); end - return {self.}XmlChildNumFmt and not {self.}XmlChildNumFmt.Removed ? {self.}XmlChildNumFmt : fallback_.XmlChildNumFmt; + return {self.}XmlChildNumFmt and not {self.}XmlChildNumFmt.Removed ? {self.}XmlChildNumFmt : fallback_.NumFmt; end; function FootnotePr.WriteXmlChildNumFmt(_p1: any; _p2: any); @@ -20336,6 +23741,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNumFmt := v; container_.Set({self.}XmlChildNumFmt); end @@ -20351,7 +23757,7 @@ begin {self.}XmlChildNumStart := new PureWVal(self, {self.}Prefix, "numStart"); container_.Set({self.}XmlChildNumStart); end - return {self.}XmlChildNumStart and not {self.}XmlChildNumStart.Removed ? {self.}XmlChildNumStart : fallback_.XmlChildNumStart; + return {self.}XmlChildNumStart and not {self.}XmlChildNumStart.Removed ? {self.}XmlChildNumStart : fallback_.NumStart; end; function FootnotePr.WriteXmlChildNumStart(_p1: any; _p2: any); @@ -20364,6 +23770,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNumStart := v; container_.Set({self.}XmlChildNumStart); end @@ -20379,7 +23786,7 @@ begin {self.}XmlChildNumRestart := new PureWVal(self, {self.}Prefix, "numRestart"); container_.Set({self.}XmlChildNumRestart); end - return {self.}XmlChildNumRestart and not {self.}XmlChildNumRestart.Removed ? {self.}XmlChildNumRestart : fallback_.XmlChildNumRestart; + return {self.}XmlChildNumRestart and not {self.}XmlChildNumRestart.Removed ? {self.}XmlChildNumRestart : fallback_.NumRestart; end; function FootnotePr.WriteXmlChildNumRestart(_p1: any; _p2: any); @@ -20392,6 +23799,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNumRestart := v; container_.Set({self.}XmlChildNumRestart); end @@ -20429,6 +23837,7 @@ end; function FootnotePr.AddFootnote(): Footnote; begin obj := new Footnote(self, {self.}Prefix, "footnote"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -20436,24 +23845,25 @@ end; function FootnotePr.AppendFootnote(): Footnote; begin obj := new Footnote(self, {self.}Prefix, "footnote"); + obj.Enable := true; container_.Append(obj); return obj; end; -function EndnotePr.Create();overload; +function EndnotePr.create();overload; begin - {self.}Create(nil, "w", "endnotePr"); + {self.}create(nil, "w", "endnotePr"); end; -function EndnotePr.Create(_node: XmlNode);overload; +function EndnotePr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function EndnotePr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function EndnotePr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function EndnotePr.Init();override; @@ -20476,7 +23886,7 @@ function EndnotePr.Copy(_obj: EndnotePr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildPos) then {self.}Pos.Copy(_obj.XmlChildPos); if not ifnil(_obj.XmlChildNumFmt) then @@ -20488,6 +23898,24 @@ begin tslassigning := tslassigning_backup; end; +function EndnotePr.Clone(): EndnotePr;override; +begin + obj := new EndnotePr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "pos": obj.Pos := element.Clone(); + pre + "numFmt": obj.NumFmt := element.Clone(); + pre + "numStart": obj.NumStart := element.Clone(); + pre + "numRestart": obj.NumRestart := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function EndnotePr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPos) then @@ -20510,7 +23938,7 @@ begin {self.}XmlChildPos := new PureWVal(self, {self.}Prefix, "pos"); container_.Set({self.}XmlChildPos); end - return {self.}XmlChildPos and not {self.}XmlChildPos.Removed ? {self.}XmlChildPos : fallback_.XmlChildPos; + return {self.}XmlChildPos and not {self.}XmlChildPos.Removed ? {self.}XmlChildPos : fallback_.Pos; end; function EndnotePr.WriteXmlChildPos(_p1: any; _p2: any); @@ -20523,6 +23951,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildPos := v; container_.Set({self.}XmlChildPos); end @@ -20538,7 +23967,7 @@ begin {self.}XmlChildNumFmt := new PureWVal(self, {self.}Prefix, "numFmt"); container_.Set({self.}XmlChildNumFmt); end - return {self.}XmlChildNumFmt and not {self.}XmlChildNumFmt.Removed ? {self.}XmlChildNumFmt : fallback_.XmlChildNumFmt; + return {self.}XmlChildNumFmt and not {self.}XmlChildNumFmt.Removed ? {self.}XmlChildNumFmt : fallback_.NumFmt; end; function EndnotePr.WriteXmlChildNumFmt(_p1: any; _p2: any); @@ -20551,6 +23980,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNumFmt := v; container_.Set({self.}XmlChildNumFmt); end @@ -20566,7 +23996,7 @@ begin {self.}XmlChildNumStart := new PureWVal(self, {self.}Prefix, "numStart"); container_.Set({self.}XmlChildNumStart); end - return {self.}XmlChildNumStart and not {self.}XmlChildNumStart.Removed ? {self.}XmlChildNumStart : fallback_.XmlChildNumStart; + return {self.}XmlChildNumStart and not {self.}XmlChildNumStart.Removed ? {self.}XmlChildNumStart : fallback_.NumStart; end; function EndnotePr.WriteXmlChildNumStart(_p1: any; _p2: any); @@ -20579,6 +24009,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNumStart := v; container_.Set({self.}XmlChildNumStart); end @@ -20594,7 +24025,7 @@ begin {self.}XmlChildNumRestart := new PureWVal(self, {self.}Prefix, "numRestart"); container_.Set({self.}XmlChildNumRestart); end - return {self.}XmlChildNumRestart and not {self.}XmlChildNumRestart.Removed ? {self.}XmlChildNumRestart : fallback_.XmlChildNumRestart; + return {self.}XmlChildNumRestart and not {self.}XmlChildNumRestart.Removed ? {self.}XmlChildNumRestart : fallback_.NumRestart; end; function EndnotePr.WriteXmlChildNumRestart(_p1: any; _p2: any); @@ -20607,6 +24038,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNumRestart := v; container_.Set({self.}XmlChildNumRestart); end @@ -20644,6 +24076,7 @@ end; function EndnotePr.AddFootnote(): Footnote; begin obj := new Footnote(self, {self.}Prefix, "footnote"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -20651,24 +24084,25 @@ end; function EndnotePr.AppendFootnote(): Footnote; begin obj := new Footnote(self, {self.}Prefix, "footnote"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Compat.Create();overload; +function Compat.create();overload; begin - {self.}Create(nil, "w", "compat"); + {self.}create(nil, "w", "compat"); end; -function Compat.Create(_node: XmlNode);overload; +function Compat.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Compat.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Compat.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Compat.Init();override; @@ -20694,7 +24128,7 @@ function Compat.Copy(_obj: Compat);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSpaceForUL) then ifnil({self.}XmlChildSpaceForUL) ? {self.}SpaceForUL.Copy(_obj.XmlChildSpaceForUL) : {self.}XmlChildSpaceForUL.Copy(_obj.XmlChildSpaceForUL); if not ifnil(_obj.XmlChildBalanceSingleByteDoubleByteWidth) then @@ -20712,6 +24146,27 @@ begin tslassigning := tslassigning_backup; end; +function Compat.Clone(): Compat;override; +begin + obj := new Compat(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "spaceForUL": obj.SpaceForUL := element.Clone(); + pre + "balanceSingleByteDoubleByteWidth": obj.BalanceSingleByteDoubleByteWidth := element.Clone(); + pre + "doNotLeaveBackslashAlone": obj.DoNotLeaveBackslashAlone := element.Clone(); + pre + "ulTrailSpace": obj.UlTrailSpace := element.Clone(); + pre + "doNotExpandShiftReturn": obj.DoNotExpandShiftReturn := element.Clone(); + pre + "adjustLineHeightInTable": obj.AdjustLineHeightInTable := element.Clone(); + pre + "useFELayout": obj.UseFELayout := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Compat.ConvertToPoint();override; begin elems := {self.}CompatSettings(); @@ -20726,7 +24181,7 @@ begin {self.}XmlChildSpaceForUL := new OpenXmlSimpleType(self, {self.}Prefix, "spaceForUL"); container_.Set({self.}XmlChildSpaceForUL); end - return {self.}XmlChildSpaceForUL and not {self.}XmlChildSpaceForUL.Removed ? {self.}XmlChildSpaceForUL : fallback_.XmlChildSpaceForUL; + return {self.}XmlChildSpaceForUL and not {self.}XmlChildSpaceForUL.Removed ? {self.}XmlChildSpaceForUL : fallback_.SpaceForUL; end; function Compat.WriteXmlChildSpaceForUL(_value: nil_or_OpenXmlSimpleType); @@ -20738,6 +24193,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildSpaceForUL := _value; container_.Set({self.}XmlChildSpaceForUL); end @@ -20753,7 +24209,7 @@ begin {self.}XmlChildBalanceSingleByteDoubleByteWidth := new OpenXmlSimpleType(self, {self.}Prefix, "balanceSingleByteDoubleByteWidth"); container_.Set({self.}XmlChildBalanceSingleByteDoubleByteWidth); end - return {self.}XmlChildBalanceSingleByteDoubleByteWidth and not {self.}XmlChildBalanceSingleByteDoubleByteWidth.Removed ? {self.}XmlChildBalanceSingleByteDoubleByteWidth : fallback_.XmlChildBalanceSingleByteDoubleByteWidth; + return {self.}XmlChildBalanceSingleByteDoubleByteWidth and not {self.}XmlChildBalanceSingleByteDoubleByteWidth.Removed ? {self.}XmlChildBalanceSingleByteDoubleByteWidth : fallback_.BalanceSingleByteDoubleByteWidth; end; function Compat.WriteXmlChildBalanceSingleByteDoubleByteWidth(_value: nil_or_OpenXmlSimpleType); @@ -20765,6 +24221,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildBalanceSingleByteDoubleByteWidth := _value; container_.Set({self.}XmlChildBalanceSingleByteDoubleByteWidth); end @@ -20780,7 +24237,7 @@ begin {self.}XmlChildDoNotLeaveBackslashAlone := new OpenXmlSimpleType(self, {self.}Prefix, "doNotLeaveBackslashAlone"); container_.Set({self.}XmlChildDoNotLeaveBackslashAlone); end - return {self.}XmlChildDoNotLeaveBackslashAlone and not {self.}XmlChildDoNotLeaveBackslashAlone.Removed ? {self.}XmlChildDoNotLeaveBackslashAlone : fallback_.XmlChildDoNotLeaveBackslashAlone; + return {self.}XmlChildDoNotLeaveBackslashAlone and not {self.}XmlChildDoNotLeaveBackslashAlone.Removed ? {self.}XmlChildDoNotLeaveBackslashAlone : fallback_.DoNotLeaveBackslashAlone; end; function Compat.WriteXmlChildDoNotLeaveBackslashAlone(_value: nil_or_OpenXmlSimpleType); @@ -20792,6 +24249,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildDoNotLeaveBackslashAlone := _value; container_.Set({self.}XmlChildDoNotLeaveBackslashAlone); end @@ -20807,7 +24265,7 @@ begin {self.}XmlChildUlTrailSpace := new OpenXmlSimpleType(self, {self.}Prefix, "ulTrailSpace"); container_.Set({self.}XmlChildUlTrailSpace); end - return {self.}XmlChildUlTrailSpace and not {self.}XmlChildUlTrailSpace.Removed ? {self.}XmlChildUlTrailSpace : fallback_.XmlChildUlTrailSpace; + return {self.}XmlChildUlTrailSpace and not {self.}XmlChildUlTrailSpace.Removed ? {self.}XmlChildUlTrailSpace : fallback_.UlTrailSpace; end; function Compat.WriteXmlChildUlTrailSpace(_value: nil_or_OpenXmlSimpleType); @@ -20819,6 +24277,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildUlTrailSpace := _value; container_.Set({self.}XmlChildUlTrailSpace); end @@ -20834,7 +24293,7 @@ begin {self.}XmlChildDoNotExpandShiftReturn := new OpenXmlSimpleType(self, {self.}Prefix, "doNotExpandShiftReturn"); container_.Set({self.}XmlChildDoNotExpandShiftReturn); end - return {self.}XmlChildDoNotExpandShiftReturn and not {self.}XmlChildDoNotExpandShiftReturn.Removed ? {self.}XmlChildDoNotExpandShiftReturn : fallback_.XmlChildDoNotExpandShiftReturn; + return {self.}XmlChildDoNotExpandShiftReturn and not {self.}XmlChildDoNotExpandShiftReturn.Removed ? {self.}XmlChildDoNotExpandShiftReturn : fallback_.DoNotExpandShiftReturn; end; function Compat.WriteXmlChildDoNotExpandShiftReturn(_value: nil_or_OpenXmlSimpleType); @@ -20846,6 +24305,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildDoNotExpandShiftReturn := _value; container_.Set({self.}XmlChildDoNotExpandShiftReturn); end @@ -20861,7 +24321,7 @@ begin {self.}XmlChildAdjustLineHeightInTable := new OpenXmlSimpleType(self, {self.}Prefix, "adjustLineHeightInTable"); container_.Set({self.}XmlChildAdjustLineHeightInTable); end - return {self.}XmlChildAdjustLineHeightInTable and not {self.}XmlChildAdjustLineHeightInTable.Removed ? {self.}XmlChildAdjustLineHeightInTable : fallback_.XmlChildAdjustLineHeightInTable; + return {self.}XmlChildAdjustLineHeightInTable and not {self.}XmlChildAdjustLineHeightInTable.Removed ? {self.}XmlChildAdjustLineHeightInTable : fallback_.AdjustLineHeightInTable; end; function Compat.WriteXmlChildAdjustLineHeightInTable(_value: nil_or_OpenXmlSimpleType); @@ -20873,6 +24333,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildAdjustLineHeightInTable := _value; container_.Set({self.}XmlChildAdjustLineHeightInTable); end @@ -20888,7 +24349,7 @@ begin {self.}XmlChildUseFELayout := new OpenXmlSimpleType(self, {self.}Prefix, "useFELayout"); container_.Set({self.}XmlChildUseFELayout); end - return {self.}XmlChildUseFELayout and not {self.}XmlChildUseFELayout.Removed ? {self.}XmlChildUseFELayout : fallback_.XmlChildUseFELayout; + return {self.}XmlChildUseFELayout and not {self.}XmlChildUseFELayout.Removed ? {self.}XmlChildUseFELayout : fallback_.UseFELayout; end; function Compat.WriteXmlChildUseFELayout(_value: nil_or_OpenXmlSimpleType); @@ -20900,6 +24361,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildUseFELayout := _value; container_.Set({self.}XmlChildUseFELayout); end @@ -20915,7 +24377,7 @@ begin {self.}XmlChildCompatSetting := new OpenXmlSimpleType(self, {self.}Prefix, "compatSetting"); container_.Set({self.}XmlChildCompatSetting); end - return {self.}XmlChildCompatSetting and not {self.}XmlChildCompatSetting.Removed ? {self.}XmlChildCompatSetting : fallback_.XmlChildCompatSetting; + return {self.}XmlChildCompatSetting and not {self.}XmlChildCompatSetting.Removed ? {self.}XmlChildCompatSetting : fallback_.CompatSetting; end; function Compat.WriteXmlChildCompatSetting(_value: nil_or_OpenXmlSimpleType); @@ -20927,6 +24389,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildCompatSetting := _value; container_.Set({self.}XmlChildCompatSetting); end @@ -20964,6 +24427,7 @@ end; function Compat.AddCompatSetting(): CompatSetting; begin obj := new CompatSetting(self, {self.}Prefix, "compatSetting"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -20971,24 +24435,25 @@ end; function Compat.AppendCompatSetting(): CompatSetting; begin obj := new CompatSetting(self, {self.}Prefix, "compatSetting"); + obj.Enable := true; container_.Append(obj); return obj; end; -function CompatSetting.Create();overload; +function CompatSetting.create();overload; begin - {self.}Create(nil, "w", "compatSetting"); + {self.}create(nil, "w", "compatSetting"); end; -function CompatSetting.Create(_node: XmlNode);overload; +function CompatSetting.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function CompatSetting.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CompatSetting.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CompatSetting.Init();override; @@ -21009,7 +24474,7 @@ function CompatSetting.Copy(_obj: CompatSetting);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.Uri) then @@ -21019,6 +24484,18 @@ begin tslassigning := tslassigning_backup; end; +function CompatSetting.Clone(): CompatSetting;override; +begin + obj := new CompatSetting(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + if not ifnil({self.}Uri) then + obj.Uri := {self.}Uri; + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function CompatSetting.ConvertToPoint();override; begin @@ -21069,20 +24546,20 @@ begin {self.}XmlAttrVal.Value := _value; end; -function Rsids.Create();overload; +function Rsids.create();overload; begin - {self.}Create(nil, "w", "rsids"); + {self.}create(nil, "w", "rsids"); end; -function Rsids.Create(_node: XmlNode);overload; +function Rsids.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Rsids.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Rsids.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Rsids.Init();override; @@ -21102,12 +24579,27 @@ function Rsids.Copy(_obj: Rsids);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRsidRoot) then {self.}RsidRoot.Copy(_obj.XmlChildRsidRoot); tslassigning := tslassigning_backup; end; +function Rsids.Clone(): Rsids;override; +begin + obj := new Rsids(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rsidRoot": obj.RsidRoot := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Rsids.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRsidRoot) then @@ -21124,7 +24616,7 @@ begin {self.}XmlChildRsidRoot := new PureWVal(self, {self.}Prefix, "rsidRoot"); container_.Set({self.}XmlChildRsidRoot); end - return {self.}XmlChildRsidRoot and not {self.}XmlChildRsidRoot.Removed ? {self.}XmlChildRsidRoot : fallback_.XmlChildRsidRoot; + return {self.}XmlChildRsidRoot and not {self.}XmlChildRsidRoot.Removed ? {self.}XmlChildRsidRoot : fallback_.RsidRoot; end; function Rsids.WriteXmlChildRsidRoot(_p1: any; _p2: any); @@ -21137,6 +24629,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildRsidRoot := v; container_.Set({self.}XmlChildRsidRoot); end @@ -21174,6 +24667,7 @@ end; function Rsids.AddRsid(): PureWVal; begin obj := new PureWVal(self, {self.}Prefix, "rsid"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -21181,24 +24675,25 @@ end; function Rsids.AppendRsid(): PureWVal; begin obj := new PureWVal(self, {self.}Prefix, "rsid"); + obj.Enable := true; container_.Append(obj); return obj; end; -function ThemeFontLang.Create();overload; +function ThemeFontLang.create();overload; begin - {self.}Create(nil, "w", "themeFontLang"); + {self.}create(nil, "w", "themeFontLang"); end; -function ThemeFontLang.Create(_node: XmlNode);overload; +function ThemeFontLang.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function ThemeFontLang.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ThemeFontLang.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ThemeFontLang.Init();override; @@ -21218,7 +24713,7 @@ function ThemeFontLang.Copy(_obj: ThemeFontLang);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.EastAsia) then @@ -21226,6 +24721,16 @@ begin tslassigning := tslassigning_backup; end; +function ThemeFontLang.Clone(): ThemeFontLang;override; +begin + obj := new ThemeFontLang(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}EastAsia) then + obj.EastAsia := {self.}EastAsia; + return obj; +end; + function ThemeFontLang.ConvertToPoint();override; begin @@ -21261,20 +24766,20 @@ begin {self.}XmlAttrEastAsia.Value := _value; end; -function ClrSchemeMapping.Create();overload; +function ClrSchemeMapping.create();overload; begin - {self.}Create(nil, "w", "clrSchemeMapping"); + {self.}create(nil, "w", "clrSchemeMapping"); end; -function ClrSchemeMapping.Create(_node: XmlNode);overload; +function ClrSchemeMapping.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function ClrSchemeMapping.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ClrSchemeMapping.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ClrSchemeMapping.Init();override; @@ -21304,7 +24809,7 @@ function ClrSchemeMapping.Copy(_obj: ClrSchemeMapping);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Bg1) then {self.}Bg1 := _obj.Bg1; if not ifnil(_obj.T1) then @@ -21332,6 +24837,36 @@ begin tslassigning := tslassigning_backup; end; +function ClrSchemeMapping.Clone(): ClrSchemeMapping;override; +begin + obj := new ClrSchemeMapping(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Bg1) then + obj.Bg1 := {self.}Bg1; + if not ifnil({self.}T1) then + obj.T1 := {self.}T1; + if not ifnil({self.}Bg2) then + obj.Bg2 := {self.}Bg2; + if not ifnil({self.}T2) then + obj.T2 := {self.}T2; + if not ifnil({self.}Accent1) then + obj.Accent1 := {self.}Accent1; + if not ifnil({self.}Accent2) then + obj.Accent2 := {self.}Accent2; + if not ifnil({self.}Accent3) then + obj.Accent3 := {self.}Accent3; + if not ifnil({self.}Accent4) then + obj.Accent4 := {self.}Accent4; + if not ifnil({self.}Accent5) then + obj.Accent5 := {self.}Accent5; + if not ifnil({self.}Accent6) then + obj.Accent6 := {self.}Accent6; + if not ifnil({self.}HyperLink) then + obj.HyperLink := {self.}HyperLink; + if not ifnil({self.}FollowedHyperlink) then + obj.FollowedHyperlink := {self.}FollowedHyperlink; + return obj; +end; + function ClrSchemeMapping.ConvertToPoint();override; begin @@ -21517,20 +25052,20 @@ begin {self.}XmlAttrFollowedHyperlink.Value := _value; end; -function ShapeDefaults2.Create();overload; +function ShapeDefaults2.create();overload; begin - {self.}Create(nil, "w", "shapeDefaults"); + {self.}create(nil, "w", "shapeDefaults"); end; -function ShapeDefaults2.Create(_node: XmlNode);overload; +function ShapeDefaults2.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function ShapeDefaults2.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ShapeDefaults2.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ShapeDefaults2.Init();override; @@ -21550,7 +25085,7 @@ function ShapeDefaults2.Copy(_obj: ShapeDefaults2);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildShapeDefaults) then {self.}ShapeDefaults.Copy(_obj.XmlChildShapeDefaults); if not ifnil(_obj.XmlChildShapeLayout) then @@ -21558,6 +25093,22 @@ begin tslassigning := tslassigning_backup; end; +function ShapeDefaults2.Clone(): ShapeDefaults2;override; +begin + obj := new ShapeDefaults2(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "o:shapeDefaults": obj.ShapeDefaults := element.Clone(); + "o:shapelayout": obj.ShapeLayout := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function ShapeDefaults2.ConvertToPoint();override; begin if not ifnil({self.}XmlChildShapeDefaults) then @@ -21573,7 +25124,7 @@ begin {self.}XmlChildShapeDefaults := new ShapeDefaults(self, "o", "shapeDefaults"); container_.Set({self.}XmlChildShapeDefaults); end - return {self.}XmlChildShapeDefaults and not {self.}XmlChildShapeDefaults.Removed ? {self.}XmlChildShapeDefaults : fallback_.XmlChildShapeDefaults; + return {self.}XmlChildShapeDefaults and not {self.}XmlChildShapeDefaults.Removed ? {self.}XmlChildShapeDefaults : fallback_.ShapeDefaults; end; function ShapeDefaults2.WriteXmlChildShapeDefaults(_p1: any; _p2: any); @@ -21586,6 +25137,7 @@ begin end else if v is class(ShapeDefaults) then begin + v.Parent := self; {self.}XmlChildShapeDefaults := v; container_.Set({self.}XmlChildShapeDefaults); end @@ -21601,7 +25153,7 @@ begin {self.}XmlChildShapeLayout := new ShapeLayout(self, "o", "shapelayout"); container_.Set({self.}XmlChildShapeLayout); end - return {self.}XmlChildShapeLayout and not {self.}XmlChildShapeLayout.Removed ? {self.}XmlChildShapeLayout : fallback_.XmlChildShapeLayout; + return {self.}XmlChildShapeLayout and not {self.}XmlChildShapeLayout.Removed ? {self.}XmlChildShapeLayout : fallback_.ShapeLayout; end; function ShapeDefaults2.WriteXmlChildShapeLayout(_p1: any; _p2: any); @@ -21614,6 +25166,7 @@ begin end else if v is class(ShapeLayout) then begin + v.Parent := self; {self.}XmlChildShapeLayout := v; container_.Set({self.}XmlChildShapeLayout); end @@ -21622,20 +25175,20 @@ begin end end; -function ShapeLayout.Create();overload; +function ShapeLayout.create();overload; begin - {self.}Create(nil, "o", "shapelayout"); + {self.}create(nil, "o", "shapelayout"); end; -function ShapeLayout.Create(_node: XmlNode);overload; +function ShapeLayout.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function ShapeLayout.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ShapeLayout.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ShapeLayout.Init();override; @@ -21655,7 +25208,7 @@ function ShapeLayout.Copy(_obj: ShapeLayout);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ext) then {self.}Ext := _obj.Ext; if not ifnil(_obj.XmlChildIdMap) then @@ -21663,6 +25216,23 @@ begin tslassigning := tslassigning_backup; end; +function ShapeLayout.Clone(): ShapeLayout;override; +begin + obj := new ShapeLayout(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ext) then + obj.Ext := {self.}Ext; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "idmap": obj.IdMap := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function ShapeLayout.ConvertToPoint();override; begin if not ifnil({self.}XmlChildIdMap) then @@ -21691,7 +25261,7 @@ begin {self.}XmlChildIdMap := new IdMap(self, {self.}Prefix, "idmap"); container_.Set({self.}XmlChildIdMap); end - return {self.}XmlChildIdMap and not {self.}XmlChildIdMap.Removed ? {self.}XmlChildIdMap : fallback_.XmlChildIdMap; + return {self.}XmlChildIdMap and not {self.}XmlChildIdMap.Removed ? {self.}XmlChildIdMap : fallback_.IdMap; end; function ShapeLayout.WriteXmlChildIdMap(_p1: any; _p2: any); @@ -21704,6 +25274,7 @@ begin end else if v is class(IdMap) then begin + v.Parent := self; {self.}XmlChildIdMap := v; container_.Set({self.}XmlChildIdMap); end @@ -21712,20 +25283,20 @@ begin end end; -function IdMap.Create();overload; +function IdMap.create();overload; begin - {self.}Create(nil, "o", "idmap"); + {self.}create(nil, "o", "idmap"); end; -function IdMap.Create(_node: XmlNode);overload; +function IdMap.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function IdMap.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function IdMap.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function IdMap.Init();override; @@ -21745,7 +25316,7 @@ function IdMap.Copy(_obj: IdMap);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ext) then {self.}Ext := _obj.Ext; if not ifnil(_obj.Data) then @@ -21753,6 +25324,16 @@ begin tslassigning := tslassigning_backup; end; +function IdMap.Clone(): IdMap;override; +begin + obj := new IdMap(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ext) then + obj.Ext := {self.}Ext; + if not ifnil({self.}Data) then + obj.Data := {self.}Data; + return obj; +end; + function IdMap.ConvertToPoint();override; begin @@ -21788,20 +25369,20 @@ begin {self.}XmlAttrData.Value := _value; end; -function Styles.Create();overload; +function Styles.create();overload; begin - {self.}Create(nil, "w", "styles"); + {self.}create(nil, "w", "styles"); end; -function Styles.Create(_node: XmlNode);overload; +function Styles.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Styles.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Styles.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Styles.Init();override; @@ -21823,7 +25404,7 @@ function Styles.Copy(_obj: Styles);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; if not ifnil(_obj.XmlChildDocDefaults) then @@ -21833,6 +25414,24 @@ begin tslassigning := tslassigning_backup; end; +function Styles.Clone(): Styles;override; +begin + obj := new Styles(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "docDefaults": obj.DocDefaults := element.Clone(); + pre + "latenStyles": obj.LatenStyles := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Styles.ConvertToPoint();override; begin if not ifnil({self.}XmlChildDocDefaults) then @@ -21866,7 +25465,7 @@ begin {self.}XmlChildDocDefaults := new DocDefaults(self, {self.}Prefix, "docDefaults"); container_.Set({self.}XmlChildDocDefaults); end - return {self.}XmlChildDocDefaults and not {self.}XmlChildDocDefaults.Removed ? {self.}XmlChildDocDefaults : fallback_.XmlChildDocDefaults; + return {self.}XmlChildDocDefaults and not {self.}XmlChildDocDefaults.Removed ? {self.}XmlChildDocDefaults : fallback_.DocDefaults; end; function Styles.WriteXmlChildDocDefaults(_p1: any; _p2: any); @@ -21879,6 +25478,7 @@ begin end else if v is class(DocDefaults) then begin + v.Parent := self; {self.}XmlChildDocDefaults := v; container_.Set({self.}XmlChildDocDefaults); end @@ -21894,7 +25494,7 @@ begin {self.}XmlChildLatenStyles := new LatenStyles(self, {self.}Prefix, "latenStyles"); container_.Set({self.}XmlChildLatenStyles); end - return {self.}XmlChildLatenStyles and not {self.}XmlChildLatenStyles.Removed ? {self.}XmlChildLatenStyles : fallback_.XmlChildLatenStyles; + return {self.}XmlChildLatenStyles and not {self.}XmlChildLatenStyles.Removed ? {self.}XmlChildLatenStyles : fallback_.LatenStyles; end; function Styles.WriteXmlChildLatenStyles(_p1: any; _p2: any); @@ -21907,6 +25507,7 @@ begin end else if v is class(LatenStyles) then begin + v.Parent := self; {self.}XmlChildLatenStyles := v; container_.Set({self.}XmlChildLatenStyles); end @@ -21944,6 +25545,7 @@ end; function Styles.AddStyle(): Style; begin obj := new Style(self, {self.}Prefix, "style"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -21951,24 +25553,25 @@ end; function Styles.AppendStyle(): Style; begin obj := new Style(self, {self.}Prefix, "style"); + obj.Enable := true; container_.Append(obj); return obj; end; -function DocDefaults.Create();overload; +function DocDefaults.create();overload; begin - {self.}Create(nil, "w", "docDefaults"); + {self.}create(nil, "w", "docDefaults"); end; -function DocDefaults.Create(_node: XmlNode);overload; +function DocDefaults.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function DocDefaults.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function DocDefaults.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function DocDefaults.Init();override; @@ -21988,7 +25591,7 @@ function DocDefaults.Copy(_obj: DocDefaults);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRPrDefault) then {self.}RPrDefault.Copy(_obj.XmlChildRPrDefault); if not ifnil(_obj.XmlChildPPrDefault) then @@ -21996,6 +25599,22 @@ begin tslassigning := tslassigning_backup; end; +function DocDefaults.Clone(): DocDefaults;override; +begin + obj := new DocDefaults(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rPrDefault": obj.RPrDefault := element.Clone(); + pre + "pPrDefault": obj.PPrDefault := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function DocDefaults.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRPrDefault) then @@ -22011,7 +25630,7 @@ begin {self.}XmlChildRPrDefault := new RPrDefault(self, {self.}Prefix, "rPrDefault"); container_.Set({self.}XmlChildRPrDefault); end - return {self.}XmlChildRPrDefault and not {self.}XmlChildRPrDefault.Removed ? {self.}XmlChildRPrDefault : fallback_.XmlChildRPrDefault; + return {self.}XmlChildRPrDefault and not {self.}XmlChildRPrDefault.Removed ? {self.}XmlChildRPrDefault : fallback_.RPrDefault; end; function DocDefaults.WriteXmlChildRPrDefault(_p1: any; _p2: any); @@ -22024,6 +25643,7 @@ begin end else if v is class(RPrDefault) then begin + v.Parent := self; {self.}XmlChildRPrDefault := v; container_.Set({self.}XmlChildRPrDefault); end @@ -22039,7 +25659,7 @@ begin {self.}XmlChildPPrDefault := new PPrDefault(self, {self.}Prefix, "pPrDefault"); container_.Set({self.}XmlChildPPrDefault); end - return {self.}XmlChildPPrDefault and not {self.}XmlChildPPrDefault.Removed ? {self.}XmlChildPPrDefault : fallback_.XmlChildPPrDefault; + return {self.}XmlChildPPrDefault and not {self.}XmlChildPPrDefault.Removed ? {self.}XmlChildPPrDefault : fallback_.PPrDefault; end; function DocDefaults.WriteXmlChildPPrDefault(_p1: any; _p2: any); @@ -22052,6 +25672,7 @@ begin end else if v is class(PPrDefault) then begin + v.Parent := self; {self.}XmlChildPPrDefault := v; container_.Set({self.}XmlChildPPrDefault); end @@ -22060,20 +25681,20 @@ begin end end; -function RPrDefault.Create();overload; +function RPrDefault.create();overload; begin - {self.}Create(nil, "w", "rPrDefault"); + {self.}create(nil, "w", "rPrDefault"); end; -function RPrDefault.Create(_node: XmlNode);overload; +function RPrDefault.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function RPrDefault.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function RPrDefault.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function RPrDefault.Init();override; @@ -22092,12 +25713,27 @@ function RPrDefault.Copy(_obj: RPrDefault);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRPr) then {self.}RPr.Copy(_obj.XmlChildRPr); tslassigning := tslassigning_backup; end; +function RPrDefault.Clone(): RPrDefault;override; +begin + obj := new RPrDefault(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rPr": obj.RPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function RPrDefault.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRPr) then @@ -22111,7 +25747,7 @@ begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; end; function RPrDefault.WriteXmlChildRPr(_p1: any; _p2: any); @@ -22124,6 +25760,7 @@ begin end else if v is class(RPr) then begin + v.Parent := self; {self.}XmlChildRPr := v; container_.Set({self.}XmlChildRPr); end @@ -22132,20 +25769,20 @@ begin end end; -function PPrDefault.Create();overload; +function PPrDefault.create();overload; begin - {self.}Create(nil, "w", "pPrDefault"); + {self.}create(nil, "w", "pPrDefault"); end; -function PPrDefault.Create(_node: XmlNode);overload; +function PPrDefault.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function PPrDefault.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PPrDefault.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PPrDefault.Init();override; @@ -22164,12 +25801,27 @@ function PPrDefault.Copy(_obj: PPrDefault);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildPPr) then {self.}PPr.Copy(_obj.XmlChildPPr); tslassigning := tslassigning_backup; end; +function PPrDefault.Clone(): PPrDefault;override; +begin + obj := new PPrDefault(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "pPr": obj.PPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function PPrDefault.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPPr) then @@ -22183,7 +25835,7 @@ begin {self.}XmlChildPPr := new PPr(self, {self.}Prefix, "pPr"); container_.Set({self.}XmlChildPPr); end - return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.XmlChildPPr; + return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.PPr; end; function PPrDefault.WriteXmlChildPPr(_p1: any; _p2: any); @@ -22196,6 +25848,7 @@ begin end else if v is class(PPr) then begin + v.Parent := self; {self.}XmlChildPPr := v; container_.Set({self.}XmlChildPPr); end @@ -22204,20 +25857,20 @@ begin end end; -function LatenStyles.Create();overload; +function LatenStyles.create();overload; begin - {self.}Create(nil, "w", "latenStyles"); + {self.}create(nil, "w", "latenStyles"); end; -function LatenStyles.Create(_node: XmlNode);overload; +function LatenStyles.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function LatenStyles.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function LatenStyles.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function LatenStyles.Init();override; @@ -22242,7 +25895,7 @@ function LatenStyles.Copy(_obj: LatenStyles);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.DefLickedState) then {self.}DefLickedState := _obj.DefLickedState; if not ifnil(_obj.DefUIPriority) then @@ -22258,6 +25911,27 @@ begin tslassigning := tslassigning_backup; end; +function LatenStyles.Clone(): LatenStyles;override; +begin + obj := new LatenStyles(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}DefLickedState) then + obj.DefLickedState := {self.}DefLickedState; + if not ifnil({self.}DefUIPriority) then + obj.DefUIPriority := {self.}DefUIPriority; + if not ifnil({self.}DefSemiHidden) then + obj.DefSemiHidden := {self.}DefSemiHidden; + if not ifnil({self.}DefUnhideWhenUsed) then + obj.DefUnhideWhenUsed := {self.}DefUnhideWhenUsed; + if not ifnil({self.}DefQFormat) then + obj.DefQFormat := {self.}DefQFormat; + if not ifnil({self.}Count) then + obj.Count := {self.}Count; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function LatenStyles.ConvertToPoint();override; begin elems := {self.}LsdExceptions(); @@ -22384,6 +26058,7 @@ end; function LatenStyles.AddLsdException(): LsdException; begin obj := new LsdException(self, {self.}Prefix, "lsdException"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -22391,24 +26066,25 @@ end; function LatenStyles.AppendLsdException(): LsdException; begin obj := new LsdException(self, {self.}Prefix, "lsdException"); + obj.Enable := true; container_.Append(obj); return obj; end; -function LsdException.Create();overload; +function LsdException.create();overload; begin - {self.}Create(nil, "w", "lsdException"); + {self.}create(nil, "w", "lsdException"); end; -function LsdException.Create(_node: XmlNode);overload; +function LsdException.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function LsdException.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function LsdException.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function LsdException.Init();override; @@ -22431,7 +26107,7 @@ function LsdException.Copy(_obj: LsdException);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.UIPriority) then @@ -22445,6 +26121,22 @@ begin tslassigning := tslassigning_backup; end; +function LsdException.Clone(): LsdException;override; +begin + obj := new LsdException(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + if not ifnil({self.}UIPriority) then + obj.UIPriority := {self.}UIPriority; + if not ifnil({self.}SemiHidden) then + obj.SemiHidden := {self.}SemiHidden; + if not ifnil({self.}UnhideWhenUsed) then + obj.UnhideWhenUsed := {self.}UnhideWhenUsed; + if not ifnil({self.}QFormat) then + obj.QFormat := {self.}QFormat; + return obj; +end; + function LsdException.ConvertToPoint();override; begin @@ -22525,20 +26217,20 @@ begin {self.}XmlAttrQFormat.Value := _value; end; -function Style.Create();overload; +function Style.create();overload; begin - {self.}Create(nil, "w", "style"); + {self.}create(nil, "w", "style"); end; -function Style.Create(_node: XmlNode);overload; +function Style.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Style.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Style.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Style.Init();override; @@ -22575,7 +26267,7 @@ function Style.Copy(_obj: Style);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; if not ifnil(_obj.Default) then @@ -22615,6 +26307,41 @@ begin tslassigning := tslassigning_backup; end; +function Style.Clone(): Style;override; +begin + obj := new Style(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + if not ifnil({self.}Default) then + obj.Default := {self.}Default; + if not ifnil({self.}StyleId) then + obj.StyleId := {self.}StyleId; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "name": obj.Name := element.Clone(); + pre + "basedOn": obj.BasedOn := element.Clone(); + pre + "next": obj.Next := element.Clone(); + pre + "autoRedefine": obj.AutoRedefine := element.Clone(); + pre + "link": obj.Link := element.Clone(); + pre + "uiPriority": obj.UIPriority := element.Clone(); + pre + "semiHidden": obj.SemiHidden := element.Clone(); + pre + "unhideWhenUsed": obj.UnhideWhenUsed := element.Clone(); + pre + "qFormat": obj.QFormat := element.Clone(); + pre + "rsid": obj.Rsid := element.Clone(); + pre + "pPr": obj.PPr := element.Clone(); + pre + "rPr": obj.RPr := element.Clone(); + pre + "tblPr": obj.TblPr := element.Clone(); + pre + "trPr": obj.TrPr := element.Clone(); + pre + "tcPr": obj.TcPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Style.ConvertToPoint();override; begin if not ifnil({self.}XmlChildName) then @@ -22696,7 +26423,7 @@ begin {self.}XmlChildSemiHidden := new OpenXmlSimpleType(self, {self.}Prefix, "semiHidden"); container_.Set({self.}XmlChildSemiHidden); end - return {self.}XmlChildSemiHidden and not {self.}XmlChildSemiHidden.Removed ? {self.}XmlChildSemiHidden : fallback_.XmlChildSemiHidden; + return {self.}XmlChildSemiHidden and not {self.}XmlChildSemiHidden.Removed ? {self.}XmlChildSemiHidden : fallback_.SemiHidden; end; function Style.WriteXmlChildSemiHidden(_value: nil_or_OpenXmlSimpleType); @@ -22708,6 +26435,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildSemiHidden := _value; container_.Set({self.}XmlChildSemiHidden); end @@ -22723,7 +26451,7 @@ begin {self.}XmlChildUnhideWhenUsed := new OpenXmlSimpleType(self, {self.}Prefix, "unhideWhenUsed"); container_.Set({self.}XmlChildUnhideWhenUsed); end - return {self.}XmlChildUnhideWhenUsed and not {self.}XmlChildUnhideWhenUsed.Removed ? {self.}XmlChildUnhideWhenUsed : fallback_.XmlChildUnhideWhenUsed; + return {self.}XmlChildUnhideWhenUsed and not {self.}XmlChildUnhideWhenUsed.Removed ? {self.}XmlChildUnhideWhenUsed : fallback_.UnhideWhenUsed; end; function Style.WriteXmlChildUnhideWhenUsed(_value: nil_or_OpenXmlSimpleType); @@ -22735,6 +26463,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildUnhideWhenUsed := _value; container_.Set({self.}XmlChildUnhideWhenUsed); end @@ -22750,7 +26479,7 @@ begin {self.}XmlChildQFormat := new OpenXmlSimpleType(self, {self.}Prefix, "qFormat"); container_.Set({self.}XmlChildQFormat); end - return {self.}XmlChildQFormat and not {self.}XmlChildQFormat.Removed ? {self.}XmlChildQFormat : fallback_.XmlChildQFormat; + return {self.}XmlChildQFormat and not {self.}XmlChildQFormat.Removed ? {self.}XmlChildQFormat : fallback_.QFormat; end; function Style.WriteXmlChildQFormat(_value: nil_or_OpenXmlSimpleType); @@ -22762,6 +26491,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildQFormat := _value; container_.Set({self.}XmlChildQFormat); end @@ -22777,7 +26507,7 @@ begin {self.}XmlChildRsid := new OpenXmlSimpleType(self, {self.}Prefix, "rsid"); container_.Set({self.}XmlChildRsid); end - return {self.}XmlChildRsid and not {self.}XmlChildRsid.Removed ? {self.}XmlChildRsid : fallback_.XmlChildRsid; + return {self.}XmlChildRsid and not {self.}XmlChildRsid.Removed ? {self.}XmlChildRsid : fallback_.Rsid; end; function Style.WriteXmlChildRsid(_value: nil_or_OpenXmlSimpleType); @@ -22789,6 +26519,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildRsid := _value; container_.Set({self.}XmlChildRsid); end @@ -22804,7 +26535,7 @@ begin {self.}XmlChildName := new PureWVal(self, {self.}Prefix, "name"); container_.Set({self.}XmlChildName); end - return {self.}XmlChildName and not {self.}XmlChildName.Removed ? {self.}XmlChildName : fallback_.XmlChildName; + return {self.}XmlChildName and not {self.}XmlChildName.Removed ? {self.}XmlChildName : fallback_.Name; end; function Style.WriteXmlChildName(_p1: any; _p2: any); @@ -22817,6 +26548,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildName := v; container_.Set({self.}XmlChildName); end @@ -22832,7 +26564,7 @@ begin {self.}XmlChildBasedOn := new PureWVal(self, {self.}Prefix, "basedOn"); container_.Set({self.}XmlChildBasedOn); end - return {self.}XmlChildBasedOn and not {self.}XmlChildBasedOn.Removed ? {self.}XmlChildBasedOn : fallback_.XmlChildBasedOn; + return {self.}XmlChildBasedOn and not {self.}XmlChildBasedOn.Removed ? {self.}XmlChildBasedOn : fallback_.BasedOn; end; function Style.WriteXmlChildBasedOn(_p1: any; _p2: any); @@ -22845,6 +26577,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildBasedOn := v; container_.Set({self.}XmlChildBasedOn); end @@ -22860,7 +26593,7 @@ begin {self.}XmlChildNext := new PureWVal(self, {self.}Prefix, "next"); container_.Set({self.}XmlChildNext); end - return {self.}XmlChildNext and not {self.}XmlChildNext.Removed ? {self.}XmlChildNext : fallback_.XmlChildNext; + return {self.}XmlChildNext and not {self.}XmlChildNext.Removed ? {self.}XmlChildNext : fallback_.Next; end; function Style.WriteXmlChildNext(_p1: any; _p2: any); @@ -22873,6 +26606,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNext := v; container_.Set({self.}XmlChildNext); end @@ -22888,7 +26622,7 @@ begin {self.}XmlChildAutoRedefine := new PureWVal(self, {self.}Prefix, "autoRedefine"); container_.Set({self.}XmlChildAutoRedefine); end - return {self.}XmlChildAutoRedefine and not {self.}XmlChildAutoRedefine.Removed ? {self.}XmlChildAutoRedefine : fallback_.XmlChildAutoRedefine; + return {self.}XmlChildAutoRedefine and not {self.}XmlChildAutoRedefine.Removed ? {self.}XmlChildAutoRedefine : fallback_.AutoRedefine; end; function Style.WriteXmlChildAutoRedefine(_p1: any; _p2: any); @@ -22901,6 +26635,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildAutoRedefine := v; container_.Set({self.}XmlChildAutoRedefine); end @@ -22916,7 +26651,7 @@ begin {self.}XmlChildLink := new PureWVal(self, {self.}Prefix, "link"); container_.Set({self.}XmlChildLink); end - return {self.}XmlChildLink and not {self.}XmlChildLink.Removed ? {self.}XmlChildLink : fallback_.XmlChildLink; + return {self.}XmlChildLink and not {self.}XmlChildLink.Removed ? {self.}XmlChildLink : fallback_.Link; end; function Style.WriteXmlChildLink(_p1: any; _p2: any); @@ -22929,6 +26664,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildLink := v; container_.Set({self.}XmlChildLink); end @@ -22944,7 +26680,7 @@ begin {self.}XmlChildUIPriority := new PureWVal(self, {self.}Prefix, "uiPriority"); container_.Set({self.}XmlChildUIPriority); end - return {self.}XmlChildUIPriority and not {self.}XmlChildUIPriority.Removed ? {self.}XmlChildUIPriority : fallback_.XmlChildUIPriority; + return {self.}XmlChildUIPriority and not {self.}XmlChildUIPriority.Removed ? {self.}XmlChildUIPriority : fallback_.UIPriority; end; function Style.WriteXmlChildUIPriority(_p1: any; _p2: any); @@ -22957,6 +26693,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildUIPriority := v; container_.Set({self.}XmlChildUIPriority); end @@ -22972,7 +26709,7 @@ begin {self.}XmlChildPPr := new PPr(self, {self.}Prefix, "pPr"); container_.Set({self.}XmlChildPPr); end - return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.XmlChildPPr; + return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.PPr; end; function Style.WriteXmlChildPPr(_p1: any; _p2: any); @@ -22985,6 +26722,7 @@ begin end else if v is class(PPr) then begin + v.Parent := self; {self.}XmlChildPPr := v; container_.Set({self.}XmlChildPPr); end @@ -23000,7 +26738,7 @@ begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; end; function Style.WriteXmlChildRPr(_p1: any; _p2: any); @@ -23013,6 +26751,7 @@ begin end else if v is class(RPr) then begin + v.Parent := self; {self.}XmlChildRPr := v; container_.Set({self.}XmlChildRPr); end @@ -23028,7 +26767,7 @@ begin {self.}XmlChildTblPr := new TblPr(self, {self.}Prefix, "tblPr"); container_.Set({self.}XmlChildTblPr); end - return {self.}XmlChildTblPr and not {self.}XmlChildTblPr.Removed ? {self.}XmlChildTblPr : fallback_.XmlChildTblPr; + return {self.}XmlChildTblPr and not {self.}XmlChildTblPr.Removed ? {self.}XmlChildTblPr : fallback_.TblPr; end; function Style.WriteXmlChildTblPr(_p1: any; _p2: any); @@ -23041,6 +26780,7 @@ begin end else if v is class(TblPr) then begin + v.Parent := self; {self.}XmlChildTblPr := v; container_.Set({self.}XmlChildTblPr); end @@ -23056,7 +26796,7 @@ begin {self.}XmlChildTrPr := new TrPr(self, {self.}Prefix, "trPr"); container_.Set({self.}XmlChildTrPr); end - return {self.}XmlChildTrPr and not {self.}XmlChildTrPr.Removed ? {self.}XmlChildTrPr : fallback_.XmlChildTrPr; + return {self.}XmlChildTrPr and not {self.}XmlChildTrPr.Removed ? {self.}XmlChildTrPr : fallback_.TrPr; end; function Style.WriteXmlChildTrPr(_p1: any; _p2: any); @@ -23069,6 +26809,7 @@ begin end else if v is class(TrPr) then begin + v.Parent := self; {self.}XmlChildTrPr := v; container_.Set({self.}XmlChildTrPr); end @@ -23084,7 +26825,7 @@ begin {self.}XmlChildTcPr := new TcPr(self, {self.}Prefix, "tcPr"); container_.Set({self.}XmlChildTcPr); end - return {self.}XmlChildTcPr and not {self.}XmlChildTcPr.Removed ? {self.}XmlChildTcPr : fallback_.XmlChildTcPr; + return {self.}XmlChildTcPr and not {self.}XmlChildTcPr.Removed ? {self.}XmlChildTcPr : fallback_.TcPr; end; function Style.WriteXmlChildTcPr(_p1: any; _p2: any); @@ -23097,6 +26838,7 @@ begin end else if v is class(TcPr) then begin + v.Parent := self; {self.}XmlChildTcPr := v; container_.Set({self.}XmlChildTcPr); end @@ -23134,6 +26876,7 @@ end; function Style.AddTblStylePr(): TblStylePr; begin obj := new TblStylePr(self, {self.}Prefix, "tblStylePr"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -23141,24 +26884,25 @@ end; function Style.AppendTblStylePr(): TblStylePr; begin obj := new TblStylePr(self, {self.}Prefix, "tblStylePr"); + obj.Enable := true; container_.Append(obj); return obj; end; -function TblStylePr.Create();overload; +function TblStylePr.create();overload; begin - {self.}Create(nil, "w", "tblStylePr"); + {self.}create(nil, "w", "tblStylePr"); end; -function TblStylePr.Create(_node: XmlNode);overload; +function TblStylePr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblStylePr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblStylePr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblStylePr.Init();override; @@ -23182,7 +26926,7 @@ function TblStylePr.Copy(_obj: TblStylePr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; if not ifnil(_obj.XmlChildPPr) then @@ -23198,6 +26942,27 @@ begin tslassigning := tslassigning_backup; end; +function TblStylePr.Clone(): TblStylePr;override; +begin + obj := new TblStylePr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "pPr": obj.PPr := element.Clone(); + pre + "rPr": obj.RPr := element.Clone(); + pre + "tblPr": obj.TblPr := element.Clone(); + pre + "trPr": obj.TrPr := element.Clone(); + pre + "tcPr": obj.TcPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function TblStylePr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPPr) then @@ -23234,7 +26999,7 @@ begin {self.}XmlChildPPr := new PPr(self, {self.}Prefix, "pPr"); container_.Set({self.}XmlChildPPr); end - return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.XmlChildPPr; + return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.PPr; end; function TblStylePr.WriteXmlChildPPr(_p1: any; _p2: any); @@ -23247,6 +27012,7 @@ begin end else if v is class(PPr) then begin + v.Parent := self; {self.}XmlChildPPr := v; container_.Set({self.}XmlChildPPr); end @@ -23262,7 +27028,7 @@ begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; end; function TblStylePr.WriteXmlChildRPr(_p1: any; _p2: any); @@ -23275,6 +27041,7 @@ begin end else if v is class(RPr) then begin + v.Parent := self; {self.}XmlChildRPr := v; container_.Set({self.}XmlChildRPr); end @@ -23290,7 +27057,7 @@ begin {self.}XmlChildTblPr := new TblPr(self, {self.}Prefix, "tblPr"); container_.Set({self.}XmlChildTblPr); end - return {self.}XmlChildTblPr and not {self.}XmlChildTblPr.Removed ? {self.}XmlChildTblPr : fallback_.XmlChildTblPr; + return {self.}XmlChildTblPr and not {self.}XmlChildTblPr.Removed ? {self.}XmlChildTblPr : fallback_.TblPr; end; function TblStylePr.WriteXmlChildTblPr(_p1: any; _p2: any); @@ -23303,6 +27070,7 @@ begin end else if v is class(TblPr) then begin + v.Parent := self; {self.}XmlChildTblPr := v; container_.Set({self.}XmlChildTblPr); end @@ -23318,7 +27086,7 @@ begin {self.}XmlChildTrPr := new TrPr(self, {self.}Prefix, "trPr"); container_.Set({self.}XmlChildTrPr); end - return {self.}XmlChildTrPr and not {self.}XmlChildTrPr.Removed ? {self.}XmlChildTrPr : fallback_.XmlChildTrPr; + return {self.}XmlChildTrPr and not {self.}XmlChildTrPr.Removed ? {self.}XmlChildTrPr : fallback_.TrPr; end; function TblStylePr.WriteXmlChildTrPr(_p1: any; _p2: any); @@ -23331,6 +27099,7 @@ begin end else if v is class(TrPr) then begin + v.Parent := self; {self.}XmlChildTrPr := v; container_.Set({self.}XmlChildTrPr); end @@ -23346,7 +27115,7 @@ begin {self.}XmlChildTcPr := new TcPr(self, {self.}Prefix, "tcPr"); container_.Set({self.}XmlChildTcPr); end - return {self.}XmlChildTcPr and not {self.}XmlChildTcPr.Removed ? {self.}XmlChildTcPr : fallback_.XmlChildTcPr; + return {self.}XmlChildTcPr and not {self.}XmlChildTcPr.Removed ? {self.}XmlChildTcPr : fallback_.TcPr; end; function TblStylePr.WriteXmlChildTcPr(_p1: any; _p2: any); @@ -23359,6 +27128,7 @@ begin end else if v is class(TcPr) then begin + v.Parent := self; {self.}XmlChildTcPr := v; container_.Set({self.}XmlChildTcPr); end @@ -23367,20 +27137,20 @@ begin end end; -function TblInd.Create();overload; +function TblInd.create();overload; begin - {self.}Create(nil, "w", "tblInd"); + {self.}create(nil, "w", "tblInd"); end; -function TblInd.Create(_node: XmlNode);overload; +function TblInd.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblInd.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblInd.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblInd.Init();override; @@ -23400,7 +27170,7 @@ function TblInd.Copy(_obj: TblInd);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.W) then {self.}W := _obj.W; if not ifnil(_obj.Type) then @@ -23408,6 +27178,16 @@ begin tslassigning := tslassigning_backup; end; +function TblInd.Clone(): TblInd;override; +begin + obj := new TblInd(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}W) then + obj.W := {self.}W; + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + return obj; +end; + function TblInd.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrW) then @@ -23444,20 +27224,20 @@ begin {self.}XmlAttrType.Value := _value; end; -function TblCellMar.Create();overload; +function TblCellMar.create();overload; begin - {self.}Create(nil, "w", "tblCellMar"); + {self.}create(nil, "w", "tblCellMar"); end; -function TblCellMar.Create(_node: XmlNode);overload; +function TblCellMar.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function TblCellMar.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TblCellMar.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TblCellMar.Init();override; @@ -23479,7 +27259,7 @@ function TblCellMar.Copy(_obj: TblCellMar);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTop) then {self.}Top.Copy(_obj.XmlChildTop); if not ifnil(_obj.XmlChildLeft) then @@ -23491,6 +27271,24 @@ begin tslassigning := tslassigning_backup; end; +function TblCellMar.Clone(): TblCellMar;override; +begin + obj := new TblCellMar(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "top": obj.Top := element.Clone(); + pre + "left": obj.Left := element.Clone(); + pre + "bottom": obj.Bottom := element.Clone(); + pre + "right": obj.Right := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function TblCellMar.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTop) then @@ -23510,7 +27308,7 @@ begin {self.}XmlChildTop := new TblInd(self, {self.}Prefix, "top"); container_.Set({self.}XmlChildTop); end - return {self.}XmlChildTop and not {self.}XmlChildTop.Removed ? {self.}XmlChildTop : fallback_.XmlChildTop; + return {self.}XmlChildTop and not {self.}XmlChildTop.Removed ? {self.}XmlChildTop : fallback_.Top; end; function TblCellMar.WriteXmlChildTop(_p1: any; _p2: any); @@ -23523,6 +27321,7 @@ begin end else if v is class(TblInd) then begin + v.Parent := self; {self.}XmlChildTop := v; container_.Set({self.}XmlChildTop); end @@ -23538,7 +27337,7 @@ begin {self.}XmlChildLeft := new TblInd(self, {self.}Prefix, "left"); container_.Set({self.}XmlChildLeft); end - return {self.}XmlChildLeft and not {self.}XmlChildLeft.Removed ? {self.}XmlChildLeft : fallback_.XmlChildLeft; + return {self.}XmlChildLeft and not {self.}XmlChildLeft.Removed ? {self.}XmlChildLeft : fallback_.Left; end; function TblCellMar.WriteXmlChildLeft(_p1: any; _p2: any); @@ -23551,6 +27350,7 @@ begin end else if v is class(TblInd) then begin + v.Parent := self; {self.}XmlChildLeft := v; container_.Set({self.}XmlChildLeft); end @@ -23566,7 +27366,7 @@ begin {self.}XmlChildBottom := new TblInd(self, {self.}Prefix, "bottom"); container_.Set({self.}XmlChildBottom); end - return {self.}XmlChildBottom and not {self.}XmlChildBottom.Removed ? {self.}XmlChildBottom : fallback_.XmlChildBottom; + return {self.}XmlChildBottom and not {self.}XmlChildBottom.Removed ? {self.}XmlChildBottom : fallback_.Bottom; end; function TblCellMar.WriteXmlChildBottom(_p1: any; _p2: any); @@ -23579,6 +27379,7 @@ begin end else if v is class(TblInd) then begin + v.Parent := self; {self.}XmlChildBottom := v; container_.Set({self.}XmlChildBottom); end @@ -23594,7 +27395,7 @@ begin {self.}XmlChildRight := new TblInd(self, {self.}Prefix, "right"); container_.Set({self.}XmlChildRight); end - return {self.}XmlChildRight and not {self.}XmlChildRight.Removed ? {self.}XmlChildRight : fallback_.XmlChildRight; + return {self.}XmlChildRight and not {self.}XmlChildRight.Removed ? {self.}XmlChildRight : fallback_.Right; end; function TblCellMar.WriteXmlChildRight(_p1: any; _p2: any); @@ -23607,6 +27408,7 @@ begin end else if v is class(TblInd) then begin + v.Parent := self; {self.}XmlChildRight := v; container_.Set({self.}XmlChildRight); end @@ -23615,20 +27417,20 @@ begin end end; -function WebSettings.Create();overload; +function WebSettings.create();overload; begin - {self.}Create(nil, "w", "webSettings"); + {self.}create(nil, "w", "webSettings"); end; -function WebSettings.Create(_node: XmlNode);overload; +function WebSettings.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function WebSettings.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function WebSettings.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function WebSettings.Init();override; @@ -23649,7 +27451,7 @@ function WebSettings.Copy(_obj: WebSettings);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; if not ifnil(_obj.XmlChildOptimizeForBrowser) then @@ -23659,6 +27461,24 @@ begin tslassigning := tslassigning_backup; end; +function WebSettings.Clone(): WebSettings;override; +begin + obj := new WebSettings(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "optimizeForBrowser": obj.OptimizeForBrowser := element.Clone(); + pre + "allowPNG": obj.AllowPNG := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function WebSettings.ConvertToPoint();override; begin @@ -23686,7 +27506,7 @@ begin {self.}XmlChildOptimizeForBrowser := new OpenXmlSimpleType(self, {self.}Prefix, "optimizeForBrowser"); container_.Set({self.}XmlChildOptimizeForBrowser); end - return {self.}XmlChildOptimizeForBrowser and not {self.}XmlChildOptimizeForBrowser.Removed ? {self.}XmlChildOptimizeForBrowser : fallback_.XmlChildOptimizeForBrowser; + return {self.}XmlChildOptimizeForBrowser and not {self.}XmlChildOptimizeForBrowser.Removed ? {self.}XmlChildOptimizeForBrowser : fallback_.OptimizeForBrowser; end; function WebSettings.WriteXmlChildOptimizeForBrowser(_value: nil_or_OpenXmlSimpleType); @@ -23698,6 +27518,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildOptimizeForBrowser := _value; container_.Set({self.}XmlChildOptimizeForBrowser); end @@ -23713,7 +27534,7 @@ begin {self.}XmlChildAllowPNG := new OpenXmlSimpleType(self, {self.}Prefix, "allowPNG"); container_.Set({self.}XmlChildAllowPNG); end - return {self.}XmlChildAllowPNG and not {self.}XmlChildAllowPNG.Removed ? {self.}XmlChildAllowPNG : fallback_.XmlChildAllowPNG; + return {self.}XmlChildAllowPNG and not {self.}XmlChildAllowPNG.Removed ? {self.}XmlChildAllowPNG : fallback_.AllowPNG; end; function WebSettings.WriteXmlChildAllowPNG(_value: nil_or_OpenXmlSimpleType); @@ -23725,6 +27546,7 @@ begin end else if _value is class(OpenXmlSimpleType) then begin + _value.Parent := self; {self.}XmlChildAllowPNG := _value; container_.Set({self.}XmlChildAllowPNG); end @@ -23733,20 +27555,20 @@ begin end end; -function AlternateContent.Create();overload; +function AlternateContent.create();overload; begin - {self.}Create(nil, "mc", "AlternateContent"); + {self.}create(nil, "mc", "AlternateContent"); end; -function AlternateContent.Create(_node: XmlNode);overload; +function AlternateContent.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function AlternateContent.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function AlternateContent.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function AlternateContent.Init();override; @@ -23766,7 +27588,7 @@ function AlternateContent.Copy(_obj: AlternateContent);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildChoice) then {self.}Choice.Copy(_obj.XmlChildChoice); if not ifnil(_obj.XmlChildFallback) then @@ -23774,6 +27596,22 @@ begin tslassigning := tslassigning_backup; end; +function AlternateContent.Clone(): AlternateContent;override; +begin + obj := new AlternateContent(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "Choice": obj.Choice := element.Clone(); + pre + "Fallback": obj.Fallback := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function AlternateContent.ConvertToPoint();override; begin if not ifnil({self.}XmlChildChoice) then @@ -23789,7 +27627,7 @@ begin {self.}XmlChildChoice := new Choice(self, {self.}Prefix, "Choice"); container_.Set({self.}XmlChildChoice); end - return {self.}XmlChildChoice and not {self.}XmlChildChoice.Removed ? {self.}XmlChildChoice : fallback_.XmlChildChoice; + return {self.}XmlChildChoice and not {self.}XmlChildChoice.Removed ? {self.}XmlChildChoice : fallback_.Choice; end; function AlternateContent.WriteXmlChildChoice(_p1: any; _p2: any); @@ -23802,6 +27640,7 @@ begin end else if v is class(Choice) then begin + v.Parent := self; {self.}XmlChildChoice := v; container_.Set({self.}XmlChildChoice); end @@ -23817,7 +27656,7 @@ begin {self.}XmlChildFallback := new Fallback(self, {self.}Prefix, "Fallback"); container_.Set({self.}XmlChildFallback); end - return {self.}XmlChildFallback and not {self.}XmlChildFallback.Removed ? {self.}XmlChildFallback : fallback_.XmlChildFallback; + return {self.}XmlChildFallback and not {self.}XmlChildFallback.Removed ? {self.}XmlChildFallback : fallback_.Fallback; end; function AlternateContent.WriteXmlChildFallback(_p1: any; _p2: any); @@ -23830,6 +27669,7 @@ begin end else if v is class(Fallback) then begin + v.Parent := self; {self.}XmlChildFallback := v; container_.Set({self.}XmlChildFallback); end @@ -23838,20 +27678,20 @@ begin end end; -function Choice.Create();overload; +function Choice.create();overload; begin - {self.}Create(nil, "mc", "Choice"); + {self.}create(nil, "mc", "Choice"); end; -function Choice.Create(_node: XmlNode);overload; +function Choice.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Choice.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Choice.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Choice.Init();override; @@ -23872,7 +27712,7 @@ function Choice.Copy(_obj: Choice);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Requires) then {self.}Requires := _obj.Requires; if not ifnil(_obj.XmlChildStyle) then @@ -23882,6 +27722,24 @@ begin tslassigning := tslassigning_backup; end; +function Choice.Clone(): Choice;override; +begin + obj := new Choice(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Requires) then + obj.Requires := {self.}Requires; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "c14:style": obj.Style := element.Clone(); + "w:drawing": obj.Drawing := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Choice.ConvertToPoint();override; begin if not ifnil({self.}XmlChildStyle) then @@ -23912,7 +27770,7 @@ begin {self.}XmlChildStyle := new PureVal(self, "c14", "style"); container_.Set({self.}XmlChildStyle); end - return {self.}XmlChildStyle and not {self.}XmlChildStyle.Removed ? {self.}XmlChildStyle : fallback_.XmlChildStyle; + return {self.}XmlChildStyle and not {self.}XmlChildStyle.Removed ? {self.}XmlChildStyle : fallback_.Style; end; function Choice.WriteXmlChildStyle(_p1: any; _p2: any); @@ -23925,6 +27783,7 @@ begin end else if v is class(PureVal) then begin + v.Parent := self; {self.}XmlChildStyle := v; container_.Set({self.}XmlChildStyle); end @@ -23940,7 +27799,7 @@ begin {self.}XmlChildDrawing := new Drawing(self, "w", "drawing"); container_.Set({self.}XmlChildDrawing); end - return {self.}XmlChildDrawing and not {self.}XmlChildDrawing.Removed ? {self.}XmlChildDrawing : fallback_.XmlChildDrawing; + return {self.}XmlChildDrawing and not {self.}XmlChildDrawing.Removed ? {self.}XmlChildDrawing : fallback_.Drawing; end; function Choice.WriteXmlChildDrawing(_p1: any; _p2: any); @@ -23953,6 +27812,7 @@ begin end else if v is class(Drawing) then begin + v.Parent := self; {self.}XmlChildDrawing := v; container_.Set({self.}XmlChildDrawing); end @@ -23961,20 +27821,20 @@ begin end end; -function Fallback.Create();overload; +function Fallback.create();overload; begin - {self.}Create(nil, "mc", "Fallback"); + {self.}create(nil, "mc", "Fallback"); end; -function Fallback.Create(_node: XmlNode);overload; +function Fallback.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Fallback.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Fallback.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Fallback.Init();override; @@ -23994,7 +27854,7 @@ function Fallback.Copy(_obj: Fallback);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildStyle) then {self.}Style.Copy(_obj.XmlChildStyle); if not ifnil(_obj.XmlChildPict) then @@ -24002,6 +27862,22 @@ begin tslassigning := tslassigning_backup; end; +function Fallback.Clone(): Fallback;override; +begin + obj := new Fallback(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "c:style": obj.Style := element.Clone(); + "w:pict": obj.Pict := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Fallback.ConvertToPoint();override; begin if not ifnil({self.}XmlChildStyle) then @@ -24017,7 +27893,7 @@ begin {self.}XmlChildStyle := new PureVal(self, "c", "style"); container_.Set({self.}XmlChildStyle); end - return {self.}XmlChildStyle and not {self.}XmlChildStyle.Removed ? {self.}XmlChildStyle : fallback_.XmlChildStyle; + return {self.}XmlChildStyle and not {self.}XmlChildStyle.Removed ? {self.}XmlChildStyle : fallback_.Style; end; function Fallback.WriteXmlChildStyle(_p1: any; _p2: any); @@ -24030,6 +27906,7 @@ begin end else if v is class(PureVal) then begin + v.Parent := self; {self.}XmlChildStyle := v; container_.Set({self.}XmlChildStyle); end @@ -24045,7 +27922,7 @@ begin {self.}XmlChildPict := new Pict(self, "w", "pict"); container_.Set({self.}XmlChildPict); end - return {self.}XmlChildPict and not {self.}XmlChildPict.Removed ? {self.}XmlChildPict : fallback_.XmlChildPict; + return {self.}XmlChildPict and not {self.}XmlChildPict.Removed ? {self.}XmlChildPict : fallback_.Pict; end; function Fallback.WriteXmlChildPict(_p1: any; _p2: any); @@ -24058,6 +27935,7 @@ begin end else if v is class(Pict) then begin + v.Parent := self; {self.}XmlChildPict := v; container_.Set({self.}XmlChildPict); end @@ -24066,20 +27944,20 @@ begin end end; -function Pict.Create();overload; +function Pict.create();overload; begin - {self.}Create(nil, "w", "pict"); + {self.}create(nil, "w", "pict"); end; -function Pict.Create(_node: XmlNode);overload; +function Pict.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Pict.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Pict.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Pict.Init();override; @@ -24100,7 +27978,7 @@ function Pict.Copy(_obj: Pict);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildShapetype) then {self.}Shapetype.Copy(_obj.XmlChildShapetype); if not ifnil(_obj.XmlChildShape) then @@ -24110,6 +27988,23 @@ begin tslassigning := tslassigning_backup; end; +function Pict.Clone(): Pict;override; +begin + obj := new Pict(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "v:shapetype": obj.Shapetype := element.Clone(); + "v:shape": obj.Shape := element.Clone(); + "v:control": obj.Control := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Pict.ConvertToPoint();override; begin if not ifnil({self.}XmlChildShapetype) then @@ -24127,7 +28022,7 @@ begin {self.}XmlChildShapetype := new VML.Shapetype(self, "v", "shapetype"); container_.Set({self.}XmlChildShapetype); end - return {self.}XmlChildShapetype and not {self.}XmlChildShapetype.Removed ? {self.}XmlChildShapetype : fallback_.XmlChildShapetype; + return {self.}XmlChildShapetype and not {self.}XmlChildShapetype.Removed ? {self.}XmlChildShapetype : fallback_.Shapetype; end; function Pict.WriteXmlChildShapetype(_p1: any; _p2: any); @@ -24140,6 +28035,7 @@ begin end else if v is class(Shapetype) then begin + v.Parent := self; {self.}XmlChildShapetype := v; container_.Set({self.}XmlChildShapetype); end @@ -24155,7 +28051,7 @@ begin {self.}XmlChildShape := new VML.Shape(self, "v", "shape"); container_.Set({self.}XmlChildShape); end - return {self.}XmlChildShape and not {self.}XmlChildShape.Removed ? {self.}XmlChildShape : fallback_.XmlChildShape; + return {self.}XmlChildShape and not {self.}XmlChildShape.Removed ? {self.}XmlChildShape : fallback_.Shape; end; function Pict.WriteXmlChildShape(_p1: any; _p2: any); @@ -24168,6 +28064,7 @@ begin end else if v is class(Shape) then begin + v.Parent := self; {self.}XmlChildShape := v; container_.Set({self.}XmlChildShape); end @@ -24183,7 +28080,7 @@ begin {self.}XmlChildControl := new Control(self, "v", "control"); container_.Set({self.}XmlChildControl); end - return {self.}XmlChildControl and not {self.}XmlChildControl.Removed ? {self.}XmlChildControl : fallback_.XmlChildControl; + return {self.}XmlChildControl and not {self.}XmlChildControl.Removed ? {self.}XmlChildControl : fallback_.Control; end; function Pict.WriteXmlChildControl(_p1: any; _p2: any); @@ -24196,6 +28093,7 @@ begin end else if v is class(Control) then begin + v.Parent := self; {self.}XmlChildControl := v; container_.Set({self.}XmlChildControl); end @@ -24204,20 +28102,20 @@ begin end end; -function Control.Create();overload; +function Control.create();overload; begin - {self.}Create(nil, "w", "control"); + {self.}create(nil, "w", "control"); end; -function Control.Create(_node: XmlNode);overload; +function Control.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Control.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Control.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Control.Init();override; @@ -24238,7 +28136,7 @@ function Control.Copy(_obj: Control);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.Shapeid) then @@ -24248,6 +28146,18 @@ begin tslassigning := tslassigning_backup; end; +function Control.Clone(): Control;override; +begin + obj := new Control(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Shapeid) then + obj.Shapeid := {self.}Shapeid; + if not ifnil({self.}name) then + obj.name := {self.}name; + return obj; +end; + function Control.ConvertToPoint();override; begin @@ -24298,20 +28208,20 @@ begin {self.}XmlAttrname.Value := _value; end; -function Ftr.Create();overload; +function Ftr.create();overload; begin - {self.}Create(nil, "w", "ftr"); + {self.}create(nil, "w", "ftr"); end; -function Ftr.Create(_node: XmlNode);overload; +function Ftr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Ftr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Ftr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Ftr.Init();override; @@ -24332,7 +28242,7 @@ function Ftr.Copy(_obj: Ftr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; if not ifnil(_obj.XmlChildSdt) then @@ -24340,6 +28250,23 @@ begin tslassigning := tslassigning_backup; end; +function Ftr.Clone(): Ftr;override; +begin + obj := new Ftr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sdt": obj.Sdt := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Ftr.ConvertToPoint();override; begin elems := {self.}Ps(); @@ -24371,7 +28298,7 @@ begin {self.}XmlChildSdt := new Sdt(self, {self.}Prefix, "sdt"); container_.Set({self.}XmlChildSdt); end - return {self.}XmlChildSdt and not {self.}XmlChildSdt.Removed ? {self.}XmlChildSdt : fallback_.XmlChildSdt; + return {self.}XmlChildSdt and not {self.}XmlChildSdt.Removed ? {self.}XmlChildSdt : fallback_.Sdt; end; function Ftr.WriteXmlChildSdt(_p1: any; _p2: any); @@ -24384,6 +28311,7 @@ begin end else if v is class(Sdt) then begin + v.Parent := self; {self.}XmlChildSdt := v; container_.Set({self.}XmlChildSdt); end @@ -24421,6 +28349,7 @@ end; function Ftr.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -24428,24 +28357,25 @@ end; function Ftr.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Hdr.Create();overload; +function Hdr.create();overload; begin - {self.}Create(nil, "w", "hdr"); + {self.}create(nil, "w", "hdr"); end; -function Hdr.Create(_node: XmlNode);overload; +function Hdr.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Hdr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Hdr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Hdr.Init();override; @@ -24466,7 +28396,7 @@ function Hdr.Copy(_obj: Hdr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; if not ifnil(_obj.XmlChildSdt) then @@ -24474,6 +28404,23 @@ begin tslassigning := tslassigning_backup; end; +function Hdr.Clone(): Hdr;override; +begin + obj := new Hdr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sdt": obj.Sdt := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Hdr.ConvertToPoint();override; begin elems := {self.}Ps(); @@ -24505,7 +28452,7 @@ begin {self.}XmlChildSdt := new Sdt(self, {self.}Prefix, "sdt"); container_.Set({self.}XmlChildSdt); end - return {self.}XmlChildSdt and not {self.}XmlChildSdt.Removed ? {self.}XmlChildSdt : fallback_.XmlChildSdt; + return {self.}XmlChildSdt and not {self.}XmlChildSdt.Removed ? {self.}XmlChildSdt : fallback_.Sdt; end; function Hdr.WriteXmlChildSdt(_p1: any; _p2: any); @@ -24518,6 +28465,7 @@ begin end else if v is class(Sdt) then begin + v.Parent := self; {self.}XmlChildSdt := v; container_.Set({self.}XmlChildSdt); end @@ -24555,6 +28503,7 @@ end; function Hdr.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -24562,24 +28511,25 @@ end; function Hdr.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Comments.Create();overload; +function Comments.create();overload; begin - {self.}Create(nil, "w", "comments"); + {self.}create(nil, "w", "comments"); end; -function Comments.Create(_node: XmlNode);overload; +function Comments.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Comments.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Comments.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Comments.Init();override; @@ -24599,12 +28549,23 @@ function Comments.Copy(_obj: Comments);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; tslassigning := tslassigning_backup; end; +function Comments.Clone(): Comments;override; +begin + obj := new Comments(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Comments.ConvertToPoint();override; begin elems := {self.}Comments(); @@ -24656,6 +28617,7 @@ end; function Comments.AddComment(): Comment; begin obj := new Comment(self, {self.}Prefix, "comment"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -24663,24 +28625,25 @@ end; function Comments.AppendComment(): Comment; begin obj := new Comment(self, {self.}Prefix, "comment"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Comment.Create();overload; +function Comment.create();overload; begin - {self.}Create(nil, "w", "comment"); + {self.}create(nil, "w", "comment"); end; -function Comment.Create(_node: XmlNode);overload; +function Comment.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Comment.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Comment.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Comment.Init();override; @@ -24702,7 +28665,7 @@ function Comment.Copy(_obj: Comment);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Author) then {self.}Author := _obj.Author; if not ifnil(_obj.Date) then @@ -24712,6 +28675,21 @@ begin tslassigning := tslassigning_backup; end; +function Comment.Clone(): Comment;override; +begin + obj := new Comment(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Author) then + obj.Author := {self.}Author; + if not ifnil({self.}Date) then + obj.Date := {self.}Date; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Comment.ConvertToPoint();override; begin elems := {self.}Ps(); @@ -24793,6 +28771,7 @@ end; function Comment.AddP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -24800,24 +28779,25 @@ end; function Comment.AppendP(): P; begin obj := new P(self, {self.}Prefix, "p"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Numbering.Create();overload; +function Numbering.create();overload; begin - {self.}Create(nil, "w", "numbering"); + {self.}create(nil, "w", "numbering"); end; -function Numbering.Create(_node: XmlNode);overload; +function Numbering.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Numbering.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Numbering.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Numbering.Init();override; @@ -24838,12 +28818,23 @@ function Numbering.Copy(_obj: Numbering);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ignorable) then {self.}Ignorable := _obj.Ignorable; tslassigning := tslassigning_backup; end; +function Numbering.Clone(): Numbering;override; +begin + obj := new Numbering(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ignorable) then + obj.Ignorable := {self.}Ignorable; + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Numbering.ConvertToPoint();override; begin elems := {self.}AbstractNums(); @@ -24924,6 +28915,7 @@ end; function Numbering.AddAbstractNum(): AbstractNum; begin obj := new AbstractNum(self, {self.}Prefix, "abstractNum"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -24931,6 +28923,7 @@ end; function Numbering.AddNum(): Num; begin obj := new Num(self, {self.}Prefix, "num"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -24938,6 +28931,7 @@ end; function Numbering.AppendAbstractNum(): AbstractNum; begin obj := new AbstractNum(self, {self.}Prefix, "abstractNum"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -24945,24 +28939,25 @@ end; function Numbering.AppendNum(): Num; begin obj := new Num(self, {self.}Prefix, "num"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Num.Create();overload; +function Num.create();overload; begin - {self.}Create(nil, "w", "num"); + {self.}create(nil, "w", "num"); end; -function Num.Create(_node: XmlNode);overload; +function Num.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Num.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Num.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Num.Init();override; @@ -24982,7 +28977,7 @@ function Num.Copy(_obj: Num);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.NumId) then {self.}NumId := _obj.NumId; if not ifnil(_obj.XmlChildAbstractNumId) then @@ -24990,6 +28985,23 @@ begin tslassigning := tslassigning_backup; end; +function Num.Clone(): Num;override; +begin + obj := new Num(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}NumId) then + obj.NumId := {self.}NumId; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "abstractNumId": obj.AbstractNumId := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Num.ConvertToPoint();override; begin if not ifnil({self.}XmlChildAbstractNumId) then @@ -25018,7 +29030,7 @@ begin {self.}XmlChildAbstractNumId := new PureWVal(self, {self.}Prefix, "abstractNumId"); container_.Set({self.}XmlChildAbstractNumId); end - return {self.}XmlChildAbstractNumId and not {self.}XmlChildAbstractNumId.Removed ? {self.}XmlChildAbstractNumId : fallback_.XmlChildAbstractNumId; + return {self.}XmlChildAbstractNumId and not {self.}XmlChildAbstractNumId.Removed ? {self.}XmlChildAbstractNumId : fallback_.AbstractNumId; end; function Num.WriteXmlChildAbstractNumId(_p1: any; _p2: any); @@ -25031,6 +29043,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildAbstractNumId := v; container_.Set({self.}XmlChildAbstractNumId); end @@ -25039,20 +29052,20 @@ begin end end; -function AbstractNum.Create();overload; +function AbstractNum.create();overload; begin - {self.}Create(nil, "w", "abstractNum"); + {self.}create(nil, "w", "abstractNum"); end; -function AbstractNum.Create(_node: XmlNode);overload; +function AbstractNum.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function AbstractNum.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function AbstractNum.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function AbstractNum.Init();override; @@ -25076,7 +29089,7 @@ function AbstractNum.Copy(_obj: AbstractNum);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.AbstractNumId) then {self.}AbstractNumId := _obj.AbstractNumId; if not ifnil(_obj.RestartNumberingAfterBreak) then @@ -25090,6 +29103,27 @@ begin tslassigning := tslassigning_backup; end; +function AbstractNum.Clone(): AbstractNum;override; +begin + obj := new AbstractNum(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}AbstractNumId) then + obj.AbstractNumId := {self.}AbstractNumId; + if not ifnil({self.}RestartNumberingAfterBreak) then + obj.RestartNumberingAfterBreak := {self.}RestartNumberingAfterBreak; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "nsid": obj.Nsid := element.Clone(); + pre + "multiLevelType": obj.MultiLevelType := element.Clone(); + pre + "tmpl": obj.Tmpl := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function AbstractNum.ConvertToPoint();override; begin if not ifnil({self.}XmlChildNsid) then @@ -25140,7 +29174,7 @@ begin {self.}XmlChildNsid := new PureWVal(self, {self.}Prefix, "nsid"); container_.Set({self.}XmlChildNsid); end - return {self.}XmlChildNsid and not {self.}XmlChildNsid.Removed ? {self.}XmlChildNsid : fallback_.XmlChildNsid; + return {self.}XmlChildNsid and not {self.}XmlChildNsid.Removed ? {self.}XmlChildNsid : fallback_.Nsid; end; function AbstractNum.WriteXmlChildNsid(_p1: any; _p2: any); @@ -25153,6 +29187,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNsid := v; container_.Set({self.}XmlChildNsid); end @@ -25168,7 +29203,7 @@ begin {self.}XmlChildMultiLevelType := new PureWVal(self, {self.}Prefix, "multiLevelType"); container_.Set({self.}XmlChildMultiLevelType); end - return {self.}XmlChildMultiLevelType and not {self.}XmlChildMultiLevelType.Removed ? {self.}XmlChildMultiLevelType : fallback_.XmlChildMultiLevelType; + return {self.}XmlChildMultiLevelType and not {self.}XmlChildMultiLevelType.Removed ? {self.}XmlChildMultiLevelType : fallback_.MultiLevelType; end; function AbstractNum.WriteXmlChildMultiLevelType(_p1: any; _p2: any); @@ -25181,6 +29216,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildMultiLevelType := v; container_.Set({self.}XmlChildMultiLevelType); end @@ -25196,7 +29232,7 @@ begin {self.}XmlChildTmpl := new PureWVal(self, {self.}Prefix, "tmpl"); container_.Set({self.}XmlChildTmpl); end - return {self.}XmlChildTmpl and not {self.}XmlChildTmpl.Removed ? {self.}XmlChildTmpl : fallback_.XmlChildTmpl; + return {self.}XmlChildTmpl and not {self.}XmlChildTmpl.Removed ? {self.}XmlChildTmpl : fallback_.Tmpl; end; function AbstractNum.WriteXmlChildTmpl(_p1: any; _p2: any); @@ -25209,6 +29245,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildTmpl := v; container_.Set({self.}XmlChildTmpl); end @@ -25246,6 +29283,7 @@ end; function AbstractNum.AddLvl(): Lvl; begin obj := new Lvl(self, {self.}Prefix, "lvl"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -25253,24 +29291,25 @@ end; function AbstractNum.AppendLvl(): Lvl; begin obj := new Lvl(self, {self.}Prefix, "lvl"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Lvl.Create();overload; +function Lvl.create();overload; begin - {self.}Create(nil, "w", "lvl"); + {self.}create(nil, "w", "lvl"); end; -function Lvl.Create(_node: XmlNode);overload; +function Lvl.create(_node: XmlNode);overload; begin - inherited Create(_node: XmlNode); + inherited create(_node); end; -function Lvl.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Lvl.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - inherited Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Lvl.Init();override; @@ -25298,7 +29337,7 @@ function Lvl.Copy(_obj: Lvl);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ilvl) then {self.}Ilvl := _obj.Ilvl; if not ifnil(_obj.Tentative) then @@ -25322,6 +29361,32 @@ begin tslassigning := tslassigning_backup; end; +function Lvl.Clone(): Lvl;override; +begin + obj := new Lvl(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ilvl) then + obj.Ilvl := {self.}Ilvl; + if not ifnil({self.}Tentative) then + obj.Tentative := {self.}Tentative; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "start": obj.Start := element.Clone(); + pre + "numFmt": obj.NumFmt := element.Clone(); + pre + "pStyle": obj.PStyle := element.Clone(); + pre + "suff": obj.Suff := element.Clone(); + pre + "lvlText": obj.LvlText := element.Clone(); + pre + "lvlJc": obj.LvlJc := element.Clone(); + pre + "pPr": obj.PPr := element.Clone(); + pre + "rPr": obj.RPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Lvl.ConvertToPoint();override; begin if not ifnil({self.}XmlChildStart) then @@ -25379,7 +29444,7 @@ begin {self.}XmlChildStart := new PureWVal(self, {self.}Prefix, "start"); container_.Set({self.}XmlChildStart); end - return {self.}XmlChildStart and not {self.}XmlChildStart.Removed ? {self.}XmlChildStart : fallback_.XmlChildStart; + return {self.}XmlChildStart and not {self.}XmlChildStart.Removed ? {self.}XmlChildStart : fallback_.Start; end; function Lvl.WriteXmlChildStart(_p1: any; _p2: any); @@ -25392,6 +29457,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildStart := v; container_.Set({self.}XmlChildStart); end @@ -25407,7 +29473,7 @@ begin {self.}XmlChildNumFmt := new PureWVal(self, {self.}Prefix, "numFmt"); container_.Set({self.}XmlChildNumFmt); end - return {self.}XmlChildNumFmt and not {self.}XmlChildNumFmt.Removed ? {self.}XmlChildNumFmt : fallback_.XmlChildNumFmt; + return {self.}XmlChildNumFmt and not {self.}XmlChildNumFmt.Removed ? {self.}XmlChildNumFmt : fallback_.NumFmt; end; function Lvl.WriteXmlChildNumFmt(_p1: any; _p2: any); @@ -25420,6 +29486,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildNumFmt := v; container_.Set({self.}XmlChildNumFmt); end @@ -25435,7 +29502,7 @@ begin {self.}XmlChildPStyle := new PureWVal(self, {self.}Prefix, "pStyle"); container_.Set({self.}XmlChildPStyle); end - return {self.}XmlChildPStyle and not {self.}XmlChildPStyle.Removed ? {self.}XmlChildPStyle : fallback_.XmlChildPStyle; + return {self.}XmlChildPStyle and not {self.}XmlChildPStyle.Removed ? {self.}XmlChildPStyle : fallback_.PStyle; end; function Lvl.WriteXmlChildPStyle(_p1: any; _p2: any); @@ -25448,6 +29515,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildPStyle := v; container_.Set({self.}XmlChildPStyle); end @@ -25463,7 +29531,7 @@ begin {self.}XmlChildSuff := new PureWVal(self, {self.}Prefix, "suff"); container_.Set({self.}XmlChildSuff); end - return {self.}XmlChildSuff and not {self.}XmlChildSuff.Removed ? {self.}XmlChildSuff : fallback_.XmlChildSuff; + return {self.}XmlChildSuff and not {self.}XmlChildSuff.Removed ? {self.}XmlChildSuff : fallback_.Suff; end; function Lvl.WriteXmlChildSuff(_p1: any; _p2: any); @@ -25476,6 +29544,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildSuff := v; container_.Set({self.}XmlChildSuff); end @@ -25491,7 +29560,7 @@ begin {self.}XmlChildLvlText := new PureWVal(self, {self.}Prefix, "lvlText"); container_.Set({self.}XmlChildLvlText); end - return {self.}XmlChildLvlText and not {self.}XmlChildLvlText.Removed ? {self.}XmlChildLvlText : fallback_.XmlChildLvlText; + return {self.}XmlChildLvlText and not {self.}XmlChildLvlText.Removed ? {self.}XmlChildLvlText : fallback_.LvlText; end; function Lvl.WriteXmlChildLvlText(_p1: any; _p2: any); @@ -25504,6 +29573,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildLvlText := v; container_.Set({self.}XmlChildLvlText); end @@ -25519,7 +29589,7 @@ begin {self.}XmlChildLvlJc := new PureWVal(self, {self.}Prefix, "lvlJc"); container_.Set({self.}XmlChildLvlJc); end - return {self.}XmlChildLvlJc and not {self.}XmlChildLvlJc.Removed ? {self.}XmlChildLvlJc : fallback_.XmlChildLvlJc; + return {self.}XmlChildLvlJc and not {self.}XmlChildLvlJc.Removed ? {self.}XmlChildLvlJc : fallback_.LvlJc; end; function Lvl.WriteXmlChildLvlJc(_p1: any; _p2: any); @@ -25532,6 +29602,7 @@ begin end else if v is class(PureWVal) then begin + v.Parent := self; {self.}XmlChildLvlJc := v; container_.Set({self.}XmlChildLvlJc); end @@ -25547,7 +29618,7 @@ begin {self.}XmlChildPPr := new PPr(self, {self.}Prefix, "pPr"); container_.Set({self.}XmlChildPPr); end - return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.XmlChildPPr; + return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.PPr; end; function Lvl.WriteXmlChildPPr(_p1: any; _p2: any); @@ -25560,6 +29631,7 @@ begin end else if v is class(PPr) then begin + v.Parent := self; {self.}XmlChildPPr := v; container_.Set({self.}XmlChildPPr); end @@ -25575,7 +29647,7 @@ begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; end; function Lvl.WriteXmlChildRPr(_p1: any; _p2: any); @@ -25588,6 +29660,7 @@ begin end else if v is class(RPr) then begin + v.Parent := self; {self.}XmlChildRPr := v; container_.Set({self.}XmlChildRPr); end diff --git a/autounit/DrawingML.tsf b/autounit/DrawingML.tsf index 3cbf09a..3589957 100644 --- a/autounit/DrawingML.tsf +++ b/autounit/DrawingML.tsf @@ -4,30 +4,35 @@ uses TSSafeUnitConverter, DocxML; type Theme = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Theme);override; + function Clone(): Theme;override; function ConvertToPoint();override; public // attributes property property Name read ReadXmlAttrName write WriteXmlAttrName; function ReadXmlAttrName(); - function WriteXmlAttrName(_value); + function WriteXmlAttrName(_value: any); // simple_type property - property ObjectDefaults read ReadXmlChildObjectDefaults; - property ExtraClrSchemeLst read ReadXmlChildExtraClrSchemeLst; + property ObjectDefaults read ReadXmlChildObjectDefaults write WriteXmlChildObjectDefaults; + property ExtraClrSchemeLst read ReadXmlChildExtraClrSchemeLst write WriteXmlChildExtraClrSchemeLst; function ReadXmlChildObjectDefaults(): OpenXmlSimpleType; + function WriteXmlChildObjectDefaults(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildExtraClrSchemeLst(): OpenXmlSimpleType; + function WriteXmlChildExtraClrSchemeLst(_value: nil_or_OpenXmlSimpleType); // normal property - property ThemeElements read ReadXmlChildThemeElements; - property ExtLst read ReadXmlChildExtLst; + property ThemeElements read ReadXmlChildThemeElements write WriteXmlChildThemeElements; + property ExtLst read ReadXmlChildExtLst write WriteXmlChildExtLst; function ReadXmlChildThemeElements(): ThemeElements; + function WriteXmlChildThemeElements(_p1: any; _p2: any); function ReadXmlChildExtLst(): ExtLst; + function WriteXmlChildExtLst(_p1: any; _p2: any); public // Attributes @@ -42,26 +47,30 @@ end; type ThemeElements = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ThemeElements);override; + function Clone(): ThemeElements;override; function ConvertToPoint();override; public // attributes property property Name read ReadXmlAttrName write WriteXmlAttrName; function ReadXmlAttrName(); - function WriteXmlAttrName(_value); + function WriteXmlAttrName(_value: any); // normal property - property ClrScheme read ReadXmlChildClrScheme; - property FontScheme read ReadXmlChildFontScheme; - property FmtScheme read ReadXmlChildFmtScheme; + property ClrScheme read ReadXmlChildClrScheme write WriteXmlChildClrScheme; + property FontScheme read ReadXmlChildFontScheme write WriteXmlChildFontScheme; + property FmtScheme read ReadXmlChildFmtScheme write WriteXmlChildFmtScheme; function ReadXmlChildClrScheme(): ClrScheme; + function WriteXmlChildClrScheme(_p1: any; _p2: any); function ReadXmlChildFontScheme(): FontScheme; + function WriteXmlChildFontScheme(_p1: any; _p2: any); function ReadXmlChildFmtScheme(): FmtScheme; + function WriteXmlChildFmtScheme(_p1: any; _p2: any); public // Attributes @@ -75,44 +84,57 @@ end; type ClrScheme = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ClrScheme);override; + function Clone(): ClrScheme;override; function ConvertToPoint();override; public // attributes property property Name read ReadXmlAttrName write WriteXmlAttrName; function ReadXmlAttrName(); - function WriteXmlAttrName(_value); + function WriteXmlAttrName(_value: any); // normal property - property Dk1 read ReadXmlChildDk1; - property Lt1 read ReadXmlChildLt1; - property Dk2 read ReadXmlChildDk2; - property Lt2 read ReadXmlChildLt2; - property Accent1 read ReadXmlChildAccent1; - property Accent2 read ReadXmlChildAccent2; - property Accent3 read ReadXmlChildAccent3; - property Accent4 read ReadXmlChildAccent4; - property Accent5 read ReadXmlChildAccent5; - property Accent6 read ReadXmlChildAccent6; - property Hlink read ReadXmlChildHlink; - property FolHlink read ReadXmlChildFolHlink; + property Dk1 read ReadXmlChildDk1 write WriteXmlChildDk1; + property Lt1 read ReadXmlChildLt1 write WriteXmlChildLt1; + property Dk2 read ReadXmlChildDk2 write WriteXmlChildDk2; + property Lt2 read ReadXmlChildLt2 write WriteXmlChildLt2; + property Accent1 read ReadXmlChildAccent1 write WriteXmlChildAccent1; + property Accent2 read ReadXmlChildAccent2 write WriteXmlChildAccent2; + property Accent3 read ReadXmlChildAccent3 write WriteXmlChildAccent3; + property Accent4 read ReadXmlChildAccent4 write WriteXmlChildAccent4; + property Accent5 read ReadXmlChildAccent5 write WriteXmlChildAccent5; + property Accent6 read ReadXmlChildAccent6 write WriteXmlChildAccent6; + property Hlink read ReadXmlChildHlink write WriteXmlChildHlink; + property FolHlink read ReadXmlChildFolHlink write WriteXmlChildFolHlink; function ReadXmlChildDk1(): Clr1; + function WriteXmlChildDk1(_p1: any; _p2: any); function ReadXmlChildLt1(): Clr1; + function WriteXmlChildLt1(_p1: any; _p2: any); function ReadXmlChildDk2(): Clr2; + function WriteXmlChildDk2(_p1: any; _p2: any); function ReadXmlChildLt2(): Clr2; + function WriteXmlChildLt2(_p1: any; _p2: any); function ReadXmlChildAccent1(): Clr2; + function WriteXmlChildAccent1(_p1: any; _p2: any); function ReadXmlChildAccent2(): Clr2; + function WriteXmlChildAccent2(_p1: any; _p2: any); function ReadXmlChildAccent3(): Clr2; + function WriteXmlChildAccent3(_p1: any; _p2: any); function ReadXmlChildAccent4(): Clr2; + function WriteXmlChildAccent4(_p1: any; _p2: any); function ReadXmlChildAccent5(): Clr2; + function WriteXmlChildAccent5(_p1: any; _p2: any); function ReadXmlChildAccent6(): Clr2; + function WriteXmlChildAccent6(_p1: any; _p2: any); function ReadXmlChildHlink(): Clr2; + function WriteXmlChildHlink(_p1: any; _p2: any); function ReadXmlChildFolHlink(): Clr2; + function WriteXmlChildFolHlink(_p1: any; _p2: any); public // Attributes @@ -135,18 +157,20 @@ end; type Clr1 = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Clr1);override; + function Clone(): Clr1;override; function ConvertToPoint();override; public // normal property - property SysClr read ReadXmlChildSysClr; + property SysClr read ReadXmlChildSysClr write WriteXmlChildSysClr; function ReadXmlChildSysClr(): SysClr; + function WriteXmlChildSysClr(_p1: any; _p2: any); public // Children @@ -155,11 +179,12 @@ end; type SysClr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SysClr);override; + function Clone(): SysClr;override; function ConvertToPoint();override; public @@ -167,9 +192,9 @@ public property Val read ReadXmlAttrVal write WriteXmlAttrVal; property LastClr read ReadXmlAttrLastClr write WriteXmlAttrLastClr; function ReadXmlAttrVal(); - function WriteXmlAttrVal(_value); + function WriteXmlAttrVal(_value: any); function ReadXmlAttrLastClr(); - function WriteXmlAttrLastClr(_value); + function WriteXmlAttrLastClr(_value: any); public // Attributes @@ -180,18 +205,20 @@ end; type Clr2 = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Clr2);override; + function Clone(): Clr2;override; function ConvertToPoint();override; public // normal property - property SrgbClr read ReadXmlChildSrgbClr; + property SrgbClr read ReadXmlChildSrgbClr write WriteXmlChildSrgbClr; function ReadXmlChildSrgbClr(): SrgbClr; + function WriteXmlChildSrgbClr(_p1: any; _p2: any); public // Children @@ -200,22 +227,24 @@ end; type SrgbClr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SrgbClr);override; + function Clone(): SrgbClr;override; function ConvertToPoint();override; public // attributes property property Val read ReadXmlAttrVal write WriteXmlAttrVal; function ReadXmlAttrVal(); - function WriteXmlAttrVal(_value); + function WriteXmlAttrVal(_value: any); // normal property - property Alpha read ReadXmlChildAlpha; + property Alpha read ReadXmlChildAlpha write WriteXmlChildAlpha; function ReadXmlChildAlpha(): PureVal; + function WriteXmlChildAlpha(_p1: any; _p2: any); public // Attributes @@ -227,18 +256,19 @@ end; type PureVal = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PureVal);override; + function Clone(): PureVal;override; function ConvertToPoint();override; public // attributes property property Val read ReadXmlAttrVal write WriteXmlAttrVal; function ReadXmlAttrVal(); - function WriteXmlAttrVal(_value); + function WriteXmlAttrVal(_value: any); public // Attributes @@ -248,24 +278,27 @@ end; type FontScheme = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FontScheme);override; + function Clone(): FontScheme;override; function ConvertToPoint();override; public // attributes property property Name read ReadXmlAttrName write WriteXmlAttrName; function ReadXmlAttrName(); - function WriteXmlAttrName(_value); + function WriteXmlAttrName(_value: any); // normal property - property Majorfont read ReadXmlChildMajorfont; - property Minorfont read ReadXmlChildMinorfont; + property Majorfont read ReadXmlChildMajorfont write WriteXmlChildMajorfont; + property Minorfont read ReadXmlChildMinorfont write WriteXmlChildMinorfont; function ReadXmlChildMajorfont(): Mfont; + function WriteXmlChildMajorfont(_p1: any; _p2: any); function ReadXmlChildMinorfont(): Mfont; + function WriteXmlChildMinorfont(_p1: any; _p2: any); public // Attributes @@ -278,26 +311,31 @@ end; type MFont = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: MFont);override; + function Clone(): MFont;override; function ConvertToPoint();override; public // normal property - property Latin read ReadXmlChildLatin; - property Ea read ReadXmlChildEa; - property Cs read ReadXmlChildCs; + property Latin read ReadXmlChildLatin write WriteXmlChildLatin; + property Ea read ReadXmlChildEa write WriteXmlChildEa; + property Cs read ReadXmlChildCs write WriteXmlChildCs; function ReadXmlChildLatin(): Latin; + function WriteXmlChildLatin(_p1: any; _p2: any); function ReadXmlChildEa(): Latin; + function WriteXmlChildEa(_p1: any; _p2: any); function ReadXmlChildCs(): Latin; + function WriteXmlChildCs(_p1: any; _p2: any); // multi property - property Fonts read ReadFonts; - function ReadFonts(_index); + property Fonts read ReadFonts write WriteFonts; + function ReadFonts(_index: integer); + function WriteFonts(_index: integer; _value: nil_OR_Font); function AddFont(): Font; function AppendFont(): Font; @@ -310,11 +348,12 @@ end; type Font = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Font);override; + function Clone(): Font;override; function ConvertToPoint();override; public @@ -322,9 +361,9 @@ public property Script read ReadXmlAttrScript write WriteXmlAttrScript; property Typeface read ReadXmlAttrTypeface write WriteXmlAttrTypeface; function ReadXmlAttrScript(); - function WriteXmlAttrScript(_value); + function WriteXmlAttrScript(_value: any); function ReadXmlAttrTypeface(); - function WriteXmlAttrTypeface(_value); + function WriteXmlAttrTypeface(_value: any); public // Attributes @@ -335,28 +374,33 @@ end; type FmtScheme = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FmtScheme);override; + function Clone(): FmtScheme;override; function ConvertToPoint();override; public // attributes property property Name read ReadXmlAttrName write WriteXmlAttrName; function ReadXmlAttrName(); - function WriteXmlAttrName(_value); + function WriteXmlAttrName(_value: any); // normal property - property FillStyleLst read ReadXmlChildFillStyleLst; - property LnStyleLst read ReadXmlChildLnStyleLst; - property EffectStyleLst read ReadXmlChildEffectStyleLst; - property BgFillStyleLst read ReadXmlChildBgFillStyleLst; + property FillStyleLst read ReadXmlChildFillStyleLst write WriteXmlChildFillStyleLst; + property LnStyleLst read ReadXmlChildLnStyleLst write WriteXmlChildLnStyleLst; + property EffectStyleLst read ReadXmlChildEffectStyleLst write WriteXmlChildEffectStyleLst; + property BgFillStyleLst read ReadXmlChildBgFillStyleLst write WriteXmlChildBgFillStyleLst; function ReadXmlChildFillStyleLst(): FillStyleLst; + function WriteXmlChildFillStyleLst(_p1: any; _p2: any); function ReadXmlChildLnStyleLst(): LnStyleLst; + function WriteXmlChildLnStyleLst(_p1: any; _p2: any); function ReadXmlChildEffectStyleLst(): EffectStyleLst; + function WriteXmlChildEffectStyleLst(_p1: any; _p2: any); function ReadXmlChildBgFillStyleLst(): FillStyleLst; + function WriteXmlChildBgFillStyleLst(_p1: any; _p2: any); public // Attributes @@ -371,20 +415,23 @@ end; type FillStyleLst = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FillStyleLst);override; + function Clone(): FillStyleLst;override; function ConvertToPoint();override; public // multi property - property SolidFills read ReadSolidFills; - property GradFills read ReadGradFills; - function ReadSolidFills(_index); - function ReadGradFills(_index); + property SolidFills read ReadSolidFills write WriteSolidFills; + property GradFills read ReadGradFills write WriteGradFills; + function ReadSolidFills(_index: integer); + function WriteSolidFills(_index: integer; _value: nil_OR_SolidFill); + function ReadGradFills(_index: integer); + function WriteGradFills(_index: integer; _value: nil_OR_GradFill); function AddSolidFill(): SolidFill; function AddGradFill(): GradFill; function AppendSolidFill(): SolidFill; @@ -396,18 +443,20 @@ end; type SolidFill = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SolidFill);override; + function Clone(): SolidFill;override; function ConvertToPoint();override; public // normal property - property SchemeClr read ReadXmlChildSchemeClr; + property SchemeClr read ReadXmlChildSchemeClr write WriteXmlChildSchemeClr; function ReadXmlChildSchemeClr(): SchemeClr; + function WriteXmlChildSchemeClr(_p1: any; _p2: any); public // Children @@ -416,26 +465,30 @@ end; type SchemeClr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SchemeClr);override; + function Clone(): SchemeClr;override; function ConvertToPoint();override; public // attributes property property Val read ReadXmlAttrVal write WriteXmlAttrVal; function ReadXmlAttrVal(); - function WriteXmlAttrVal(_value); + function WriteXmlAttrVal(_value: any); // normal property - property LumMod read ReadXmlChildLumMod; - property SatMod read ReadXmlChildSatMod; - property Tint read ReadXmlChildTint; + property LumMod read ReadXmlChildLumMod write WriteXmlChildLumMod; + property SatMod read ReadXmlChildSatMod write WriteXmlChildSatMod; + property Tint read ReadXmlChildTint write WriteXmlChildTint; function ReadXmlChildLumMod(): PureVal; + function WriteXmlChildLumMod(_p1: any; _p2: any); function ReadXmlChildSatMod(): PureVal; + function WriteXmlChildSatMod(_p1: any; _p2: any); function ReadXmlChildTint(): PureVal; + function WriteXmlChildTint(_p1: any; _p2: any); public // Attributes @@ -449,24 +502,27 @@ end; type GradFill = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: GradFill);override; + function Clone(): GradFill;override; function ConvertToPoint();override; public // attributes property property RotWithShape read ReadXmlAttrRotWithShape write WriteXmlAttrRotWithShape; function ReadXmlAttrRotWithShape(); - function WriteXmlAttrRotWithShape(_value); + function WriteXmlAttrRotWithShape(_value: any); // normal property - property GsLst read ReadXmlChildGsLst; - property Lin read ReadXmlChildLin; + property GsLst read ReadXmlChildGsLst write WriteXmlChildGsLst; + property Lin read ReadXmlChildLin write WriteXmlChildLin; function ReadXmlChildGsLst(): GsLst; + function WriteXmlChildGsLst(_p1: any; _p2: any); function ReadXmlChildLin(): Lin; + function WriteXmlChildLin(_p1: any; _p2: any); public // Attributes @@ -479,18 +535,20 @@ end; type GsLst = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: GsLst);override; + function Clone(): GsLst;override; function ConvertToPoint();override; public // multi property - property Gses read ReadGses; - function ReadGses(_index); + property Gses read ReadGses write WriteGses; + function ReadGses(_index: integer); + function WriteGses(_index: integer; _value: nil_OR_Gs); function AddGs(): Gs; function AppendGs(): Gs; @@ -500,22 +558,24 @@ end; type Gs = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Gs);override; + function Clone(): Gs;override; function ConvertToPoint();override; public // attributes property property Pos read ReadXmlAttrPos write WriteXmlAttrPos; function ReadXmlAttrPos(); - function WriteXmlAttrPos(_value); + function WriteXmlAttrPos(_value: any); // normal property - property SchemeClr read ReadXmlChildSchemeClr; + property SchemeClr read ReadXmlChildSchemeClr write WriteXmlChildSchemeClr; function ReadXmlChildSchemeClr(): SchemeClr; + function WriteXmlChildSchemeClr(_p1: any; _p2: any); public // Attributes @@ -527,11 +587,12 @@ end; type Lin = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Lin);override; + function Clone(): Lin;override; function ConvertToPoint();override; public @@ -539,9 +600,9 @@ public property Ang read ReadXmlAttrAng write WriteXmlAttrAng; property Scaled read ReadXmlAttrScaled write WriteXmlAttrScaled; function ReadXmlAttrAng(); - function WriteXmlAttrAng(_value); + function WriteXmlAttrAng(_value: any); function ReadXmlAttrScaled(); - function WriteXmlAttrScaled(_value); + function WriteXmlAttrScaled(_value: any); public // Attributes @@ -552,18 +613,20 @@ end; type LnStyleLst = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: LnStyleLst);override; + function Clone(): LnStyleLst;override; function ConvertToPoint();override; public // multi property - property Lns read ReadLns; - function ReadLns(_index); + property Lns read ReadLns write WriteLns; + function ReadLns(_index: integer); + function WriteLns(_index: integer; _value: nil_OR_Ln); function AddLn(): Ln; function AppendLn(): Ln; @@ -573,18 +636,20 @@ end; type EffectStyleLst = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: EffectStyleLst);override; + function Clone(): EffectStyleLst;override; function ConvertToPoint();override; public // multi property - property EffectStyles read ReadEffectStyles; - function ReadEffectStyles(_index); + property EffectStyles read ReadEffectStyles write WriteEffectStyles; + function ReadEffectStyles(_index: integer); + function WriteEffectStyles(_index: integer; _value: nil_OR_EffectStyle); function AddEffectStyle(): EffectStyle; function AppendEffectStyle(): EffectStyle; @@ -594,18 +659,20 @@ end; type EffectStyle = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: EffectStyle);override; + function Clone(): EffectStyle;override; function ConvertToPoint();override; public // normal property - property EffectLst read ReadXmlChildEffectLst; + property EffectLst read ReadXmlChildEffectLst write WriteXmlChildEffectLst; function ReadXmlChildEffectLst(): EffectLst; + function WriteXmlChildEffectLst(_p1: any; _p2: any); public // Children @@ -614,11 +681,12 @@ end; type OuterShdw = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: OuterShdw);override; + function Clone(): OuterShdw;override; function ConvertToPoint();override; public @@ -629,19 +697,20 @@ public property Algn read ReadXmlAttrAlgn write WriteXmlAttrAlgn; property RotWithShape read ReadXmlAttrRotWithShape write WriteXmlAttrRotWithShape; function ReadXmlAttrBlurRad(); - function WriteXmlAttrBlurRad(_value); + function WriteXmlAttrBlurRad(_value: any); function ReadXmlAttrDist(); - function WriteXmlAttrDist(_value); + function WriteXmlAttrDist(_value: any); function ReadXmlAttrDir(); - function WriteXmlAttrDir(_value); + function WriteXmlAttrDir(_value: any); function ReadXmlAttrAlgn(); - function WriteXmlAttrAlgn(_value); + function WriteXmlAttrAlgn(_value: any); function ReadXmlAttrRotWithShape(); - function WriteXmlAttrRotWithShape(_value); + function WriteXmlAttrRotWithShape(_value: any); // normal property - property SrgbClr read ReadXmlChildSrgbClr; + property SrgbClr read ReadXmlChildSrgbClr write WriteXmlChildSrgbClr; function ReadXmlChildSrgbClr(): SrgbClr; + function WriteXmlChildSrgbClr(_p1: any; _p2: any); public // Attributes @@ -657,18 +726,20 @@ end; type ExtLst = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ExtLst);override; + function Clone(): ExtLst;override; function ConvertToPoint();override; public // multi property - property Exts read ReadExts; - function ReadExts(_index); + property Exts read ReadExts write WriteExts; + function ReadExts(_index: integer); + function WriteExts(_index: integer; _value: nil_OR_Ext); function AddExt(): Ext; function AppendExt(): Ext; @@ -678,28 +749,33 @@ end; type Ext = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Ext);override; + function Clone(): Ext;override; function ConvertToPoint();override; public // attributes property property Uri read ReadXmlAttrUri write WriteXmlAttrUri; function ReadXmlAttrUri(); - function WriteXmlAttrUri(_value); + function WriteXmlAttrUri(_value: any); // normal property - property Thm15ThemeFamily read ReadXmlChildThm15ThemeFamily; - property UniqueId read ReadXmlChildUniqueId; - property SlicerStyles read ReadXmlChildSlicerStyles; - property TimelineStyles read ReadXmlChildTimelineStyles; + property Thm15ThemeFamily read ReadXmlChildThm15ThemeFamily write WriteXmlChildThm15ThemeFamily; + property UniqueId read ReadXmlChildUniqueId write WriteXmlChildUniqueId; + property SlicerStyles read ReadXmlChildSlicerStyles write WriteXmlChildSlicerStyles; + property TimelineStyles read ReadXmlChildTimelineStyles write WriteXmlChildTimelineStyles; function ReadXmlChildThm15ThemeFamily(): ThemeFamily; + function WriteXmlChildThm15ThemeFamily(_p1: any; _p2: any); function ReadXmlChildUniqueId(): PureVal; + function WriteXmlChildUniqueId(_p1: any; _p2: any); function ReadXmlChildSlicerStyles(): SlicerStyles; + function WriteXmlChildSlicerStyles(_p1: any; _p2: any); function ReadXmlChildTimelineStyles(): TimelineStyles; + function WriteXmlChildTimelineStyles(_p1: any; _p2: any); public // Attributes @@ -714,18 +790,19 @@ end; type SlicerStyles = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SlicerStyles);override; + function Clone(): SlicerStyles;override; function ConvertToPoint();override; public // attributes property property DefaultSlicerStyle read ReadXmlAttrDefaultSlicerStyle write WriteXmlAttrDefaultSlicerStyle; function ReadXmlAttrDefaultSlicerStyle(); - function WriteXmlAttrDefaultSlicerStyle(_value); + function WriteXmlAttrDefaultSlicerStyle(_value: any); public // Attributes @@ -735,18 +812,19 @@ end; type TimelineStyles = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TimelineStyles);override; + function Clone(): TimelineStyles;override; function ConvertToPoint();override; public // attributes property property DefaultTimelineStyle read ReadXmlAttrDefaultTimelineStyle write WriteXmlAttrDefaultTimelineStyle; function ReadXmlAttrDefaultTimelineStyle(); - function WriteXmlAttrDefaultTimelineStyle(_value); + function WriteXmlAttrDefaultTimelineStyle(_value: any); public // Attributes @@ -756,11 +834,12 @@ end; type ThemeFamily = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ThemeFamily);override; + function Clone(): ThemeFamily;override; function ConvertToPoint();override; public @@ -769,11 +848,11 @@ public property Id read ReadXmlAttrId write WriteXmlAttrId; property Vid read ReadXmlAttrVid write WriteXmlAttrVid; function ReadXmlAttrName(); - function WriteXmlAttrName(_value); + function WriteXmlAttrName(_value: any); function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); function ReadXmlAttrVid(); - function WriteXmlAttrVid(_value); + function WriteXmlAttrVid(_value: any); public // Attributes @@ -785,30 +864,37 @@ end; type ChartSpace = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ChartSpace);override; + function Clone(): ChartSpace;override; function ConvertToPoint();override; public // simple_type property - property Lang read ReadXmlChildLang; + property Lang read ReadXmlChildLang write WriteXmlChildLang; function ReadXmlChildLang(): OpenXmlSimpleType; + function WriteXmlChildLang(_value: nil_or_OpenXmlSimpleType); // normal property - property Date1904 read ReadXmlChildDate1904; - property AlternateContent read ReadXmlChildAlternateContent; - property Chart read ReadXmlChildChart; - property SpPr read ReadXmlChildSpPr; - property ExternalData read ReadXmlChildExternalData; + property Date1904 read ReadXmlChildDate1904 write WriteXmlChildDate1904; + property AlternateContent read ReadXmlChildAlternateContent write WriteXmlChildAlternateContent; + property Chart read ReadXmlChildChart write WriteXmlChildChart; + property SpPr read ReadXmlChildSpPr write WriteXmlChildSpPr; + property ExternalData read ReadXmlChildExternalData write WriteXmlChildExternalData; function ReadXmlChildDate1904(): PureVal; + function WriteXmlChildDate1904(_p1: any; _p2: any); function ReadXmlChildAlternateContent(): AlternateContent; + function WriteXmlChildAlternateContent(_p1: any; _p2: any); function ReadXmlChildChart(): Chart; + function WriteXmlChildChart(_p1: any; _p2: any); function ReadXmlChildSpPr(): SpPr; + function WriteXmlChildSpPr(_p1: any; _p2: any); function ReadXmlChildExternalData(): ExternalData; + function WriteXmlChildExternalData(_p1: any; _p2: any); public // Children @@ -822,36 +908,45 @@ end; type Chart = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Chart);override; + function Clone(): Chart;override; function ConvertToPoint();override; public // attributes property property Id read ReadXmlAttrId write WriteXmlAttrId; function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); // normal property - property Title read ReadXmlChildTitle; - property AutoTitleDeleted read ReadXmlChildAutoTitleDeleted; - property View3D read ReadXmlChildView3D; - property PlotArea read ReadXmlChildPlotArea; - property Legend read ReadXmlChildLegend; - property PlotVisOnly read ReadXmlChildPlotVisOnly; - property DispBlanksAs read ReadXmlChildDispBlanksAs; - property ShowDLblsOverMax read ReadXmlChildShowDLblsOverMax; + property Title read ReadXmlChildTitle write WriteXmlChildTitle; + property AutoTitleDeleted read ReadXmlChildAutoTitleDeleted write WriteXmlChildAutoTitleDeleted; + property View3D read ReadXmlChildView3D write WriteXmlChildView3D; + property PlotArea read ReadXmlChildPlotArea write WriteXmlChildPlotArea; + property Legend read ReadXmlChildLegend write WriteXmlChildLegend; + property PlotVisOnly read ReadXmlChildPlotVisOnly write WriteXmlChildPlotVisOnly; + property DispBlanksAs read ReadXmlChildDispBlanksAs write WriteXmlChildDispBlanksAs; + property ShowDLblsOverMax read ReadXmlChildShowDLblsOverMax write WriteXmlChildShowDLblsOverMax; function ReadXmlChildTitle(): Title; + function WriteXmlChildTitle(_p1: any; _p2: any); function ReadXmlChildAutoTitleDeleted(): PureVal; + function WriteXmlChildAutoTitleDeleted(_p1: any; _p2: any); function ReadXmlChildView3D(): View3D; + function WriteXmlChildView3D(_p1: any; _p2: any); function ReadXmlChildPlotArea(): PlotArea; + function WriteXmlChildPlotArea(_p1: any; _p2: any); function ReadXmlChildLegend(): Legend; + function WriteXmlChildLegend(_p1: any; _p2: any); function ReadXmlChildPlotVisOnly(): PureVal; + function WriteXmlChildPlotVisOnly(_p1: any; _p2: any); function ReadXmlChildDispBlanksAs(): PureVal; + function WriteXmlChildDispBlanksAs(_p1: any; _p2: any); function ReadXmlChildShowDLblsOverMax(): PureVal; + function WriteXmlChildShowDLblsOverMax(_p1: any; _p2: any); public // Attributes @@ -870,26 +965,31 @@ end; type Legend = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Legend);override; + function Clone(): Legend;override; function ConvertToPoint();override; public // simple_type property - property Layout read ReadXmlChildLayout; + property Layout read ReadXmlChildLayout write WriteXmlChildLayout; function ReadXmlChildLayout(): OpenXmlSimpleType; + function WriteXmlChildLayout(_value: nil_or_OpenXmlSimpleType); // normal property - property LegendPos read ReadXmlChildLegendPos; - property Overlay read ReadXmlChildOverlay; - property TxPr read ReadXmlChildTxPr; + property LegendPos read ReadXmlChildLegendPos write WriteXmlChildLegendPos; + property Overlay read ReadXmlChildOverlay write WriteXmlChildOverlay; + property TxPr read ReadXmlChildTxPr write WriteXmlChildTxPr; function ReadXmlChildLegendPos(): PureVal; + function WriteXmlChildLegendPos(_p1: any; _p2: any); function ReadXmlChildOverlay(): PureVal; + function WriteXmlChildOverlay(_p1: any; _p2: any); function ReadXmlChildTxPr(): TxPr; + function WriteXmlChildTxPr(_p1: any; _p2: any); public // Children @@ -901,22 +1001,26 @@ end; type View3D = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: View3D);override; + function Clone(): View3D;override; function ConvertToPoint();override; public // normal property - property RotX read ReadXmlChildRotX; - property RotY read ReadXmlChildRotY; - property RAngAx read ReadXmlChildRAngAx; + property RotX read ReadXmlChildRotX write WriteXmlChildRotX; + property RotY read ReadXmlChildRotY write WriteXmlChildRotY; + property RAngAx read ReadXmlChildRAngAx write WriteXmlChildRAngAx; function ReadXmlChildRotX(): PureVal; + function WriteXmlChildRotX(_p1: any; _p2: any); function ReadXmlChildRotY(): PureVal; + function WriteXmlChildRotY(_p1: any; _p2: any); function ReadXmlChildRAngAx(): PureVal; + function WriteXmlChildRAngAx(_p1: any; _p2: any); public // Children @@ -927,30 +1031,37 @@ end; type PlotArea = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PlotArea);override; + function Clone(): PlotArea;override; function ConvertToPoint();override; public // simple_type property - property Layout read ReadXmlChildLayout; + property Layout read ReadXmlChildLayout write WriteXmlChildLayout; function ReadXmlChildLayout(): OpenXmlSimpleType; + function WriteXmlChildLayout(_value: nil_or_OpenXmlSimpleType); // normal property - property BarChart read ReadXmlChildBarChart; - property CatAx read ReadXmlChildCatAx; - property ValAx read ReadXmlChildValAx; - property DTable read ReadXmlChildDTable; - property SpPr read ReadXmlChildSpPr; + property BarChart read ReadXmlChildBarChart write WriteXmlChildBarChart; + property CatAx read ReadXmlChildCatAx write WriteXmlChildCatAx; + property ValAx read ReadXmlChildValAx write WriteXmlChildValAx; + property DTable read ReadXmlChildDTable write WriteXmlChildDTable; + property SpPr read ReadXmlChildSpPr write WriteXmlChildSpPr; function ReadXmlChildBarChart(): BarChart; + function WriteXmlChildBarChart(_p1: any; _p2: any); function ReadXmlChildCatAx(): Ax; + function WriteXmlChildCatAx(_p1: any; _p2: any); function ReadXmlChildValAx(): Ax; + function WriteXmlChildValAx(_p1: any; _p2: any); function ReadXmlChildDTable(): DTable; + function WriteXmlChildDTable(_p1: any; _p2: any); function ReadXmlChildSpPr(): SpPr; + function WriteXmlChildSpPr(_p1: any; _p2: any); public // Children @@ -964,30 +1075,37 @@ end; type BarChart = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: BarChart);override; + function Clone(): BarChart;override; function ConvertToPoint();override; public // normal property - property BarDir read ReadXmlChildBarDir; - property Grouping read ReadXmlChildGrouping; - property VaryColors read ReadXmlChildVaryColors; - property GapWidth read ReadXmlChildGapWidth; + property BarDir read ReadXmlChildBarDir write WriteXmlChildBarDir; + property Grouping read ReadXmlChildGrouping write WriteXmlChildGrouping; + property VaryColors read ReadXmlChildVaryColors write WriteXmlChildVaryColors; + property GapWidth read ReadXmlChildGapWidth write WriteXmlChildGapWidth; function ReadXmlChildBarDir(): PureVal; + function WriteXmlChildBarDir(_p1: any; _p2: any); function ReadXmlChildGrouping(): PureVal; + function WriteXmlChildGrouping(_p1: any; _p2: any); function ReadXmlChildVaryColors(): PureVal; + function WriteXmlChildVaryColors(_p1: any; _p2: any); function ReadXmlChildGapWidth(): PureVal; + function WriteXmlChildGapWidth(_p1: any; _p2: any); // multi property - property Sers read ReadSers; - property AxIds read ReadAxIds; - function ReadSers(_index); - function ReadAxIds(_index); + property Sers read ReadSers write WriteSers; + property AxIds read ReadAxIds write WriteAxIds; + function ReadSers(_index: integer); + function WriteSers(_index: integer; _value: nil_OR_Ser); + function ReadAxIds(_index: integer); + function WriteAxIds(_index: integer; _value: nil_OR_PureVal); function AddSer(): Ser; function AddAxId(): PureVal; function AppendSer(): Ser; @@ -1003,32 +1121,41 @@ end; type Ser = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Ser);override; + function Clone(): Ser;override; function ConvertToPoint();override; public // normal property - property Idx read ReadXmlChildIdx; - property _Order read ReadXmlChild_Order; - property Tx read ReadXmlChildTx; - property InvertIfNegative read ReadXmlChildInvertIfNegative; - property DLbls read ReadXmlChildDLbls; - property Cat read ReadXmlChildCat; - property Val read ReadXmlChildVal; - property ExtLst read ReadXmlChildExtLst; + property Idx read ReadXmlChildIdx write WriteXmlChildIdx; + property _Order read ReadXmlChild_Order write WriteXmlChild_Order; + property Tx read ReadXmlChildTx write WriteXmlChildTx; + property InvertIfNegative read ReadXmlChildInvertIfNegative write WriteXmlChildInvertIfNegative; + property DLbls read ReadXmlChildDLbls write WriteXmlChildDLbls; + property Cat read ReadXmlChildCat write WriteXmlChildCat; + property Val read ReadXmlChildVal write WriteXmlChildVal; + property ExtLst read ReadXmlChildExtLst write WriteXmlChildExtLst; function ReadXmlChildIdx(): PureVal; + function WriteXmlChildIdx(_p1: any; _p2: any); function ReadXmlChild_Order(): PureVal; + function WriteXmlChild_Order(_p1: any; _p2: any); function ReadXmlChildTx(): Tx; + function WriteXmlChildTx(_p1: any; _p2: any); function ReadXmlChildInvertIfNegative(): PureVal; + function WriteXmlChildInvertIfNegative(_p1: any; _p2: any); function ReadXmlChildDLbls(): DLbls; + function WriteXmlChildDLbls(_p1: any; _p2: any); function ReadXmlChildCat(): Cat; + function WriteXmlChildCat(_p1: any; _p2: any); function ReadXmlChildVal(): Val; + function WriteXmlChildVal(_p1: any; _p2: any); function ReadXmlChildExtLst(): ExtLst; + function WriteXmlChildExtLst(_p1: any; _p2: any); public // Children @@ -1044,34 +1171,44 @@ end; type DLbls = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: DLbls);override; + function Clone(): DLbls;override; function ConvertToPoint();override; public // normal property - property SpPr read ReadXmlChildSpPr; - property ShowLegendKey read ReadXmlChildShowLegendKey; - property ShowVal read ReadXmlChildShowVal; - property ShowCatName read ReadXmlChildShowCatName; - property ShowSerName read ReadXmlChildShowSerName; - property ShowPercent read ReadXmlChildShowPercent; - property ShowBubbleSize read ReadXmlChildShowBubbleSize; - property ShowLeaderLines read ReadXmlChildShowLeaderLines; - property ExtLst read ReadXmlChildExtLst; + property SpPr read ReadXmlChildSpPr write WriteXmlChildSpPr; + property ShowLegendKey read ReadXmlChildShowLegendKey write WriteXmlChildShowLegendKey; + property ShowVal read ReadXmlChildShowVal write WriteXmlChildShowVal; + property ShowCatName read ReadXmlChildShowCatName write WriteXmlChildShowCatName; + property ShowSerName read ReadXmlChildShowSerName write WriteXmlChildShowSerName; + property ShowPercent read ReadXmlChildShowPercent write WriteXmlChildShowPercent; + property ShowBubbleSize read ReadXmlChildShowBubbleSize write WriteXmlChildShowBubbleSize; + property ShowLeaderLines read ReadXmlChildShowLeaderLines write WriteXmlChildShowLeaderLines; + property ExtLst read ReadXmlChildExtLst write WriteXmlChildExtLst; function ReadXmlChildSpPr(): SpPr; + function WriteXmlChildSpPr(_p1: any; _p2: any); function ReadXmlChildShowLegendKey(): PureVal; + function WriteXmlChildShowLegendKey(_p1: any; _p2: any); function ReadXmlChildShowVal(): PureVal; + function WriteXmlChildShowVal(_p1: any; _p2: any); function ReadXmlChildShowCatName(): PureVal; + function WriteXmlChildShowCatName(_p1: any; _p2: any); function ReadXmlChildShowSerName(): PureVal; + function WriteXmlChildShowSerName(_p1: any; _p2: any); function ReadXmlChildShowPercent(): PureVal; + function WriteXmlChildShowPercent(_p1: any; _p2: any); function ReadXmlChildShowBubbleSize(): PureVal; + function WriteXmlChildShowBubbleSize(_p1: any; _p2: any); function ReadXmlChildShowLeaderLines(): PureVal; + function WriteXmlChildShowLeaderLines(_p1: any; _p2: any); function ReadXmlChildExtLst(): ExtLst; + function WriteXmlChildExtLst(_p1: any; _p2: any); public // Children @@ -1088,18 +1225,20 @@ end; type Cat = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Cat);override; + function Clone(): Cat;override; function ConvertToPoint();override; public // normal property - property StrRef read ReadXmlChildStrRef; + property StrRef read ReadXmlChildStrRef write WriteXmlChildStrRef; function ReadXmlChildStrRef(): StrRef; + function WriteXmlChildStrRef(_p1: any; _p2: any); public // Children @@ -1108,22 +1247,25 @@ end; type StrRef = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: StrRef);override; + function Clone(): StrRef;override; function ConvertToPoint();override; public // pcdata property - property F read ReadXmlChildF; + property F read ReadXmlChildF write WriteXmlChildF; function ReadXmlChildF(); + function WriteXmlChildF(_value: nil_or_OpenXmlTextElement); // normal property - property StrCache read ReadXmlChildStrCache; + property StrCache read ReadXmlChildStrCache write WriteXmlChildStrCache; function ReadXmlChildStrCache(): StrCache; + function WriteXmlChildStrCache(_p1: any; _p2: any); public // Children @@ -1133,18 +1275,20 @@ end; type Val = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Val);override; + function Clone(): Val;override; function ConvertToPoint();override; public // normal property - property NumRef read ReadXmlChildNumRef; + property NumRef read ReadXmlChildNumRef write WriteXmlChildNumRef; function ReadXmlChildNumRef(): NumRef; + function WriteXmlChildNumRef(_p1: any; _p2: any); public // Children @@ -1153,22 +1297,25 @@ end; type NumRef = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: NumRef);override; + function Clone(): NumRef;override; function ConvertToPoint();override; public // pcdata property - property F read ReadXmlChildF; + property F read ReadXmlChildF write WriteXmlChildF; function ReadXmlChildF(); + function WriteXmlChildF(_value: nil_or_OpenXmlTextElement); // normal property - property NumCache read ReadXmlChildNumCache; + property NumCache read ReadXmlChildNumCache write WriteXmlChildNumCache; function ReadXmlChildNumCache(): NumCache; + function WriteXmlChildNumCache(_p1: any; _p2: any); public // Children @@ -1178,22 +1325,25 @@ end; type StrCache = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: StrCache);override; + function Clone(): StrCache;override; function ConvertToPoint();override; public // normal property - property PtCount read ReadXmlChildPtCount; + property PtCount read ReadXmlChildPtCount write WriteXmlChildPtCount; function ReadXmlChildPtCount(): PureVal; + function WriteXmlChildPtCount(_p1: any; _p2: any); // multi property - property Pts read ReadPts; - function ReadPts(_index); + property Pts read ReadPts write WritePts; + function ReadPts(_index: integer); + function WritePts(_index: integer; _value: nil_OR_Pt); function AddPt(): Pt; function AppendPt(): Pt; @@ -1204,26 +1354,30 @@ end; type NumCache = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: NumCache);override; + function Clone(): NumCache;override; function ConvertToPoint();override; public // pcdata property - property FormatCode read ReadXmlChildFormatCode; + property FormatCode read ReadXmlChildFormatCode write WriteXmlChildFormatCode; function ReadXmlChildFormatCode(); + function WriteXmlChildFormatCode(_value: nil_or_OpenXmlTextElement); // normal property - property PtCount read ReadXmlChildPtCount; + property PtCount read ReadXmlChildPtCount write WriteXmlChildPtCount; function ReadXmlChildPtCount(): PureVal; + function WriteXmlChildPtCount(_p1: any; _p2: any); // multi property - property Pts read ReadPts; - function ReadPts(_index); + property Pts read ReadPts write WritePts; + function ReadPts(_index: integer); + function WritePts(_index: integer; _value: nil_OR_Pt); function AddPt(): Pt; function AppendPt(): Pt; @@ -1235,22 +1389,24 @@ end; type Pt = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Pt);override; + function Clone(): Pt;override; function ConvertToPoint();override; public // attributes property property Idx read ReadXmlAttrIdx write WriteXmlAttrIdx; function ReadXmlAttrIdx(); - function WriteXmlAttrIdx(_value); + function WriteXmlAttrIdx(_value: any); // pcdata property - property V read ReadXmlChildV; + property V read ReadXmlChildV write WriteXmlChildV; function ReadXmlChildV(); + function WriteXmlChildV(_value: nil_or_OpenXmlTextElement); public // Attributes @@ -1262,50 +1418,68 @@ end; type Ax = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Ax);override; + function Clone(): Ax;override; function ConvertToPoint();override; public // normal property - property AxId read ReadXmlChildAxId; - property Scaling read ReadXmlChildScaling; - property _Delete read ReadXmlChild_Delete; - property AxPos read ReadXmlChildAxPos; - property NumFmt read ReadXmlChildNumFmt; - property MajorTickMark read ReadXmlChildMajorTickMark; - property MinorTickMark read ReadXmlChildMinorTickMark; - property TickLblPos read ReadXmlChildTickLblPos; - property SpPr read ReadXmlChildSpPr; - property TxPr read ReadXmlChildTxPr; - property CrossAx read ReadXmlChildCrossAx; - property Crosses read ReadXmlChildCrosses; - property CrossBetween read ReadXmlChildCrossBetween; - property Auto read ReadXmlChildAuto; - property LblAlgn read ReadXmlChildLblAlgn; - property LblOffset read ReadXmlChildLblOffset; - property NoMultiLvlLbl read ReadXmlChildNoMultiLvlLbl; + property AxId read ReadXmlChildAxId write WriteXmlChildAxId; + property Scaling read ReadXmlChildScaling write WriteXmlChildScaling; + property _Delete read ReadXmlChild_Delete write WriteXmlChild_Delete; + property AxPos read ReadXmlChildAxPos write WriteXmlChildAxPos; + property NumFmt read ReadXmlChildNumFmt write WriteXmlChildNumFmt; + property MajorTickMark read ReadXmlChildMajorTickMark write WriteXmlChildMajorTickMark; + property MinorTickMark read ReadXmlChildMinorTickMark write WriteXmlChildMinorTickMark; + property TickLblPos read ReadXmlChildTickLblPos write WriteXmlChildTickLblPos; + property SpPr read ReadXmlChildSpPr write WriteXmlChildSpPr; + property TxPr read ReadXmlChildTxPr write WriteXmlChildTxPr; + property CrossAx read ReadXmlChildCrossAx write WriteXmlChildCrossAx; + property Crosses read ReadXmlChildCrosses write WriteXmlChildCrosses; + property CrossBetween read ReadXmlChildCrossBetween write WriteXmlChildCrossBetween; + property Auto read ReadXmlChildAuto write WriteXmlChildAuto; + property LblAlgn read ReadXmlChildLblAlgn write WriteXmlChildLblAlgn; + property LblOffset read ReadXmlChildLblOffset write WriteXmlChildLblOffset; + property NoMultiLvlLbl read ReadXmlChildNoMultiLvlLbl write WriteXmlChildNoMultiLvlLbl; function ReadXmlChildAxId(): PureVal; + function WriteXmlChildAxId(_p1: any; _p2: any); function ReadXmlChildScaling(): Scaling; + function WriteXmlChildScaling(_p1: any; _p2: any); function ReadXmlChild_Delete(): PureVal; + function WriteXmlChild_Delete(_p1: any; _p2: any); function ReadXmlChildAxPos(): PureVal; + function WriteXmlChildAxPos(_p1: any; _p2: any); function ReadXmlChildNumFmt(): NumFmt; + function WriteXmlChildNumFmt(_p1: any; _p2: any); function ReadXmlChildMajorTickMark(): PureVal; + function WriteXmlChildMajorTickMark(_p1: any; _p2: any); function ReadXmlChildMinorTickMark(): PureVal; + function WriteXmlChildMinorTickMark(_p1: any; _p2: any); function ReadXmlChildTickLblPos(): PureVal; + function WriteXmlChildTickLblPos(_p1: any; _p2: any); function ReadXmlChildSpPr(): SpPr; + function WriteXmlChildSpPr(_p1: any; _p2: any); function ReadXmlChildTxPr(): TxPr; + function WriteXmlChildTxPr(_p1: any; _p2: any); function ReadXmlChildCrossAx(): PureVal; + function WriteXmlChildCrossAx(_p1: any; _p2: any); function ReadXmlChildCrosses(): PureVal; + function WriteXmlChildCrosses(_p1: any; _p2: any); function ReadXmlChildCrossBetween(): PureVal; + function WriteXmlChildCrossBetween(_p1: any; _p2: any); function ReadXmlChildAuto(): PureVal; + function WriteXmlChildAuto(_p1: any; _p2: any); function ReadXmlChildLblAlgn(): PureVal; + function WriteXmlChildLblAlgn(_p1: any; _p2: any); function ReadXmlChildLblOffset(): PureVal; + function WriteXmlChildLblOffset(_p1: any; _p2: any); function ReadXmlChildNoMultiLvlLbl(): PureVal; + function WriteXmlChildNoMultiLvlLbl(_p1: any; _p2: any); public // Children @@ -1330,11 +1504,12 @@ end; type NumFmt = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: NumFmt);override; + function Clone(): NumFmt;override; function ConvertToPoint();override; public @@ -1342,9 +1517,9 @@ public property FormatCode read ReadXmlAttrFormatCode write WriteXmlAttrFormatCode; property SourceLinked read ReadXmlAttrSourceLinked write WriteXmlAttrSourceLinked; function ReadXmlAttrFormatCode(); - function WriteXmlAttrFormatCode(_value); + function WriteXmlAttrFormatCode(_value: any); function ReadXmlAttrSourceLinked(); - function WriteXmlAttrSourceLinked(_value); + function WriteXmlAttrSourceLinked(_value: any); public // Attributes @@ -1355,18 +1530,20 @@ end; type Scaling = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Scaling);override; + function Clone(): Scaling;override; function ConvertToPoint();override; public // simple_type property - property Orientation read ReadXmlChildOrientation; + property Orientation read ReadXmlChildOrientation write WriteXmlChildOrientation; function ReadXmlChildOrientation(): OpenXmlSimpleType; + function WriteXmlChildOrientation(_value: nil_or_OpenXmlSimpleType); public // Children @@ -1375,26 +1552,32 @@ end; type DTable = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: DTable);override; + function Clone(): DTable;override; function ConvertToPoint();override; public // normal property - property ShowHorzBorder read ReadXmlChildShowHorzBorder; - property ShowVertBorder read ReadXmlChildShowVertBorder; - property ShowOutline read ReadXmlChildShowOutline; - property ShowKeys read ReadXmlChildShowKeys; - property TxPr read ReadXmlChildTxPr; + property ShowHorzBorder read ReadXmlChildShowHorzBorder write WriteXmlChildShowHorzBorder; + property ShowVertBorder read ReadXmlChildShowVertBorder write WriteXmlChildShowVertBorder; + property ShowOutline read ReadXmlChildShowOutline write WriteXmlChildShowOutline; + property ShowKeys read ReadXmlChildShowKeys write WriteXmlChildShowKeys; + property TxPr read ReadXmlChildTxPr write WriteXmlChildTxPr; function ReadXmlChildShowHorzBorder(): PureVal; + function WriteXmlChildShowHorzBorder(_p1: any; _p2: any); function ReadXmlChildShowVertBorder(): PureVal; + function WriteXmlChildShowVertBorder(_p1: any; _p2: any); function ReadXmlChildShowOutline(): PureVal; + function WriteXmlChildShowOutline(_p1: any; _p2: any); function ReadXmlChildShowKeys(): PureVal; + function WriteXmlChildShowKeys(_p1: any; _p2: any); function ReadXmlChildTxPr(): TxPr; + function WriteXmlChildTxPr(_p1: any; _p2: any); public // Children @@ -1407,26 +1590,30 @@ end; type TxPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: TxPr);override; + function Clone(): TxPr;override; function ConvertToPoint();override; public // simple_type property - property LstStyle read ReadXmlChildLstStyle; + property LstStyle read ReadXmlChildLstStyle write WriteXmlChildLstStyle; function ReadXmlChildLstStyle(): OpenXmlSimpleType; + function WriteXmlChildLstStyle(_value: nil_or_OpenXmlSimpleType); // normal property - property BodyPr read ReadXmlChildBodyPr; + property BodyPr read ReadXmlChildBodyPr write WriteXmlChildBodyPr; function ReadXmlChildBodyPr(): BodyPr; + function WriteXmlChildBodyPr(_p1: any; _p2: any); // multi property - property Ps read ReadPs; - function ReadPs(_index); + property Ps read ReadPs write WritePs; + function ReadPs(_index: integer); + function WritePs(_index: integer; _value: nil_OR_P); function AddP(): P; function AppendP(): P; @@ -1438,24 +1625,28 @@ end; type Title = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Title);override; + function Clone(): Title;override; function ConvertToPoint();override; public // simple_type property - property Layout read ReadXmlChildLayout; + property Layout read ReadXmlChildLayout write WriteXmlChildLayout; function ReadXmlChildLayout(): OpenXmlSimpleType; + function WriteXmlChildLayout(_value: nil_or_OpenXmlSimpleType); // normal property - property Tx read ReadXmlChildTx; - property Overlay read ReadXmlChildOverlay; + property Tx read ReadXmlChildTx write WriteXmlChildTx; + property Overlay read ReadXmlChildOverlay write WriteXmlChildOverlay; function ReadXmlChildTx(): Tx; + function WriteXmlChildTx(_p1: any; _p2: any); function ReadXmlChildOverlay(): PureVal; + function WriteXmlChildOverlay(_p1: any; _p2: any); public // Children @@ -1466,20 +1657,23 @@ end; type Tx = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Tx);override; + function Clone(): Tx;override; function ConvertToPoint();override; public // normal property - property StrRef read ReadXmlChildStrRef; - property Rich read ReadXmlChildRich; + property StrRef read ReadXmlChildStrRef write WriteXmlChildStrRef; + property Rich read ReadXmlChildRich write WriteXmlChildRich; function ReadXmlChildStrRef(): StrRef; + function WriteXmlChildStrRef(_p1: any; _p2: any); function ReadXmlChildRich(): Rich; + function WriteXmlChildRich(_p1: any; _p2: any); public // Children @@ -1489,26 +1683,30 @@ end; type Rich = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Rich);override; + function Clone(): Rich;override; function ConvertToPoint();override; public // simple_type property - property LstStyle read ReadXmlChildLstStyle; + property LstStyle read ReadXmlChildLstStyle write WriteXmlChildLstStyle; function ReadXmlChildLstStyle(): OpenXmlSimpleType; + function WriteXmlChildLstStyle(_value: nil_or_OpenXmlSimpleType); // normal property - property BodyPr read ReadXmlChildBodyPr; + property BodyPr read ReadXmlChildBodyPr write WriteXmlChildBodyPr; function ReadXmlChildBodyPr(): BodyPr; + function WriteXmlChildBodyPr(_p1: any; _p2: any); // multi property - property Ps read ReadPs; - function ReadPs(_index); + property Ps read ReadPs write WritePs; + function ReadPs(_index: integer); + function WritePs(_index: integer; _value: nil_OR_P); function AddP(): P; function AppendP(): P; @@ -1520,11 +1718,12 @@ end; type BodyPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: BodyPr);override; + function Clone(): BodyPr;override; function ConvertToPoint();override; public @@ -1548,49 +1747,51 @@ public property ForceAA read ReadXmlAttrForceAA write WriteXmlAttrForceAA; property CompatLnSpc read ReadXmlAttrCompatLnSpc write WriteXmlAttrCompatLnSpc; function ReadXmlAttrRot(); - function WriteXmlAttrRot(_value); + function WriteXmlAttrRot(_value: any); function ReadXmlAttrSpcFirstLastPara(); - function WriteXmlAttrSpcFirstLastPara(_value); + function WriteXmlAttrSpcFirstLastPara(_value: any); function ReadXmlAttrVertOverflow(); - function WriteXmlAttrVertOverflow(_value); + function WriteXmlAttrVertOverflow(_value: any); function ReadXmlAttrHorzOverflow(); - function WriteXmlAttrHorzOverflow(_value); + function WriteXmlAttrHorzOverflow(_value: any); function ReadXmlAttrVert(); - function WriteXmlAttrVert(_value); + function WriteXmlAttrVert(_value: any); function ReadXmlAttrWrap(); - function WriteXmlAttrWrap(_value); + function WriteXmlAttrWrap(_value: any); function ReadXmlAttrLIns(); - function WriteXmlAttrLIns(_value); + function WriteXmlAttrLIns(_value: any); function ReadXmlAttrTIns(); - function WriteXmlAttrTIns(_value); + function WriteXmlAttrTIns(_value: any); function ReadXmlAttrRIns(); - function WriteXmlAttrRIns(_value); + function WriteXmlAttrRIns(_value: any); function ReadXmlAttrBIns(); - function WriteXmlAttrBIns(_value); + function WriteXmlAttrBIns(_value: any); function ReadXmlAttrNumCol(); - function WriteXmlAttrNumCol(_value); + function WriteXmlAttrNumCol(_value: any); function ReadXmlAttrSpcCol(); - function WriteXmlAttrSpcCol(_value); + function WriteXmlAttrSpcCol(_value: any); function ReadXmlAttrRtlCol(); - function WriteXmlAttrRtlCol(_value); + function WriteXmlAttrRtlCol(_value: any); function ReadXmlAttrFromWordArt(); - function WriteXmlAttrFromWordArt(_value); + function WriteXmlAttrFromWordArt(_value: any); function ReadXmlAttrAnchor(); - function WriteXmlAttrAnchor(_value); + function WriteXmlAttrAnchor(_value: any); function ReadXmlAttrAnchorCtr(); - function WriteXmlAttrAnchorCtr(_value); + function WriteXmlAttrAnchorCtr(_value: any); function ReadXmlAttrForceAA(); - function WriteXmlAttrForceAA(_value); + function WriteXmlAttrForceAA(_value: any); function ReadXmlAttrCompatLnSpc(); - function WriteXmlAttrCompatLnSpc(_value); + function WriteXmlAttrCompatLnSpc(_value: any); // simple_type property - property NoAutofit read ReadXmlChildNoAutofit; + property NoAutofit read ReadXmlChildNoAutofit write WriteXmlChildNoAutofit; function ReadXmlChildNoAutofit(): OpenXmlSimpleType; + function WriteXmlChildNoAutofit(_value: nil_or_OpenXmlSimpleType); // normal property - property PrstTxWrap read ReadXmlChildPrstTxWrap; + property PrstTxWrap read ReadXmlChildPrstTxWrap write WriteXmlChildPrstTxWrap; function ReadXmlChildPrstTxWrap(): PrstTxWrap; + function WriteXmlChildPrstTxWrap(_p1: any; _p2: any); public // Attributes @@ -1620,22 +1821,24 @@ end; type PrstTxWrap = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PrstTxWrap);override; + function Clone(): PrstTxWrap;override; function ConvertToPoint();override; public // attributes property property Prst read ReadXmlAttrPrst write WriteXmlAttrPrst; function ReadXmlAttrPrst(); - function WriteXmlAttrPrst(_value); + function WriteXmlAttrPrst(_value: any); // simple_type property - property AvLst read ReadXmlChildAvLst; + property AvLst read ReadXmlChildAvLst write WriteXmlChildAvLst; function ReadXmlChildAvLst(): OpenXmlSimpleType; + function WriteXmlChildAvLst(_value: nil_or_OpenXmlSimpleType); public // Attributes @@ -1647,24 +1850,28 @@ end; type P = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: P);override; + function Clone(): P;override; function ConvertToPoint();override; public // normal property - property PPr read ReadXmlChildPPr; - property EndParaRPr read ReadXmlChildEndParaRPr; + property PPr read ReadXmlChildPPr write WriteXmlChildPPr; + property EndParaRPr read ReadXmlChildEndParaRPr write WriteXmlChildEndParaRPr; function ReadXmlChildPPr(): PPr; + function WriteXmlChildPPr(_p1: any; _p2: any); function ReadXmlChildEndParaRPr(): RPr; + function WriteXmlChildEndParaRPr(_p1: any; _p2: any); // multi property - property Rs read ReadRs; - function ReadRs(_index); + property Rs read ReadRs write WriteRs; + function ReadRs(_index: integer); + function WriteRs(_index: integer; _value: nil_OR_R); function AddR(): R; function AppendR(): R; @@ -1676,11 +1883,12 @@ end; type RPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: RPr);override; + function Clone(): RPr;override; function ConvertToPoint();override; public @@ -1696,35 +1904,39 @@ public property Sz read ReadXmlAttrSz write WriteXmlAttrSz; property U read ReadXmlAttrU write WriteXmlAttrU; function ReadXmlAttrLang(); - function WriteXmlAttrLang(_value); + function WriteXmlAttrLang(_value: any); function ReadXmlAttrAltLang(); - function WriteXmlAttrAltLang(_value); + function WriteXmlAttrAltLang(_value: any); function ReadXmlAttrB(); - function WriteXmlAttrB(_value); + function WriteXmlAttrB(_value: any); function ReadXmlAttrBaseline(); - function WriteXmlAttrBaseline(_value); + function WriteXmlAttrBaseline(_value: any); function ReadXmlAttrI(); - function WriteXmlAttrI(_value); + function WriteXmlAttrI(_value: any); function ReadXmlAttrKern(); - function WriteXmlAttrKern(_value); + function WriteXmlAttrKern(_value: any); function ReadXmlAttrSpc(); - function WriteXmlAttrSpc(_value); + function WriteXmlAttrSpc(_value: any); function ReadXmlAttrStrike(); - function WriteXmlAttrStrike(_value); + function WriteXmlAttrStrike(_value: any); function ReadXmlAttrSz(); - function WriteXmlAttrSz(_value); + function WriteXmlAttrSz(_value: any); function ReadXmlAttrU(); - function WriteXmlAttrU(_value); + function WriteXmlAttrU(_value: any); // normal property - property SolidFill read ReadXmlChildSolidFill; - property Latin read ReadXmlChildLatin; - property Ea read ReadXmlChildEa; - property Cs read ReadXmlChildCs; + property SolidFill read ReadXmlChildSolidFill write WriteXmlChildSolidFill; + property Latin read ReadXmlChildLatin write WriteXmlChildLatin; + property Ea read ReadXmlChildEa write WriteXmlChildEa; + property Cs read ReadXmlChildCs write WriteXmlChildCs; function ReadXmlChildSolidFill(): SolidFill; + function WriteXmlChildSolidFill(_p1: any; _p2: any); function ReadXmlChildLatin(): Latin; + function WriteXmlChildLatin(_p1: any; _p2: any); function ReadXmlChildEa(): Latin; + function WriteXmlChildEa(_p1: any; _p2: any); function ReadXmlChildCs(): Latin; + function WriteXmlChildCs(_p1: any; _p2: any); public // Attributes @@ -1748,18 +1960,20 @@ end; type PPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PPr);override; + function Clone(): PPr;override; function ConvertToPoint();override; public // normal property - property DefRPr read ReadXmlChildDefRPr; + property DefRPr read ReadXmlChildDefRPr write WriteXmlChildDefRPr; function ReadXmlChildDefRPr(): RPr; + function WriteXmlChildDefRPr(_p1: any; _p2: any); public // Children @@ -1768,18 +1982,19 @@ end; type Latin = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Latin);override; + function Clone(): Latin;override; function ConvertToPoint();override; public // attributes property property Typeface read ReadXmlAttrTypeface write WriteXmlAttrTypeface; function ReadXmlAttrTypeface(); - function WriteXmlAttrTypeface(_value); + function WriteXmlAttrTypeface(_value: any); public // Attributes @@ -1789,20 +2004,23 @@ end; type R = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: R);override; + function Clone(): R;override; function ConvertToPoint();override; public // normal property - property RPr read ReadXmlChildRPr; - property T read ReadXmlChildT; + property RPr read ReadXmlChildRPr write WriteXmlChildRPr; + property T read ReadXmlChildT write WriteXmlChildT; function ReadXmlChildRPr(): RPr; + function WriteXmlChildRPr(_p1: any; _p2: any); function ReadXmlChildT(): T; + function WriteXmlChildT(_p1: any; _p2: any); public // Children @@ -1812,22 +2030,24 @@ end; type ExternalData = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: ExternalData);override; + function Clone(): ExternalData;override; function ConvertToPoint();override; public // attributes property property Id read ReadXmlAttrId write WriteXmlAttrId; function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); // normal property - property AutoUpdate read ReadXmlChildAutoUpdate; + property AutoUpdate read ReadXmlChildAutoUpdate write WriteXmlChildAutoUpdate; function ReadXmlChildAutoUpdate(): PureVal; + function WriteXmlChildAutoUpdate(_p1: any; _p2: any); public // Attributes @@ -1839,11 +2059,12 @@ end; type _Inline = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: _Inline);override; + function Clone(): _Inline;override; function ConvertToPoint();override; public @@ -1855,29 +2076,34 @@ public property AnchorId read ReadXmlAttrAnchorId write WriteXmlAttrAnchorId; property EditId read ReadXmlAttrEditId write WriteXmlAttrEditId; function ReadXmlAttrDistT(); - function WriteXmlAttrDistT(_value); + function WriteXmlAttrDistT(_value: any); function ReadXmlAttrDistB(); - function WriteXmlAttrDistB(_value); + function WriteXmlAttrDistB(_value: any); function ReadXmlAttrDistL(); - function WriteXmlAttrDistL(_value); + function WriteXmlAttrDistL(_value: any); function ReadXmlAttrDistR(); - function WriteXmlAttrDistR(_value); + function WriteXmlAttrDistR(_value: any); function ReadXmlAttrAnchorId(); - function WriteXmlAttrAnchorId(_value); + function WriteXmlAttrAnchorId(_value: any); function ReadXmlAttrEditId(); - function WriteXmlAttrEditId(_value); + function WriteXmlAttrEditId(_value: any); // normal property - property Extent read ReadXmlChildExtent; - property EffectExtent read ReadXmlChildEffectExtent; - property DocPr read ReadXmlChildDocPr; - property CNvGraphicFramePr read ReadXmlChildCNvGraphicFramePr; - property Graphic read ReadXmlChildGraphic; + property Extent read ReadXmlChildExtent write WriteXmlChildExtent; + property EffectExtent read ReadXmlChildEffectExtent write WriteXmlChildEffectExtent; + property DocPr read ReadXmlChildDocPr write WriteXmlChildDocPr; + property CNvGraphicFramePr read ReadXmlChildCNvGraphicFramePr write WriteXmlChildCNvGraphicFramePr; + property Graphic read ReadXmlChildGraphic write WriteXmlChildGraphic; function ReadXmlChildExtent(): CXY; + function WriteXmlChildExtent(_p1: any; _p2: any); function ReadXmlChildEffectExtent(): EffectExtent; + function WriteXmlChildEffectExtent(_p1: any; _p2: any); function ReadXmlChildDocPr(): DocPr; + function WriteXmlChildDocPr(_p1: any; _p2: any); function ReadXmlChildCNvGraphicFramePr(): CNvGraphicFramePr; + function WriteXmlChildCNvGraphicFramePr(_p1: any; _p2: any); function ReadXmlChildGraphic(): Graphic; + function WriteXmlChildGraphic(_p1: any; _p2: any); public // Attributes @@ -1898,11 +2124,12 @@ end; type EffectExtent = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: EffectExtent);override; + function Clone(): EffectExtent;override; function ConvertToPoint();override; public @@ -1912,13 +2139,13 @@ public property R read ReadXmlAttrR write WriteXmlAttrR; property B read ReadXmlAttrB write WriteXmlAttrB; function ReadXmlAttrL(); - function WriteXmlAttrL(_value); + function WriteXmlAttrL(_value: any); function ReadXmlAttrT(); - function WriteXmlAttrT(_value); + function WriteXmlAttrT(_value: any); function ReadXmlAttrR(); - function WriteXmlAttrR(_value); + function WriteXmlAttrR(_value: any); function ReadXmlAttrB(); - function WriteXmlAttrB(_value); + function WriteXmlAttrB(_value: any); public // Attributes @@ -1931,11 +2158,12 @@ end; type DocPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: DocPr);override; + function Clone(): DocPr;override; function ConvertToPoint();override; public @@ -1944,15 +2172,16 @@ public property Name read ReadXmlAttrName write WriteXmlAttrName; property Descr read ReadXmlAttrDescr write WriteXmlAttrDescr; function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); function ReadXmlAttrName(); - function WriteXmlAttrName(_value); + function WriteXmlAttrName(_value: any); function ReadXmlAttrDescr(); - function WriteXmlAttrDescr(_value); + function WriteXmlAttrDescr(_value: any); // normal property - property ExtLst read ReadXmlChildExtLst; + property ExtLst read ReadXmlChildExtLst write WriteXmlChildExtLst; function ReadXmlChildExtLst(): ExtLst; + function WriteXmlChildExtLst(_p1: any; _p2: any); public // Attributes @@ -1966,18 +2195,20 @@ end; type CNvGraphicFramePr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CNvGraphicFramePr);override; + function Clone(): CNvGraphicFramePr;override; function ConvertToPoint();override; public // normal property - property GraphicFrameLocks read ReadXmlChildGraphicFrameLocks; + property GraphicFrameLocks read ReadXmlChildGraphicFrameLocks write WriteXmlChildGraphicFrameLocks; function ReadXmlChildGraphicFrameLocks(): GraphicFrameLocks; + function WriteXmlChildGraphicFrameLocks(_p1: any; _p2: any); public // Children @@ -1986,18 +2217,19 @@ end; type GraphicFrameLocks = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: GraphicFrameLocks);override; + function Clone(): GraphicFrameLocks;override; function ConvertToPoint();override; public // attributes property property NoChangeAspect read ReadXmlAttrNoChangeAspect write WriteXmlAttrNoChangeAspect; function ReadXmlAttrNoChangeAspect(); - function WriteXmlAttrNoChangeAspect(_value); + function WriteXmlAttrNoChangeAspect(_value: any); public // Attributes @@ -2007,18 +2239,20 @@ end; type Graphic = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Graphic);override; + function Clone(): Graphic;override; function ConvertToPoint();override; public // normal property - property GraphicData read ReadXmlChildGraphicData; + property GraphicData read ReadXmlChildGraphicData write WriteXmlChildGraphicData; function ReadXmlChildGraphicData(): GraphicData; + function WriteXmlChildGraphicData(_p1: any; _p2: any); public // Children @@ -2027,26 +2261,30 @@ end; type GraphicData = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: GraphicData);override; + function Clone(): GraphicData;override; function ConvertToPoint();override; public // attributes property property Uri read ReadXmlAttrUri write WriteXmlAttrUri; function ReadXmlAttrUri(); - function WriteXmlAttrUri(_value); + function WriteXmlAttrUri(_value: any); // normal property - property Pic read ReadXmlChildPic; - property Chart read ReadXmlChildChart; - property Wsp read ReadXmlChildWsp; + property Pic read ReadXmlChildPic write WriteXmlChildPic; + property Chart read ReadXmlChildChart write WriteXmlChildChart; + property Wsp read ReadXmlChildWsp write WriteXmlChildWsp; function ReadXmlChildPic(): Pic; + function WriteXmlChildPic(_p1: any; _p2: any); function ReadXmlChildChart(): Chart; + function WriteXmlChildChart(_p1: any; _p2: any); function ReadXmlChildWsp(): Wsp; + function WriteXmlChildWsp(_p1: any; _p2: any); public // Attributes @@ -2060,26 +2298,32 @@ end; type Wsp = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Wsp);override; + function Clone(): Wsp;override; function ConvertToPoint();override; public // normal property - property CNvSpPr read ReadXmlChildCNvSpPr; - property SpPr read ReadXmlChildSpPr; - property Txbx read ReadXmlChildTxbx; - property Style read ReadXmlChildStyle; - property BodyPr read ReadXmlChildBodyPr; + property CNvSpPr read ReadXmlChildCNvSpPr write WriteXmlChildCNvSpPr; + property SpPr read ReadXmlChildSpPr write WriteXmlChildSpPr; + property Txbx read ReadXmlChildTxbx write WriteXmlChildTxbx; + property Style read ReadXmlChildStyle write WriteXmlChildStyle; + property BodyPr read ReadXmlChildBodyPr write WriteXmlChildBodyPr; function ReadXmlChildCNvSpPr(): CNvSpPr; + function WriteXmlChildCNvSpPr(_p1: any; _p2: any); function ReadXmlChildSpPr(): SpPr; + function WriteXmlChildSpPr(_p1: any; _p2: any); function ReadXmlChildTxbx(): Txbx; + function WriteXmlChildTxbx(_p1: any; _p2: any); function ReadXmlChildStyle(): WpsStyle; + function WriteXmlChildStyle(_p1: any; _p2: any); function ReadXmlChildBodyPr(): BodyPr; + function WriteXmlChildBodyPr(_p1: any; _p2: any); public // Children @@ -2092,24 +2336,29 @@ end; type WpsStyle = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: WpsStyle);override; + function Clone(): WpsStyle;override; function ConvertToPoint();override; public // normal property - property LnRef read ReadXmlChildLnRef; - property FillRef read ReadXmlChildFillRef; - property EffectRef read ReadXmlChildEffectRef; - property FontRef read ReadXmlChildFontRef; + property LnRef read ReadXmlChildLnRef write WriteXmlChildLnRef; + property FillRef read ReadXmlChildFillRef write WriteXmlChildFillRef; + property EffectRef read ReadXmlChildEffectRef write WriteXmlChildEffectRef; + property FontRef read ReadXmlChildFontRef write WriteXmlChildFontRef; function ReadXmlChildLnRef(): XRef; + function WriteXmlChildLnRef(_p1: any; _p2: any); function ReadXmlChildFillRef(): XRef; + function WriteXmlChildFillRef(_p1: any; _p2: any); function ReadXmlChildEffectRef(): XRef; + function WriteXmlChildEffectRef(_p1: any; _p2: any); function ReadXmlChildFontRef(): XRef; + function WriteXmlChildFontRef(_p1: any; _p2: any); public // Children @@ -2121,22 +2370,24 @@ end; type XRef = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: XRef);override; + function Clone(): XRef;override; function ConvertToPoint();override; public // attributes property property Idx read ReadXmlAttrIdx write WriteXmlAttrIdx; function ReadXmlAttrIdx(); - function WriteXmlAttrIdx(_value); + function WriteXmlAttrIdx(_value: any); // normal property - property SchemeClr read ReadXmlChildSchemeClr; + property SchemeClr read ReadXmlChildSchemeClr write WriteXmlChildSchemeClr; function ReadXmlChildSchemeClr(): SchemeClr; + function WriteXmlChildSchemeClr(_p1: any; _p2: any); public // Attributes @@ -2148,18 +2399,20 @@ end; type Txbx = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Txbx);override; + function Clone(): Txbx;override; function ConvertToPoint();override; public // normal property - property TxbxContent read ReadXmlChildTxbxContent; + property TxbxContent read ReadXmlChildTxbxContent write WriteXmlChildTxbxContent; function ReadXmlChildTxbxContent(): TxbxContent; + function WriteXmlChildTxbxContent(_p1: any; _p2: any); public // Children @@ -2168,22 +2421,24 @@ end; type CNvSpPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CNvSpPr);override; + function Clone(): CNvSpPr;override; function ConvertToPoint();override; public // attributes property property TxBox read ReadXmlAttrTxBox write WriteXmlAttrTxBox; function ReadXmlAttrTxBox(); - function WriteXmlAttrTxBox(_value); + function WriteXmlAttrTxBox(_value: any); // normal property - property SpLocks read ReadXmlChildSpLocks; + property SpLocks read ReadXmlChildSpLocks write WriteXmlChildSpLocks; function ReadXmlChildSpLocks(): SpLocks; + function WriteXmlChildSpLocks(_p1: any; _p2: any); public // Attributes @@ -2195,18 +2450,19 @@ end; type SpLocks = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SpLocks);override; + function Clone(): SpLocks;override; function ConvertToPoint();override; public // attributes property property NoChangeArrowheads read ReadXmlAttrNoChangeArrowheads write WriteXmlAttrNoChangeArrowheads; function ReadXmlAttrNoChangeArrowheads(); - function WriteXmlAttrNoChangeArrowheads(_value); + function WriteXmlAttrNoChangeArrowheads(_value: any); public // Attributes @@ -2216,22 +2472,26 @@ end; type Pic = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Pic);override; + function Clone(): Pic;override; function ConvertToPoint();override; public // normal property - property NvPicPr read ReadXmlChildNvPicPr; - property BlipFill read ReadXmlChildBlipFill; - property SpPr read ReadXmlChildSpPr; + property NvPicPr read ReadXmlChildNvPicPr write WriteXmlChildNvPicPr; + property BlipFill read ReadXmlChildBlipFill write WriteXmlChildBlipFill; + property SpPr read ReadXmlChildSpPr write WriteXmlChildSpPr; function ReadXmlChildNvPicPr(): NvPicPr; + function WriteXmlChildNvPicPr(_p1: any; _p2: any); function ReadXmlChildBlipFill(): BlipFill; + function WriteXmlChildBlipFill(_p1: any; _p2: any); function ReadXmlChildSpPr(): SpPr; + function WriteXmlChildSpPr(_p1: any; _p2: any); public // Children @@ -2242,20 +2502,23 @@ end; type NvPicPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: NvPicPr);override; + function Clone(): NvPicPr;override; function ConvertToPoint();override; public // normal property - property CNvPr read ReadXmlChildCNvPr; - property CNvPicPr read ReadXmlChildCNvPicPr; + property CNvPr read ReadXmlChildCNvPr write WriteXmlChildCNvPr; + property CNvPicPr read ReadXmlChildCNvPicPr write WriteXmlChildCNvPicPr; function ReadXmlChildCNvPr(): CNvPr; + function WriteXmlChildCNvPr(_p1: any; _p2: any); function ReadXmlChildCNvPicPr(): CNvPicPr; + function WriteXmlChildCNvPicPr(_p1: any; _p2: any); public // Children @@ -2265,11 +2528,12 @@ end; type CNvPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CNvPr);override; + function Clone(): CNvPr;override; function ConvertToPoint();override; public @@ -2278,11 +2542,11 @@ public property Name read ReadXmlAttrName write WriteXmlAttrName; property Descr read ReadXmlAttrDescr write WriteXmlAttrDescr; function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); function ReadXmlAttrName(); - function WriteXmlAttrName(_value); + function WriteXmlAttrName(_value: any); function ReadXmlAttrDescr(); - function WriteXmlAttrDescr(_value); + function WriteXmlAttrDescr(_value: any); public // Attributes @@ -2294,18 +2558,20 @@ end; type CNvPicPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CNvPicPr);override; + function Clone(): CNvPicPr;override; function ConvertToPoint();override; public // normal property - property PicLocks read ReadXmlChildPicLocks; + property PicLocks read ReadXmlChildPicLocks write WriteXmlChildPicLocks; function ReadXmlChildPicLocks(): PicLocks; + function WriteXmlChildPicLocks(_p1: any; _p2: any); public // Children @@ -2314,18 +2580,19 @@ end; type PicLocks = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PicLocks);override; + function Clone(): PicLocks;override; function ConvertToPoint();override; public // attributes property property NoChangeAspect read ReadXmlAttrNoChangeAspect write WriteXmlAttrNoChangeAspect; function ReadXmlAttrNoChangeAspect(); - function WriteXmlAttrNoChangeAspect(_value); + function WriteXmlAttrNoChangeAspect(_value: any); public // Attributes @@ -2335,20 +2602,23 @@ end; type BlipFill = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: BlipFill);override; + function Clone(): BlipFill;override; function ConvertToPoint();override; public // normal property - property Blip read ReadXmlChildBlip; - property Stretch read ReadXmlChildStretch; + property Blip read ReadXmlChildBlip write WriteXmlChildBlip; + property Stretch read ReadXmlChildStretch write WriteXmlChildStretch; function ReadXmlChildBlip(): Blip; + function WriteXmlChildBlip(_p1: any; _p2: any); function ReadXmlChildStretch(): Stretch; + function WriteXmlChildStretch(_p1: any; _p2: any); public // Children @@ -2358,11 +2628,12 @@ end; type Blip = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Blip);override; + function Clone(): Blip;override; function ConvertToPoint();override; public @@ -2370,9 +2641,9 @@ public property Embed read ReadXmlAttrEmbed write WriteXmlAttrEmbed; property Cstate read ReadXmlAttrCstate write WriteXmlAttrCstate; function ReadXmlAttrEmbed(); - function WriteXmlAttrEmbed(_value); + function WriteXmlAttrEmbed(_value: any); function ReadXmlAttrCstate(); - function WriteXmlAttrCstate(_value); + function WriteXmlAttrCstate(_value: any); public // Attributes @@ -2383,18 +2654,20 @@ end; type Stretch = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Stretch);override; + function Clone(): Stretch;override; function ConvertToPoint();override; public // normal property - property FillRect read ReadXmlChildFillRect; + property FillRect read ReadXmlChildFillRect write WriteXmlChildFillRect; function ReadXmlChildFillRect(): PureVal; + function WriteXmlChildFillRect(_p1: any; _p2: any); public // Children @@ -2403,34 +2676,41 @@ end; type SpPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SpPr);override; + function Clone(): SpPr;override; function ConvertToPoint();override; public // attributes property property BwMode read ReadXmlAttrBwMode write WriteXmlAttrBwMode; function ReadXmlAttrBwMode(); - function WriteXmlAttrBwMode(_value); + function WriteXmlAttrBwMode(_value: any); // simple_type property - property NoFill read ReadXmlChildNoFill; + property NoFill read ReadXmlChildNoFill write WriteXmlChildNoFill; function ReadXmlChildNoFill(): OpenXmlSimpleType; + function WriteXmlChildNoFill(_value: nil_or_OpenXmlSimpleType); // normal property - property Xfrm read ReadXmlChildXfrm; - property PrstGeom read ReadXmlChildPrstGeom; - property SolidFill read ReadXmlChildSolidFill; - property Ln read ReadXmlChildLn; - property EffectLst read ReadXmlChildEffectLst; + property Xfrm read ReadXmlChildXfrm write WriteXmlChildXfrm; + property PrstGeom read ReadXmlChildPrstGeom write WriteXmlChildPrstGeom; + property SolidFill read ReadXmlChildSolidFill write WriteXmlChildSolidFill; + property Ln read ReadXmlChildLn write WriteXmlChildLn; + property EffectLst read ReadXmlChildEffectLst write WriteXmlChildEffectLst; function ReadXmlChildXfrm(): Xfrm; + function WriteXmlChildXfrm(_p1: any; _p2: any); function ReadXmlChildPrstGeom(): PrstGeom; + function WriteXmlChildPrstGeom(_p1: any; _p2: any); function ReadXmlChildSolidFill(): SolidFill; + function WriteXmlChildSolidFill(_p1: any; _p2: any); function ReadXmlChildLn(): Ln; + function WriteXmlChildLn(_p1: any; _p2: any); function ReadXmlChildEffectLst(): EffectLst; + function WriteXmlChildEffectLst(_p1: any; _p2: any); public // Attributes @@ -2447,18 +2727,20 @@ end; type EffectLst = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: EffectLst);override; + function Clone(): EffectLst;override; function ConvertToPoint();override; public // normal property - property OuterShdw read ReadXmlChildOuterShdw; + property OuterShdw read ReadXmlChildOuterShdw write WriteXmlChildOuterShdw; function ReadXmlChildOuterShdw(): OuterShdw; + function WriteXmlChildOuterShdw(_p1: any; _p2: any); public // Children @@ -2467,11 +2749,12 @@ end; type Ln = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Ln);override; + function Clone(): Ln;override; function ConvertToPoint();override; public @@ -2481,29 +2764,35 @@ public property Cmpd read ReadXmlAttrCmpd write WriteXmlAttrCmpd; property Algn read ReadXmlAttrAlgn write WriteXmlAttrAlgn; function ReadXmlAttrW(); - function WriteXmlAttrW(_value); + function WriteXmlAttrW(_value: any); function ReadXmlAttrCap(); - function WriteXmlAttrCap(_value); + function WriteXmlAttrCap(_value: any); function ReadXmlAttrCmpd(); - function WriteXmlAttrCmpd(_value); + function WriteXmlAttrCmpd(_value: any); function ReadXmlAttrAlgn(); - function WriteXmlAttrAlgn(_value); + function WriteXmlAttrAlgn(_value: any); // simple_type property - property NoFill read ReadXmlChildNoFill; - property HeadEnd read ReadXmlChildHeadEnd; - property TailEnd read ReadXmlChildTailEnd; + property NoFill read ReadXmlChildNoFill write WriteXmlChildNoFill; + property HeadEnd read ReadXmlChildHeadEnd write WriteXmlChildHeadEnd; + property TailEnd read ReadXmlChildTailEnd write WriteXmlChildTailEnd; function ReadXmlChildNoFill(): OpenXmlSimpleType; + function WriteXmlChildNoFill(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildHeadEnd(): OpenXmlSimpleType; + function WriteXmlChildHeadEnd(_value: nil_or_OpenXmlSimpleType); function ReadXmlChildTailEnd(): OpenXmlSimpleType; + function WriteXmlChildTailEnd(_value: nil_or_OpenXmlSimpleType); // normal property - property SolidFill read ReadXmlChildSolidFill; - property PrstDash read ReadXmlChildPrstDash; - property Miter read ReadXmlChildMiter; + property SolidFill read ReadXmlChildSolidFill write WriteXmlChildSolidFill; + property PrstDash read ReadXmlChildPrstDash write WriteXmlChildPrstDash; + property Miter read ReadXmlChildMiter write WriteXmlChildMiter; function ReadXmlChildSolidFill(): SolidFill; + function WriteXmlChildSolidFill(_p1: any; _p2: any); function ReadXmlChildPrstDash(): PureVal; + function WriteXmlChildPrstDash(_p1: any; _p2: any); function ReadXmlChildMiter(): Miter; + function WriteXmlChildMiter(_p1: any; _p2: any); public // Attributes @@ -2523,18 +2812,19 @@ end; type Miter = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Miter);override; + function Clone(): Miter;override; function ConvertToPoint();override; public // attributes property property Lim read ReadXmlAttrLim write WriteXmlAttrLim; function ReadXmlAttrLim(); - function WriteXmlAttrLim(_value); + function WriteXmlAttrLim(_value: any); public // Attributes @@ -2544,11 +2834,12 @@ end; type Xfrm = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Xfrm);override; + function Clone(): Xfrm;override; function ConvertToPoint();override; public @@ -2557,17 +2848,19 @@ public property FlipV read ReadXmlAttrFlipV write WriteXmlAttrFlipV; property Rot read ReadXmlAttrRot write WriteXmlAttrRot; function ReadXmlAttrFlipH(); - function WriteXmlAttrFlipH(_value); + function WriteXmlAttrFlipH(_value: any); function ReadXmlAttrFlipV(); - function WriteXmlAttrFlipV(_value); + function WriteXmlAttrFlipV(_value: any); function ReadXmlAttrRot(); - function WriteXmlAttrRot(_value); + function WriteXmlAttrRot(_value: any); // normal property - property Off read ReadXmlChildOff; - property Ext read ReadXmlChildExt; + property Off read ReadXmlChildOff write WriteXmlChildOff; + property Ext read ReadXmlChildExt write WriteXmlChildExt; function ReadXmlChildOff(): XY; + function WriteXmlChildOff(_p1: any; _p2: any); function ReadXmlChildExt(): CXY; + function WriteXmlChildExt(_p1: any; _p2: any); public // Attributes @@ -2582,11 +2875,12 @@ end; type XY = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: XY);override; + function Clone(): XY;override; function ConvertToPoint();override; public @@ -2594,9 +2888,9 @@ public property X read ReadXmlAttrX write WriteXmlAttrX; property Y read ReadXmlAttrY write WriteXmlAttrY; function ReadXmlAttrX(); - function WriteXmlAttrX(_value); + function WriteXmlAttrX(_value: any); function ReadXmlAttrY(); - function WriteXmlAttrY(_value); + function WriteXmlAttrY(_value: any); public // Attributes @@ -2607,11 +2901,12 @@ end; type CXY = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CXY);override; + function Clone(): CXY;override; function ConvertToPoint();override; public @@ -2619,9 +2914,9 @@ public property Cx read ReadXmlAttrCx write WriteXmlAttrCx; property Cy read ReadXmlAttrCy write WriteXmlAttrCy; function ReadXmlAttrCx(); - function WriteXmlAttrCx(_value); + function WriteXmlAttrCx(_value: any); function ReadXmlAttrCy(); - function WriteXmlAttrCy(_value); + function WriteXmlAttrCy(_value: any); public // Attributes @@ -2632,22 +2927,24 @@ end; type PrstGeom = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PrstGeom);override; + function Clone(): PrstGeom;override; function ConvertToPoint();override; public // attributes property property Prst read ReadXmlAttrPrst write WriteXmlAttrPrst; function ReadXmlAttrPrst(); - function WriteXmlAttrPrst(_value); + function WriteXmlAttrPrst(_value: any); // normal property - property AvLst read ReadXmlChildAvLst; + property AvLst read ReadXmlChildAvLst write WriteXmlChildAvLst; function ReadXmlChildAvLst(): PureVal; + function WriteXmlChildAvLst(_p1: any; _p2: any); public // Attributes @@ -2659,11 +2956,12 @@ end; type Anchor = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Anchor);override; + function Clone(): Anchor;override; function ConvertToPoint();override; public @@ -2682,57 +2980,68 @@ public property AnchorId read ReadXmlAttrAnchorId write WriteXmlAttrAnchorId; property EditId read ReadXmlAttrEditId write WriteXmlAttrEditId; function ReadXmlAttrDistT(); - function WriteXmlAttrDistT(_value); + function WriteXmlAttrDistT(_value: any); function ReadXmlAttrDistB(); - function WriteXmlAttrDistB(_value); + function WriteXmlAttrDistB(_value: any); function ReadXmlAttrDistL(); - function WriteXmlAttrDistL(_value); + function WriteXmlAttrDistL(_value: any); function ReadXmlAttrDistR(); - function WriteXmlAttrDistR(_value); + function WriteXmlAttrDistR(_value: any); function ReadXmlAttrSimplePos(); - function WriteXmlAttrSimplePos(_value); + function WriteXmlAttrSimplePos(_value: any); function ReadXmlAttrRelativeHeight(); - function WriteXmlAttrRelativeHeight(_value); + function WriteXmlAttrRelativeHeight(_value: any); function ReadXmlAttrBehindDoc(); - function WriteXmlAttrBehindDoc(_value); + function WriteXmlAttrBehindDoc(_value: any); function ReadXmlAttrLocked(); - function WriteXmlAttrLocked(_value); + function WriteXmlAttrLocked(_value: any); function ReadXmlAttrHidden(); - function WriteXmlAttrHidden(_value); + function WriteXmlAttrHidden(_value: any); function ReadXmlAttrLayoutInCell(); - function WriteXmlAttrLayoutInCell(_value); + function WriteXmlAttrLayoutInCell(_value: any); function ReadXmlAttrAllowOverlap(); - function WriteXmlAttrAllowOverlap(_value); + function WriteXmlAttrAllowOverlap(_value: any); function ReadXmlAttrAnchorId(); - function WriteXmlAttrAnchorId(_value); + function WriteXmlAttrAnchorId(_value: any); function ReadXmlAttrEditId(); - function WriteXmlAttrEditId(_value); + function WriteXmlAttrEditId(_value: any); // simple_type property - property WrapNone read ReadXmlChildWrapNone; + property WrapNone read ReadXmlChildWrapNone write WriteXmlChildWrapNone; function ReadXmlChildWrapNone(): OpenXmlSimpleType; + function WriteXmlChildWrapNone(_value: nil_or_OpenXmlSimpleType); // normal property - property SimplePos read ReadXmlChildSimplePos; - property PositionH read ReadXmlChildPositionH; - property PositionV read ReadXmlChildPositionV; - property Extent read ReadXmlChildExtent; - property EffectExtent read ReadXmlChildEffectExtent; - property DocPr read ReadXmlChildDocPr; - property CNvGraphicFramePr read ReadXmlChildCNvGraphicFramePr; - property Graphic read ReadXmlChildGraphic; - property SizeRelH read ReadXmlChildSizeRelH; - property SizeRelV read ReadXmlChildSizeRelV; + property SimplePos read ReadXmlChildSimplePos write WriteXmlChildSimplePos; + property PositionH read ReadXmlChildPositionH write WriteXmlChildPositionH; + property PositionV read ReadXmlChildPositionV write WriteXmlChildPositionV; + property Extent read ReadXmlChildExtent write WriteXmlChildExtent; + property EffectExtent read ReadXmlChildEffectExtent write WriteXmlChildEffectExtent; + property DocPr read ReadXmlChildDocPr write WriteXmlChildDocPr; + property CNvGraphicFramePr read ReadXmlChildCNvGraphicFramePr write WriteXmlChildCNvGraphicFramePr; + property Graphic read ReadXmlChildGraphic write WriteXmlChildGraphic; + property SizeRelH read ReadXmlChildSizeRelH write WriteXmlChildSizeRelH; + property SizeRelV read ReadXmlChildSizeRelV write WriteXmlChildSizeRelV; function ReadXmlChildSimplePos(): XY; + function WriteXmlChildSimplePos(_p1: any; _p2: any); function ReadXmlChildPositionH(): PositionH; + function WriteXmlChildPositionH(_p1: any; _p2: any); function ReadXmlChildPositionV(): PositionV; + function WriteXmlChildPositionV(_p1: any; _p2: any); function ReadXmlChildExtent(): CXY; + function WriteXmlChildExtent(_p1: any; _p2: any); function ReadXmlChildEffectExtent(): EffectExtent; + function WriteXmlChildEffectExtent(_p1: any; _p2: any); function ReadXmlChildDocPr(): DocPr; + function WriteXmlChildDocPr(_p1: any; _p2: any); function ReadXmlChildCNvGraphicFramePr(): CNvGraphicFramePr; + function WriteXmlChildCNvGraphicFramePr(_p1: any; _p2: any); function ReadXmlChildGraphic(): Graphic; + function WriteXmlChildGraphic(_p1: any; _p2: any); function ReadXmlChildSizeRelH(): SizeRelH; + function WriteXmlChildSizeRelH(_p1: any; _p2: any); function ReadXmlChildSizeRelV(): SizeRelV; + function WriteXmlChildSizeRelV(_p1: any; _p2: any); public // Attributes @@ -2766,22 +3075,24 @@ end; type PositionV = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PositionV);override; + function Clone(): PositionV;override; function ConvertToPoint();override; public // attributes property property RelativeFrom read ReadXmlAttrRelativeFrom write WriteXmlAttrRelativeFrom; function ReadXmlAttrRelativeFrom(); - function WriteXmlAttrRelativeFrom(_value); + function WriteXmlAttrRelativeFrom(_value: any); // pcdata property - property PosOffset read ReadXmlChildPosOffset; + property PosOffset read ReadXmlChildPosOffset write WriteXmlChildPosOffset; function ReadXmlChildPosOffset(); + function WriteXmlChildPosOffset(_value: nil_or_OpenXmlTextElement); public // Attributes @@ -2793,22 +3104,24 @@ end; type PositionH = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PositionH);override; + function Clone(): PositionH;override; function ConvertToPoint();override; public // attributes property property RelativeFrom read ReadXmlAttrRelativeFrom write WriteXmlAttrRelativeFrom; function ReadXmlAttrRelativeFrom(); - function WriteXmlAttrRelativeFrom(_value); + function WriteXmlAttrRelativeFrom(_value: any); // pcdata property - property PosOffset read ReadXmlChildPosOffset; + property PosOffset read ReadXmlChildPosOffset write WriteXmlChildPosOffset; function ReadXmlChildPosOffset(); + function WriteXmlChildPosOffset(_value: nil_or_OpenXmlTextElement); public // Attributes @@ -2820,22 +3133,24 @@ end; type SizeRelH = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SizeRelH);override; + function Clone(): SizeRelH;override; function ConvertToPoint();override; public // attributes property property RelativeFrom read ReadXmlAttrRelativeFrom write WriteXmlAttrRelativeFrom; function ReadXmlAttrRelativeFrom(); - function WriteXmlAttrRelativeFrom(_value); + function WriteXmlAttrRelativeFrom(_value: any); // pcdata property - property PctWidth read ReadXmlChildPctWidth; + property PctWidth read ReadXmlChildPctWidth write WriteXmlChildPctWidth; function ReadXmlChildPctWidth(); + function WriteXmlChildPctWidth(_value: nil_or_OpenXmlTextElement); public // Attributes @@ -2847,22 +3162,24 @@ end; type SizeRelV = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SizeRelV);override; + function Clone(): SizeRelV;override; function ConvertToPoint();override; public // attributes property property RelativeFrom read ReadXmlAttrRelativeFrom write WriteXmlAttrRelativeFrom; function ReadXmlAttrRelativeFrom(); - function WriteXmlAttrRelativeFrom(_value); + function WriteXmlAttrRelativeFrom(_value: any); // pcdata property - property PctHeight read ReadXmlChildPctHeight; + property PctHeight read ReadXmlChildPctHeight write WriteXmlChildPctHeight; function ReadXmlChildPctHeight(); + function WriteXmlChildPctHeight(_value: nil_or_OpenXmlTextElement); public // Attributes @@ -2874,20 +3191,20 @@ end; implementation -function Theme.Create();overload; +function Theme.create();overload; begin - {self.}Create(nil, "a", "theme"); + {self.}create(nil, "a", "theme"); end; -function Theme.Create(_node: XmlNode);overload; +function Theme.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Theme.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Theme.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Theme.Init();override; @@ -2910,7 +3227,7 @@ function Theme.Copy(_obj: Theme);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.XmlChildThemeElements) then @@ -2924,6 +3241,26 @@ begin tslassigning := tslassigning_backup; end; +function Theme.Clone(): Theme;override; +begin + obj := new Theme(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "themeElements": obj.ThemeElements := element.Clone(); + pre + "objectDefaults": obj.ObjectDefaults := element.Clone(); + pre + "extraClrSchemeLst": obj.ExtraClrSchemeLst := element.Clone(); + pre + "extLst": obj.ExtLst := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Theme.ConvertToPoint();override; begin if not ifnil({self.}XmlChildThemeElements) then @@ -2934,15 +3271,15 @@ end; function Theme.ReadXmlAttrName(); begin - return {self.}XmlAttrName.Value; + return ifnil({self.}XmlAttrName.Value) ? fallback_.XmlAttrName.Value : {self.}XmlAttrName.Value; end; -function Theme.WriteXmlAttrName(_value); +function Theme.WriteXmlAttrName(_value: any); begin if ifnil({self.}XmlAttrName) then begin {self.}XmlAttrName := new OpenXmlAttribute("", "name", nil); - attributes_[length(attributes_)] := {self.}XmlAttrName; + attributes_["name"] := {self.}XmlAttrName; end {self.}XmlAttrName.Value := _value; end; @@ -2954,7 +3291,25 @@ begin {self.}XmlChildObjectDefaults := new OpenXmlSimpleType(self, {self.}Prefix, "objectDefaults"); container_.Set({self.}XmlChildObjectDefaults); end - return {self.}XmlChildObjectDefaults; + return {self.}XmlChildObjectDefaults and not {self.}XmlChildObjectDefaults.Removed ? {self.}XmlChildObjectDefaults : fallback_.ObjectDefaults; +end; + +function Theme.WriteXmlChildObjectDefaults(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildObjectDefaults) then + {self.}RemoveChild({self.}XmlChildObjectDefaults); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildObjectDefaults := _value; + container_.Set({self.}XmlChildObjectDefaults); + end + else begin + raise "Invalid assignment: ObjectDefaults expects nil or OpenXmlSimpleType"; + end end; function Theme.ReadXmlChildExtraClrSchemeLst(); @@ -2964,7 +3319,25 @@ begin {self.}XmlChildExtraClrSchemeLst := new OpenXmlSimpleType(self, {self.}Prefix, "extraClrSchemeLst"); container_.Set({self.}XmlChildExtraClrSchemeLst); end - return {self.}XmlChildExtraClrSchemeLst; + return {self.}XmlChildExtraClrSchemeLst and not {self.}XmlChildExtraClrSchemeLst.Removed ? {self.}XmlChildExtraClrSchemeLst : fallback_.ExtraClrSchemeLst; +end; + +function Theme.WriteXmlChildExtraClrSchemeLst(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildExtraClrSchemeLst) then + {self.}RemoveChild({self.}XmlChildExtraClrSchemeLst); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildExtraClrSchemeLst := _value; + container_.Set({self.}XmlChildExtraClrSchemeLst); + end + else begin + raise "Invalid assignment: ExtraClrSchemeLst expects nil or OpenXmlSimpleType"; + end end; function Theme.ReadXmlChildThemeElements(): ThemeElements; @@ -2974,7 +3347,26 @@ begin {self.}XmlChildThemeElements := new ThemeElements(self, {self.}Prefix, "themeElements"); container_.Set({self.}XmlChildThemeElements); end - return {self.}XmlChildThemeElements; + return {self.}XmlChildThemeElements and not {self.}XmlChildThemeElements.Removed ? {self.}XmlChildThemeElements : fallback_.ThemeElements; +end; + +function Theme.WriteXmlChildThemeElements(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildThemeElements) then + {self.}RemoveChild({self.}XmlChildThemeElements); + end + else if v is class(ThemeElements) then + begin + v.Parent := self; + {self.}XmlChildThemeElements := v; + container_.Set({self.}XmlChildThemeElements); + end + else begin + raise "Invalid assignment: ThemeElements expects ThemeElements or nil"; + end end; function Theme.ReadXmlChildExtLst(): ExtLst; @@ -2984,23 +3376,42 @@ begin {self.}XmlChildExtLst := new ExtLst(self, {self.}Prefix, "extLst"); container_.Set({self.}XmlChildExtLst); end - return {self.}XmlChildExtLst; + return {self.}XmlChildExtLst and not {self.}XmlChildExtLst.Removed ? {self.}XmlChildExtLst : fallback_.ExtLst; end; -function ThemeElements.Create();overload; +function Theme.WriteXmlChildExtLst(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "themeElements"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildExtLst) then + {self.}RemoveChild({self.}XmlChildExtLst); + end + else if v is class(ExtLst) then + begin + v.Parent := self; + {self.}XmlChildExtLst := v; + container_.Set({self.}XmlChildExtLst); + end + else begin + raise "Invalid assignment: ExtLst expects ExtLst or nil"; + end end; -function ThemeElements.Create(_node: XmlNode);overload; +function ThemeElements.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "themeElements"); end; -function ThemeElements.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ThemeElements.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function ThemeElements.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ThemeElements.Init();override; @@ -3022,7 +3433,7 @@ function ThemeElements.Copy(_obj: ThemeElements);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.XmlChildClrScheme) then @@ -3034,6 +3445,25 @@ begin tslassigning := tslassigning_backup; end; +function ThemeElements.Clone(): ThemeElements;override; +begin + obj := new ThemeElements(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "clrScheme": obj.ClrScheme := element.Clone(); + pre + "fontScheme": obj.FontScheme := element.Clone(); + pre + "fmtScheme": obj.FmtScheme := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function ThemeElements.ConvertToPoint();override; begin if not ifnil({self.}XmlChildClrScheme) then @@ -3046,15 +3476,15 @@ end; function ThemeElements.ReadXmlAttrName(); begin - return {self.}XmlAttrName.Value; + return ifnil({self.}XmlAttrName.Value) ? fallback_.XmlAttrName.Value : {self.}XmlAttrName.Value; end; -function ThemeElements.WriteXmlAttrName(_value); +function ThemeElements.WriteXmlAttrName(_value: any); begin if ifnil({self.}XmlAttrName) then begin {self.}XmlAttrName := new OpenXmlAttribute("", "name", nil); - attributes_[length(attributes_)] := {self.}XmlAttrName; + attributes_["name"] := {self.}XmlAttrName; end {self.}XmlAttrName.Value := _value; end; @@ -3066,7 +3496,26 @@ begin {self.}XmlChildClrScheme := new ClrScheme(self, {self.}Prefix, "clrScheme"); container_.Set({self.}XmlChildClrScheme); end - return {self.}XmlChildClrScheme; + return {self.}XmlChildClrScheme and not {self.}XmlChildClrScheme.Removed ? {self.}XmlChildClrScheme : fallback_.ClrScheme; +end; + +function ThemeElements.WriteXmlChildClrScheme(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildClrScheme) then + {self.}RemoveChild({self.}XmlChildClrScheme); + end + else if v is class(ClrScheme) then + begin + v.Parent := self; + {self.}XmlChildClrScheme := v; + container_.Set({self.}XmlChildClrScheme); + end + else begin + raise "Invalid assignment: ClrScheme expects ClrScheme or nil"; + end end; function ThemeElements.ReadXmlChildFontScheme(): FontScheme; @@ -3076,7 +3525,26 @@ begin {self.}XmlChildFontScheme := new FontScheme(self, {self.}Prefix, "fontScheme"); container_.Set({self.}XmlChildFontScheme); end - return {self.}XmlChildFontScheme; + return {self.}XmlChildFontScheme and not {self.}XmlChildFontScheme.Removed ? {self.}XmlChildFontScheme : fallback_.FontScheme; +end; + +function ThemeElements.WriteXmlChildFontScheme(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFontScheme) then + {self.}RemoveChild({self.}XmlChildFontScheme); + end + else if v is class(FontScheme) then + begin + v.Parent := self; + {self.}XmlChildFontScheme := v; + container_.Set({self.}XmlChildFontScheme); + end + else begin + raise "Invalid assignment: FontScheme expects FontScheme or nil"; + end end; function ThemeElements.ReadXmlChildFmtScheme(): FmtScheme; @@ -3086,23 +3554,42 @@ begin {self.}XmlChildFmtScheme := new FmtScheme(self, {self.}Prefix, "fmtScheme"); container_.Set({self.}XmlChildFmtScheme); end - return {self.}XmlChildFmtScheme; + return {self.}XmlChildFmtScheme and not {self.}XmlChildFmtScheme.Removed ? {self.}XmlChildFmtScheme : fallback_.FmtScheme; end; -function ClrScheme.Create();overload; +function ThemeElements.WriteXmlChildFmtScheme(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "clrScheme"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFmtScheme) then + {self.}RemoveChild({self.}XmlChildFmtScheme); + end + else if v is class(FmtScheme) then + begin + v.Parent := self; + {self.}XmlChildFmtScheme := v; + container_.Set({self.}XmlChildFmtScheme); + end + else begin + raise "Invalid assignment: FmtScheme expects FmtScheme or nil"; + end end; -function ClrScheme.Create(_node: XmlNode);overload; +function ClrScheme.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "clrScheme"); end; -function ClrScheme.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ClrScheme.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function ClrScheme.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ClrScheme.Init();override; @@ -3133,7 +3620,7 @@ function ClrScheme.Copy(_obj: ClrScheme);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.XmlChildDk1) then @@ -3163,6 +3650,34 @@ begin tslassigning := tslassigning_backup; end; +function ClrScheme.Clone(): ClrScheme;override; +begin + obj := new ClrScheme(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "dk1": obj.Dk1 := element.Clone(); + pre + "lt1": obj.Lt1 := element.Clone(); + pre + "dk2": obj.Dk2 := element.Clone(); + pre + "lt2": obj.Lt2 := element.Clone(); + pre + "accent1": obj.Accent1 := element.Clone(); + pre + "accent2": obj.Accent2 := element.Clone(); + pre + "accent3": obj.Accent3 := element.Clone(); + pre + "accent4": obj.Accent4 := element.Clone(); + pre + "accent5": obj.Accent5 := element.Clone(); + pre + "accent6": obj.Accent6 := element.Clone(); + pre + "hlink": obj.Hlink := element.Clone(); + pre + "folHlink": obj.FolHlink := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function ClrScheme.ConvertToPoint();override; begin if not ifnil({self.}XmlChildDk1) then @@ -3193,15 +3708,15 @@ end; function ClrScheme.ReadXmlAttrName(); begin - return {self.}XmlAttrName.Value; + return ifnil({self.}XmlAttrName.Value) ? fallback_.XmlAttrName.Value : {self.}XmlAttrName.Value; end; -function ClrScheme.WriteXmlAttrName(_value); +function ClrScheme.WriteXmlAttrName(_value: any); begin if ifnil({self.}XmlAttrName) then begin {self.}XmlAttrName := new OpenXmlAttribute("", "name", nil); - attributes_[length(attributes_)] := {self.}XmlAttrName; + attributes_["name"] := {self.}XmlAttrName; end {self.}XmlAttrName.Value := _value; end; @@ -3213,7 +3728,26 @@ begin {self.}XmlChildDk1 := new Clr1(self, {self.}Prefix, "dk1"); container_.Set({self.}XmlChildDk1); end - return {self.}XmlChildDk1; + return {self.}XmlChildDk1 and not {self.}XmlChildDk1.Removed ? {self.}XmlChildDk1 : fallback_.Dk1; +end; + +function ClrScheme.WriteXmlChildDk1(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDk1) then + {self.}RemoveChild({self.}XmlChildDk1); + end + else if v is class(Clr1) then + begin + v.Parent := self; + {self.}XmlChildDk1 := v; + container_.Set({self.}XmlChildDk1); + end + else begin + raise "Invalid assignment: Dk1 expects Clr1 or nil"; + end end; function ClrScheme.ReadXmlChildLt1(): Clr1; @@ -3223,7 +3757,26 @@ begin {self.}XmlChildLt1 := new Clr1(self, {self.}Prefix, "lt1"); container_.Set({self.}XmlChildLt1); end - return {self.}XmlChildLt1; + return {self.}XmlChildLt1 and not {self.}XmlChildLt1.Removed ? {self.}XmlChildLt1 : fallback_.Lt1; +end; + +function ClrScheme.WriteXmlChildLt1(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLt1) then + {self.}RemoveChild({self.}XmlChildLt1); + end + else if v is class(Clr1) then + begin + v.Parent := self; + {self.}XmlChildLt1 := v; + container_.Set({self.}XmlChildLt1); + end + else begin + raise "Invalid assignment: Lt1 expects Clr1 or nil"; + end end; function ClrScheme.ReadXmlChildDk2(): Clr2; @@ -3233,7 +3786,26 @@ begin {self.}XmlChildDk2 := new Clr2(self, {self.}Prefix, "dk2"); container_.Set({self.}XmlChildDk2); end - return {self.}XmlChildDk2; + return {self.}XmlChildDk2 and not {self.}XmlChildDk2.Removed ? {self.}XmlChildDk2 : fallback_.Dk2; +end; + +function ClrScheme.WriteXmlChildDk2(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDk2) then + {self.}RemoveChild({self.}XmlChildDk2); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildDk2 := v; + container_.Set({self.}XmlChildDk2); + end + else begin + raise "Invalid assignment: Dk2 expects Clr2 or nil"; + end end; function ClrScheme.ReadXmlChildLt2(): Clr2; @@ -3243,7 +3815,26 @@ begin {self.}XmlChildLt2 := new Clr2(self, {self.}Prefix, "lt2"); container_.Set({self.}XmlChildLt2); end - return {self.}XmlChildLt2; + return {self.}XmlChildLt2 and not {self.}XmlChildLt2.Removed ? {self.}XmlChildLt2 : fallback_.Lt2; +end; + +function ClrScheme.WriteXmlChildLt2(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLt2) then + {self.}RemoveChild({self.}XmlChildLt2); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildLt2 := v; + container_.Set({self.}XmlChildLt2); + end + else begin + raise "Invalid assignment: Lt2 expects Clr2 or nil"; + end end; function ClrScheme.ReadXmlChildAccent1(): Clr2; @@ -3253,7 +3844,26 @@ begin {self.}XmlChildAccent1 := new Clr2(self, {self.}Prefix, "accent1"); container_.Set({self.}XmlChildAccent1); end - return {self.}XmlChildAccent1; + return {self.}XmlChildAccent1 and not {self.}XmlChildAccent1.Removed ? {self.}XmlChildAccent1 : fallback_.Accent1; +end; + +function ClrScheme.WriteXmlChildAccent1(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAccent1) then + {self.}RemoveChild({self.}XmlChildAccent1); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildAccent1 := v; + container_.Set({self.}XmlChildAccent1); + end + else begin + raise "Invalid assignment: Accent1 expects Clr2 or nil"; + end end; function ClrScheme.ReadXmlChildAccent2(): Clr2; @@ -3263,7 +3873,26 @@ begin {self.}XmlChildAccent2 := new Clr2(self, {self.}Prefix, "accent2"); container_.Set({self.}XmlChildAccent2); end - return {self.}XmlChildAccent2; + return {self.}XmlChildAccent2 and not {self.}XmlChildAccent2.Removed ? {self.}XmlChildAccent2 : fallback_.Accent2; +end; + +function ClrScheme.WriteXmlChildAccent2(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAccent2) then + {self.}RemoveChild({self.}XmlChildAccent2); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildAccent2 := v; + container_.Set({self.}XmlChildAccent2); + end + else begin + raise "Invalid assignment: Accent2 expects Clr2 or nil"; + end end; function ClrScheme.ReadXmlChildAccent3(): Clr2; @@ -3273,7 +3902,26 @@ begin {self.}XmlChildAccent3 := new Clr2(self, {self.}Prefix, "accent3"); container_.Set({self.}XmlChildAccent3); end - return {self.}XmlChildAccent3; + return {self.}XmlChildAccent3 and not {self.}XmlChildAccent3.Removed ? {self.}XmlChildAccent3 : fallback_.Accent3; +end; + +function ClrScheme.WriteXmlChildAccent3(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAccent3) then + {self.}RemoveChild({self.}XmlChildAccent3); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildAccent3 := v; + container_.Set({self.}XmlChildAccent3); + end + else begin + raise "Invalid assignment: Accent3 expects Clr2 or nil"; + end end; function ClrScheme.ReadXmlChildAccent4(): Clr2; @@ -3283,7 +3931,26 @@ begin {self.}XmlChildAccent4 := new Clr2(self, {self.}Prefix, "accent4"); container_.Set({self.}XmlChildAccent4); end - return {self.}XmlChildAccent4; + return {self.}XmlChildAccent4 and not {self.}XmlChildAccent4.Removed ? {self.}XmlChildAccent4 : fallback_.Accent4; +end; + +function ClrScheme.WriteXmlChildAccent4(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAccent4) then + {self.}RemoveChild({self.}XmlChildAccent4); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildAccent4 := v; + container_.Set({self.}XmlChildAccent4); + end + else begin + raise "Invalid assignment: Accent4 expects Clr2 or nil"; + end end; function ClrScheme.ReadXmlChildAccent5(): Clr2; @@ -3293,7 +3960,26 @@ begin {self.}XmlChildAccent5 := new Clr2(self, {self.}Prefix, "accent5"); container_.Set({self.}XmlChildAccent5); end - return {self.}XmlChildAccent5; + return {self.}XmlChildAccent5 and not {self.}XmlChildAccent5.Removed ? {self.}XmlChildAccent5 : fallback_.Accent5; +end; + +function ClrScheme.WriteXmlChildAccent5(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAccent5) then + {self.}RemoveChild({self.}XmlChildAccent5); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildAccent5 := v; + container_.Set({self.}XmlChildAccent5); + end + else begin + raise "Invalid assignment: Accent5 expects Clr2 or nil"; + end end; function ClrScheme.ReadXmlChildAccent6(): Clr2; @@ -3303,7 +3989,26 @@ begin {self.}XmlChildAccent6 := new Clr2(self, {self.}Prefix, "accent6"); container_.Set({self.}XmlChildAccent6); end - return {self.}XmlChildAccent6; + return {self.}XmlChildAccent6 and not {self.}XmlChildAccent6.Removed ? {self.}XmlChildAccent6 : fallback_.Accent6; +end; + +function ClrScheme.WriteXmlChildAccent6(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAccent6) then + {self.}RemoveChild({self.}XmlChildAccent6); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildAccent6 := v; + container_.Set({self.}XmlChildAccent6); + end + else begin + raise "Invalid assignment: Accent6 expects Clr2 or nil"; + end end; function ClrScheme.ReadXmlChildHlink(): Clr2; @@ -3313,7 +4018,26 @@ begin {self.}XmlChildHlink := new Clr2(self, {self.}Prefix, "hlink"); container_.Set({self.}XmlChildHlink); end - return {self.}XmlChildHlink; + return {self.}XmlChildHlink and not {self.}XmlChildHlink.Removed ? {self.}XmlChildHlink : fallback_.Hlink; +end; + +function ClrScheme.WriteXmlChildHlink(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildHlink) then + {self.}RemoveChild({self.}XmlChildHlink); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildHlink := v; + container_.Set({self.}XmlChildHlink); + end + else begin + raise "Invalid assignment: Hlink expects Clr2 or nil"; + end end; function ClrScheme.ReadXmlChildFolHlink(): Clr2; @@ -3323,23 +4047,42 @@ begin {self.}XmlChildFolHlink := new Clr2(self, {self.}Prefix, "folHlink"); container_.Set({self.}XmlChildFolHlink); end - return {self.}XmlChildFolHlink; + return {self.}XmlChildFolHlink and not {self.}XmlChildFolHlink.Removed ? {self.}XmlChildFolHlink : fallback_.FolHlink; end; -function Clr1.Create();overload; +function ClrScheme.WriteXmlChildFolHlink(_p1: any; _p2: any); begin - {self.}Create(nil, "a", ""); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFolHlink) then + {self.}RemoveChild({self.}XmlChildFolHlink); + end + else if v is class(Clr2) then + begin + v.Parent := self; + {self.}XmlChildFolHlink := v; + container_.Set({self.}XmlChildFolHlink); + end + else begin + raise "Invalid assignment: FolHlink expects Clr2 or nil"; + end end; -function Clr1.Create(_node: XmlNode);overload; +function Clr1.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", ""); end; -function Clr1.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Clr1.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Clr1.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Clr1.Init();override; @@ -3358,12 +4101,27 @@ function Clr1.Copy(_obj: Clr1);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSysClr) then {self.}SysClr.Copy(_obj.XmlChildSysClr); tslassigning := tslassigning_backup; end; +function Clr1.Clone(): Clr1;override; +begin + obj := new Clr1(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sysClr": obj.SysClr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Clr1.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSysClr) then @@ -3377,23 +4135,42 @@ begin {self.}XmlChildSysClr := new SysClr(self, {self.}Prefix, "sysClr"); container_.Set({self.}XmlChildSysClr); end - return {self.}XmlChildSysClr; + return {self.}XmlChildSysClr and not {self.}XmlChildSysClr.Removed ? {self.}XmlChildSysClr : fallback_.SysClr; end; -function SysClr.Create();overload; +function Clr1.WriteXmlChildSysClr(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "sysClr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSysClr) then + {self.}RemoveChild({self.}XmlChildSysClr); + end + else if v is class(SysClr) then + begin + v.Parent := self; + {self.}XmlChildSysClr := v; + container_.Set({self.}XmlChildSysClr); + end + else begin + raise "Invalid assignment: SysClr expects SysClr or nil"; + end end; -function SysClr.Create(_node: XmlNode);overload; +function SysClr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "sysClr"); end; -function SysClr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SysClr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SysClr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SysClr.Init();override; @@ -3413,7 +4190,7 @@ function SysClr.Copy(_obj: SysClr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.LastClr) then @@ -3421,6 +4198,16 @@ begin tslassigning := tslassigning_backup; end; +function SysClr.Clone(): SysClr;override; +begin + obj := new SysClr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + if not ifnil({self.}LastClr) then + obj.LastClr := {self.}LastClr; + return obj; +end; + function SysClr.ConvertToPoint();override; begin @@ -3428,48 +4215,48 @@ end; function SysClr.ReadXmlAttrVal(); begin - return {self.}XmlAttrVal.Value; + return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; end; -function SysClr.WriteXmlAttrVal(_value); +function SysClr.WriteXmlAttrVal(_value: any); begin if ifnil({self.}XmlAttrVal) then begin {self.}XmlAttrVal := new OpenXmlAttribute("", "val", nil); - attributes_[length(attributes_)] := {self.}XmlAttrVal; + attributes_["val"] := {self.}XmlAttrVal; end {self.}XmlAttrVal.Value := _value; end; function SysClr.ReadXmlAttrLastClr(); begin - return {self.}XmlAttrLastClr.Value; + return ifnil({self.}XmlAttrLastClr.Value) ? fallback_.XmlAttrLastClr.Value : {self.}XmlAttrLastClr.Value; end; -function SysClr.WriteXmlAttrLastClr(_value); +function SysClr.WriteXmlAttrLastClr(_value: any); begin if ifnil({self.}XmlAttrLastClr) then begin {self.}XmlAttrLastClr := new OpenXmlAttribute("", "LastClr", nil); - attributes_[length(attributes_)] := {self.}XmlAttrLastClr; + attributes_["LastClr"] := {self.}XmlAttrLastClr; end {self.}XmlAttrLastClr.Value := _value; end; -function Clr2.Create();overload; +function Clr2.create();overload; begin - {self.}Create(nil, "a", ""); + {self.}create(nil, "a", ""); end; -function Clr2.Create(_node: XmlNode);overload; +function Clr2.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Clr2.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Clr2.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Clr2.Init();override; @@ -3488,12 +4275,27 @@ function Clr2.Copy(_obj: Clr2);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSrgbClr) then {self.}SrgbClr.Copy(_obj.XmlChildSrgbClr); tslassigning := tslassigning_backup; end; +function Clr2.Clone(): Clr2;override; +begin + obj := new Clr2(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "srgbClr": obj.SrgbClr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Clr2.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSrgbClr) then @@ -3507,23 +4309,42 @@ begin {self.}XmlChildSrgbClr := new SrgbClr(self, {self.}Prefix, "srgbClr"); container_.Set({self.}XmlChildSrgbClr); end - return {self.}XmlChildSrgbClr; + return {self.}XmlChildSrgbClr and not {self.}XmlChildSrgbClr.Removed ? {self.}XmlChildSrgbClr : fallback_.SrgbClr; end; -function SrgbClr.Create();overload; +function Clr2.WriteXmlChildSrgbClr(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "srgbClr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSrgbClr) then + {self.}RemoveChild({self.}XmlChildSrgbClr); + end + else if v is class(SrgbClr) then + begin + v.Parent := self; + {self.}XmlChildSrgbClr := v; + container_.Set({self.}XmlChildSrgbClr); + end + else begin + raise "Invalid assignment: SrgbClr expects SrgbClr or nil"; + end end; -function SrgbClr.Create(_node: XmlNode);overload; +function SrgbClr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "srgbClr"); end; -function SrgbClr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SrgbClr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SrgbClr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SrgbClr.Init();override; @@ -3543,7 +4364,7 @@ function SrgbClr.Copy(_obj: SrgbClr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.XmlChildAlpha) then @@ -3551,6 +4372,23 @@ begin tslassigning := tslassigning_backup; end; +function SrgbClr.Clone(): SrgbClr;override; +begin + obj := new SrgbClr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "aplha": obj.Alpha := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SrgbClr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildAlpha) then @@ -3559,15 +4397,15 @@ end; function SrgbClr.ReadXmlAttrVal(); begin - return {self.}XmlAttrVal.Value; + return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; end; -function SrgbClr.WriteXmlAttrVal(_value); +function SrgbClr.WriteXmlAttrVal(_value: any); begin if ifnil({self.}XmlAttrVal) then begin {self.}XmlAttrVal := new OpenXmlAttribute("", "val", nil); - attributes_[length(attributes_)] := {self.}XmlAttrVal; + attributes_["val"] := {self.}XmlAttrVal; end {self.}XmlAttrVal.Value := _value; end; @@ -3579,23 +4417,42 @@ begin {self.}XmlChildAlpha := new PureVal(self, {self.}Prefix, "aplha"); container_.Set({self.}XmlChildAlpha); end - return {self.}XmlChildAlpha; + return {self.}XmlChildAlpha and not {self.}XmlChildAlpha.Removed ? {self.}XmlChildAlpha : fallback_.Alpha; end; -function PureVal.Create();overload; +function SrgbClr.WriteXmlChildAlpha(_p1: any; _p2: any); begin - {self.}Create(nil, "", ""); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAlpha) then + {self.}RemoveChild({self.}XmlChildAlpha); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildAlpha := v; + container_.Set({self.}XmlChildAlpha); + end + else begin + raise "Invalid assignment: Alpha expects PureVal or nil"; + end end; -function PureVal.Create(_node: XmlNode);overload; +function PureVal.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "", ""); end; -function PureVal.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PureVal.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function PureVal.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PureVal.Init();override; @@ -3614,12 +4471,20 @@ function PureVal.Copy(_obj: PureVal);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; tslassigning := tslassigning_backup; end; +function PureVal.Clone(): PureVal;override; +begin + obj := new PureVal(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function PureVal.ConvertToPoint();override; begin @@ -3627,33 +4492,33 @@ end; function PureVal.ReadXmlAttrVal(); begin - return {self.}XmlAttrVal.Value; + return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; end; -function PureVal.WriteXmlAttrVal(_value); +function PureVal.WriteXmlAttrVal(_value: any); begin if ifnil({self.}XmlAttrVal) then begin {self.}XmlAttrVal := new OpenXmlAttribute("", "val", nil); - attributes_[length(attributes_)] := {self.}XmlAttrVal; + attributes_["val"] := {self.}XmlAttrVal; end {self.}XmlAttrVal.Value := _value; end; -function FontScheme.Create();overload; +function FontScheme.create();overload; begin - {self.}Create(nil, "a", "fontScheme"); + {self.}create(nil, "a", "fontScheme"); end; -function FontScheme.Create(_node: XmlNode);overload; +function FontScheme.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function FontScheme.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FontScheme.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FontScheme.Init();override; @@ -3674,7 +4539,7 @@ function FontScheme.Copy(_obj: FontScheme);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.XmlChildMajorfont) then @@ -3684,6 +4549,24 @@ begin tslassigning := tslassigning_backup; end; +function FontScheme.Clone(): FontScheme;override; +begin + obj := new FontScheme(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "majorFont": obj.Majorfont := element.Clone(); + pre + "minorFont": obj.Minorfont := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function FontScheme.ConvertToPoint();override; begin if not ifnil({self.}XmlChildMajorfont) then @@ -3694,15 +4577,15 @@ end; function FontScheme.ReadXmlAttrName(); begin - return {self.}XmlAttrName.Value; + return ifnil({self.}XmlAttrName.Value) ? fallback_.XmlAttrName.Value : {self.}XmlAttrName.Value; end; -function FontScheme.WriteXmlAttrName(_value); +function FontScheme.WriteXmlAttrName(_value: any); begin if ifnil({self.}XmlAttrName) then begin {self.}XmlAttrName := new OpenXmlAttribute("", "name", nil); - attributes_[length(attributes_)] := {self.}XmlAttrName; + attributes_["name"] := {self.}XmlAttrName; end {self.}XmlAttrName.Value := _value; end; @@ -3714,7 +4597,26 @@ begin {self.}XmlChildMajorfont := new Mfont(self, {self.}Prefix, "majorFont"); container_.Set({self.}XmlChildMajorfont); end - return {self.}XmlChildMajorfont; + return {self.}XmlChildMajorfont and not {self.}XmlChildMajorfont.Removed ? {self.}XmlChildMajorfont : fallback_.Majorfont; +end; + +function FontScheme.WriteXmlChildMajorfont(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildMajorfont) then + {self.}RemoveChild({self.}XmlChildMajorfont); + end + else if v is class(Mfont) then + begin + v.Parent := self; + {self.}XmlChildMajorfont := v; + container_.Set({self.}XmlChildMajorfont); + end + else begin + raise "Invalid assignment: Majorfont expects Mfont or nil"; + end end; function FontScheme.ReadXmlChildMinorfont(): Mfont; @@ -3724,23 +4626,42 @@ begin {self.}XmlChildMinorfont := new Mfont(self, {self.}Prefix, "minorFont"); container_.Set({self.}XmlChildMinorfont); end - return {self.}XmlChildMinorfont; + return {self.}XmlChildMinorfont and not {self.}XmlChildMinorfont.Removed ? {self.}XmlChildMinorfont : fallback_.Minorfont; end; -function MFont.Create();overload; +function FontScheme.WriteXmlChildMinorfont(_p1: any; _p2: any); begin - {self.}Create(nil, "a", ""); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildMinorfont) then + {self.}RemoveChild({self.}XmlChildMinorfont); + end + else if v is class(Mfont) then + begin + v.Parent := self; + {self.}XmlChildMinorfont := v; + container_.Set({self.}XmlChildMinorfont); + end + else begin + raise "Invalid assignment: Minorfont expects Mfont or nil"; + end end; -function MFont.Create(_node: XmlNode);overload; +function MFont.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", ""); end; -function MFont.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function MFont.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function MFont.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function MFont.Init();override; @@ -3762,7 +4683,7 @@ function MFont.Copy(_obj: MFont);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildLatin) then {self.}Latin.Copy(_obj.XmlChildLatin); if not ifnil(_obj.XmlChildEa) then @@ -3772,6 +4693,23 @@ begin tslassigning := tslassigning_backup; end; +function MFont.Clone(): MFont;override; +begin + obj := new MFont(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "latin": obj.Latin := element.Clone(); + pre + "ea": obj.Ea := element.Clone(); + pre + "cs": obj.Cs := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function MFont.ConvertToPoint();override; begin if not ifnil({self.}XmlChildLatin) then @@ -3792,7 +4730,26 @@ begin {self.}XmlChildLatin := new Latin(self, {self.}Prefix, "latin"); container_.Set({self.}XmlChildLatin); end - return {self.}XmlChildLatin; + return {self.}XmlChildLatin and not {self.}XmlChildLatin.Removed ? {self.}XmlChildLatin : fallback_.Latin; +end; + +function MFont.WriteXmlChildLatin(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLatin) then + {self.}RemoveChild({self.}XmlChildLatin); + end + else if v is class(Latin) then + begin + v.Parent := self; + {self.}XmlChildLatin := v; + container_.Set({self.}XmlChildLatin); + end + else begin + raise "Invalid assignment: Latin expects Latin or nil"; + end end; function MFont.ReadXmlChildEa(): Latin; @@ -3802,7 +4759,26 @@ begin {self.}XmlChildEa := new Latin(self, {self.}Prefix, "ea"); container_.Set({self.}XmlChildEa); end - return {self.}XmlChildEa; + return {self.}XmlChildEa and not {self.}XmlChildEa.Removed ? {self.}XmlChildEa : fallback_.Ea; +end; + +function MFont.WriteXmlChildEa(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEa) then + {self.}RemoveChild({self.}XmlChildEa); + end + else if v is class(Latin) then + begin + v.Parent := self; + {self.}XmlChildEa := v; + container_.Set({self.}XmlChildEa); + end + else begin + raise "Invalid assignment: Ea expects Latin or nil"; + end end; function MFont.ReadXmlChildCs(): Latin; @@ -3812,19 +4788,58 @@ begin {self.}XmlChildCs := new Latin(self, {self.}Prefix, "cs"); container_.Set({self.}XmlChildCs); end - return {self.}XmlChildCs; + return {self.}XmlChildCs and not {self.}XmlChildCs.Removed ? {self.}XmlChildCs : fallback_.Cs; end; -function MFont.ReadFonts(_index); +function MFont.WriteXmlChildCs(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCs) then + {self.}RemoveChild({self.}XmlChildCs); + end + else if v is class(Latin) then + begin + v.Parent := self; + {self.}XmlChildCs := v; + container_.Set({self.}XmlChildCs); + end + else begin + raise "Invalid assignment: Cs expects Latin or nil"; + end +end; + +function MFont.ReadFonts(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "font", ind); end; +function MFont.WriteFonts(_index: integer; _value: nil_OR_Font); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFonts(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "font", ind, _value) then + raise format("Index out of range: Fonts[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Fonts expects nil or Font"; + end +end; + function MFont.AddFont(): Font; begin obj := new Font(self, {self.}Prefix, "font"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -3832,24 +4847,25 @@ end; function MFont.AppendFont(): Font; begin obj := new Font(self, {self.}Prefix, "font"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Font.Create();overload; +function Font.create();overload; begin - {self.}Create(nil, "a", "font"); + {self.}create(nil, "a", "font"); end; -function Font.Create(_node: XmlNode);overload; +function Font.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Font.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Font.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Font.Init();override; @@ -3869,7 +4885,7 @@ function Font.Copy(_obj: Font);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Script) then {self.}Script := _obj.Script; if not ifnil(_obj.Typeface) then @@ -3877,6 +4893,16 @@ begin tslassigning := tslassigning_backup; end; +function Font.Clone(): Font;override; +begin + obj := new Font(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Script) then + obj.Script := {self.}Script; + if not ifnil({self.}Typeface) then + obj.Typeface := {self.}Typeface; + return obj; +end; + function Font.ConvertToPoint();override; begin @@ -3884,48 +4910,48 @@ end; function Font.ReadXmlAttrScript(); begin - return {self.}XmlAttrScript.Value; + return ifnil({self.}XmlAttrScript.Value) ? fallback_.XmlAttrScript.Value : {self.}XmlAttrScript.Value; end; -function Font.WriteXmlAttrScript(_value); +function Font.WriteXmlAttrScript(_value: any); begin if ifnil({self.}XmlAttrScript) then begin {self.}XmlAttrScript := new OpenXmlAttribute("", "script", nil); - attributes_[length(attributes_)] := {self.}XmlAttrScript; + attributes_["script"] := {self.}XmlAttrScript; end {self.}XmlAttrScript.Value := _value; end; function Font.ReadXmlAttrTypeface(); begin - return {self.}XmlAttrTypeface.Value; + return ifnil({self.}XmlAttrTypeface.Value) ? fallback_.XmlAttrTypeface.Value : {self.}XmlAttrTypeface.Value; end; -function Font.WriteXmlAttrTypeface(_value); +function Font.WriteXmlAttrTypeface(_value: any); begin if ifnil({self.}XmlAttrTypeface) then begin {self.}XmlAttrTypeface := new OpenXmlAttribute("", "typeface", nil); - attributes_[length(attributes_)] := {self.}XmlAttrTypeface; + attributes_["typeface"] := {self.}XmlAttrTypeface; end {self.}XmlAttrTypeface.Value := _value; end; -function FmtScheme.Create();overload; +function FmtScheme.create();overload; begin - {self.}Create(nil, "a", "fmtScheme"); + {self.}create(nil, "a", "fmtScheme"); end; -function FmtScheme.Create(_node: XmlNode);overload; +function FmtScheme.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function FmtScheme.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FmtScheme.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FmtScheme.Init();override; @@ -3948,7 +4974,7 @@ function FmtScheme.Copy(_obj: FmtScheme);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.XmlChildFillStyleLst) then @@ -3962,6 +4988,26 @@ begin tslassigning := tslassigning_backup; end; +function FmtScheme.Clone(): FmtScheme;override; +begin + obj := new FmtScheme(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "fillStyleLst": obj.FillStyleLst := element.Clone(); + pre + "lnStyleLst": obj.LnStyleLst := element.Clone(); + pre + "effectStyleLst": obj.EffectStyleLst := element.Clone(); + pre + "bgFillStyleLst": obj.BgFillStyleLst := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function FmtScheme.ConvertToPoint();override; begin if not ifnil({self.}XmlChildFillStyleLst) then @@ -3976,15 +5022,15 @@ end; function FmtScheme.ReadXmlAttrName(); begin - return {self.}XmlAttrName.Value; + return ifnil({self.}XmlAttrName.Value) ? fallback_.XmlAttrName.Value : {self.}XmlAttrName.Value; end; -function FmtScheme.WriteXmlAttrName(_value); +function FmtScheme.WriteXmlAttrName(_value: any); begin if ifnil({self.}XmlAttrName) then begin {self.}XmlAttrName := new OpenXmlAttribute("", "name", nil); - attributes_[length(attributes_)] := {self.}XmlAttrName; + attributes_["name"] := {self.}XmlAttrName; end {self.}XmlAttrName.Value := _value; end; @@ -3996,7 +5042,26 @@ begin {self.}XmlChildFillStyleLst := new FillStyleLst(self, {self.}Prefix, "fillStyleLst"); container_.Set({self.}XmlChildFillStyleLst); end - return {self.}XmlChildFillStyleLst; + return {self.}XmlChildFillStyleLst and not {self.}XmlChildFillStyleLst.Removed ? {self.}XmlChildFillStyleLst : fallback_.FillStyleLst; +end; + +function FmtScheme.WriteXmlChildFillStyleLst(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFillStyleLst) then + {self.}RemoveChild({self.}XmlChildFillStyleLst); + end + else if v is class(FillStyleLst) then + begin + v.Parent := self; + {self.}XmlChildFillStyleLst := v; + container_.Set({self.}XmlChildFillStyleLst); + end + else begin + raise "Invalid assignment: FillStyleLst expects FillStyleLst or nil"; + end end; function FmtScheme.ReadXmlChildLnStyleLst(): LnStyleLst; @@ -4006,7 +5071,26 @@ begin {self.}XmlChildLnStyleLst := new LnStyleLst(self, {self.}Prefix, "lnStyleLst"); container_.Set({self.}XmlChildLnStyleLst); end - return {self.}XmlChildLnStyleLst; + return {self.}XmlChildLnStyleLst and not {self.}XmlChildLnStyleLst.Removed ? {self.}XmlChildLnStyleLst : fallback_.LnStyleLst; +end; + +function FmtScheme.WriteXmlChildLnStyleLst(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLnStyleLst) then + {self.}RemoveChild({self.}XmlChildLnStyleLst); + end + else if v is class(LnStyleLst) then + begin + v.Parent := self; + {self.}XmlChildLnStyleLst := v; + container_.Set({self.}XmlChildLnStyleLst); + end + else begin + raise "Invalid assignment: LnStyleLst expects LnStyleLst or nil"; + end end; function FmtScheme.ReadXmlChildEffectStyleLst(): EffectStyleLst; @@ -4016,7 +5100,26 @@ begin {self.}XmlChildEffectStyleLst := new EffectStyleLst(self, {self.}Prefix, "effectStyleLst"); container_.Set({self.}XmlChildEffectStyleLst); end - return {self.}XmlChildEffectStyleLst; + return {self.}XmlChildEffectStyleLst and not {self.}XmlChildEffectStyleLst.Removed ? {self.}XmlChildEffectStyleLst : fallback_.EffectStyleLst; +end; + +function FmtScheme.WriteXmlChildEffectStyleLst(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEffectStyleLst) then + {self.}RemoveChild({self.}XmlChildEffectStyleLst); + end + else if v is class(EffectStyleLst) then + begin + v.Parent := self; + {self.}XmlChildEffectStyleLst := v; + container_.Set({self.}XmlChildEffectStyleLst); + end + else begin + raise "Invalid assignment: EffectStyleLst expects EffectStyleLst or nil"; + end end; function FmtScheme.ReadXmlChildBgFillStyleLst(): FillStyleLst; @@ -4026,23 +5129,42 @@ begin {self.}XmlChildBgFillStyleLst := new FillStyleLst(self, {self.}Prefix, "bgFillStyleLst"); container_.Set({self.}XmlChildBgFillStyleLst); end - return {self.}XmlChildBgFillStyleLst; + return {self.}XmlChildBgFillStyleLst and not {self.}XmlChildBgFillStyleLst.Removed ? {self.}XmlChildBgFillStyleLst : fallback_.BgFillStyleLst; end; -function FillStyleLst.Create();overload; +function FmtScheme.WriteXmlChildBgFillStyleLst(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "fillStyleLst"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBgFillStyleLst) then + {self.}RemoveChild({self.}XmlChildBgFillStyleLst); + end + else if v is class(FillStyleLst) then + begin + v.Parent := self; + {self.}XmlChildBgFillStyleLst := v; + container_.Set({self.}XmlChildBgFillStyleLst); + end + else begin + raise "Invalid assignment: BgFillStyleLst expects FillStyleLst or nil"; + end end; -function FillStyleLst.Create(_node: XmlNode);overload; +function FillStyleLst.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "fillStyleLst"); end; -function FillStyleLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FillStyleLst.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function FillStyleLst.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FillStyleLst.Init();override; @@ -4062,10 +5184,19 @@ function FillStyleLst.Copy(_obj: FillStyleLst);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function FillStyleLst.Clone(): FillStyleLst;override; +begin + obj := new FillStyleLst(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function FillStyleLst.ConvertToPoint();override; begin elems := {self.}SolidFills(); @@ -4076,23 +5207,62 @@ begin elem.ConvertToPoint(); end; -function FillStyleLst.ReadSolidFills(_index); +function FillStyleLst.ReadSolidFills(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "solidFill", ind); end; -function FillStyleLst.ReadGradFills(_index); +function FillStyleLst.WriteSolidFills(_index: integer; _value: nil_OR_SolidFill); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSolidFills(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "solidFill", ind, _value) then + raise format("Index out of range: SolidFills[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SolidFills expects nil or SolidFill"; + end +end; + +function FillStyleLst.ReadGradFills(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "gradFill", ind); end; +function FillStyleLst.WriteGradFills(_index: integer; _value: nil_OR_GradFill); +begin + if ifnil(_value) then + begin + obj := {self.}ReadGradFills(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "gradFill", ind, _value) then + raise format("Index out of range: GradFills[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: GradFills expects nil or GradFill"; + end +end; + function FillStyleLst.AddSolidFill(): SolidFill; begin obj := new SolidFill(self, {self.}Prefix, "solidFill"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4100,6 +5270,7 @@ end; function FillStyleLst.AddGradFill(): GradFill; begin obj := new GradFill(self, {self.}Prefix, "gradFill"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4107,6 +5278,7 @@ end; function FillStyleLst.AppendSolidFill(): SolidFill; begin obj := new SolidFill(self, {self.}Prefix, "solidFill"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4114,24 +5286,25 @@ end; function FillStyleLst.AppendGradFill(): GradFill; begin obj := new GradFill(self, {self.}Prefix, "gradFill"); + obj.Enable := true; container_.Append(obj); return obj; end; -function SolidFill.Create();overload; +function SolidFill.create();overload; begin - {self.}Create(nil, "a", "solidFill"); + {self.}create(nil, "a", "solidFill"); end; -function SolidFill.Create(_node: XmlNode);overload; +function SolidFill.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function SolidFill.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SolidFill.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SolidFill.Init();override; @@ -4150,12 +5323,27 @@ function SolidFill.Copy(_obj: SolidFill);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSchemeClr) then {self.}SchemeClr.Copy(_obj.XmlChildSchemeClr); tslassigning := tslassigning_backup; end; +function SolidFill.Clone(): SolidFill;override; +begin + obj := new SolidFill(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "schemeClr": obj.SchemeClr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SolidFill.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSchemeClr) then @@ -4169,23 +5357,42 @@ begin {self.}XmlChildSchemeClr := new SchemeClr(self, {self.}Prefix, "schemeClr"); container_.Set({self.}XmlChildSchemeClr); end - return {self.}XmlChildSchemeClr; + return {self.}XmlChildSchemeClr and not {self.}XmlChildSchemeClr.Removed ? {self.}XmlChildSchemeClr : fallback_.SchemeClr; end; -function SchemeClr.Create();overload; +function SolidFill.WriteXmlChildSchemeClr(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "schemeClr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSchemeClr) then + {self.}RemoveChild({self.}XmlChildSchemeClr); + end + else if v is class(SchemeClr) then + begin + v.Parent := self; + {self.}XmlChildSchemeClr := v; + container_.Set({self.}XmlChildSchemeClr); + end + else begin + raise "Invalid assignment: SchemeClr expects SchemeClr or nil"; + end end; -function SchemeClr.Create(_node: XmlNode);overload; +function SchemeClr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "schemeClr"); end; -function SchemeClr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SchemeClr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SchemeClr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SchemeClr.Init();override; @@ -4207,7 +5414,7 @@ function SchemeClr.Copy(_obj: SchemeClr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; if not ifnil(_obj.XmlChildLumMod) then @@ -4219,6 +5426,25 @@ begin tslassigning := tslassigning_backup; end; +function SchemeClr.Clone(): SchemeClr;override; +begin + obj := new SchemeClr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "lumMod": obj.LumMod := element.Clone(); + pre + "satMod": obj.SatMod := element.Clone(); + pre + "tint": obj.Tint := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SchemeClr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildLumMod) then @@ -4231,15 +5457,15 @@ end; function SchemeClr.ReadXmlAttrVal(); begin - return {self.}XmlAttrVal.Value; + return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; end; -function SchemeClr.WriteXmlAttrVal(_value); +function SchemeClr.WriteXmlAttrVal(_value: any); begin if ifnil({self.}XmlAttrVal) then begin {self.}XmlAttrVal := new OpenXmlAttribute("", "val", nil); - attributes_[length(attributes_)] := {self.}XmlAttrVal; + attributes_["val"] := {self.}XmlAttrVal; end {self.}XmlAttrVal.Value := _value; end; @@ -4251,7 +5477,26 @@ begin {self.}XmlChildLumMod := new PureVal(self, {self.}Prefix, "lumMod"); container_.Set({self.}XmlChildLumMod); end - return {self.}XmlChildLumMod; + return {self.}XmlChildLumMod and not {self.}XmlChildLumMod.Removed ? {self.}XmlChildLumMod : fallback_.LumMod; +end; + +function SchemeClr.WriteXmlChildLumMod(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLumMod) then + {self.}RemoveChild({self.}XmlChildLumMod); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildLumMod := v; + container_.Set({self.}XmlChildLumMod); + end + else begin + raise "Invalid assignment: LumMod expects PureVal or nil"; + end end; function SchemeClr.ReadXmlChildSatMod(): PureVal; @@ -4261,7 +5506,26 @@ begin {self.}XmlChildSatMod := new PureVal(self, {self.}Prefix, "satMod"); container_.Set({self.}XmlChildSatMod); end - return {self.}XmlChildSatMod; + return {self.}XmlChildSatMod and not {self.}XmlChildSatMod.Removed ? {self.}XmlChildSatMod : fallback_.SatMod; +end; + +function SchemeClr.WriteXmlChildSatMod(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSatMod) then + {self.}RemoveChild({self.}XmlChildSatMod); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildSatMod := v; + container_.Set({self.}XmlChildSatMod); + end + else begin + raise "Invalid assignment: SatMod expects PureVal or nil"; + end end; function SchemeClr.ReadXmlChildTint(): PureVal; @@ -4271,23 +5535,42 @@ begin {self.}XmlChildTint := new PureVal(self, {self.}Prefix, "tint"); container_.Set({self.}XmlChildTint); end - return {self.}XmlChildTint; + return {self.}XmlChildTint and not {self.}XmlChildTint.Removed ? {self.}XmlChildTint : fallback_.Tint; end; -function GradFill.Create();overload; +function SchemeClr.WriteXmlChildTint(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "gradFill"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTint) then + {self.}RemoveChild({self.}XmlChildTint); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildTint := v; + container_.Set({self.}XmlChildTint); + end + else begin + raise "Invalid assignment: Tint expects PureVal or nil"; + end end; -function GradFill.Create(_node: XmlNode);overload; +function GradFill.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "gradFill"); end; -function GradFill.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function GradFill.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function GradFill.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function GradFill.Init();override; @@ -4308,7 +5591,7 @@ function GradFill.Copy(_obj: GradFill);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.RotWithShape) then {self.}RotWithShape := _obj.RotWithShape; if not ifnil(_obj.XmlChildGsLst) then @@ -4318,6 +5601,24 @@ begin tslassigning := tslassigning_backup; end; +function GradFill.Clone(): GradFill;override; +begin + obj := new GradFill(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}RotWithShape) then + obj.RotWithShape := {self.}RotWithShape; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "gsLst": obj.GsLst := element.Clone(); + pre + "lin": obj.Lin := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function GradFill.ConvertToPoint();override; begin if not ifnil({self.}XmlChildGsLst) then @@ -4328,15 +5629,15 @@ end; function GradFill.ReadXmlAttrRotWithShape(); begin - return {self.}XmlAttrRotWithShape.Value; + return ifnil({self.}XmlAttrRotWithShape.Value) ? fallback_.XmlAttrRotWithShape.Value : {self.}XmlAttrRotWithShape.Value; end; -function GradFill.WriteXmlAttrRotWithShape(_value); +function GradFill.WriteXmlAttrRotWithShape(_value: any); begin if ifnil({self.}XmlAttrRotWithShape) then begin {self.}XmlAttrRotWithShape := new OpenXmlAttribute("", "rotWithShape", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRotWithShape; + attributes_["rotWithShape"] := {self.}XmlAttrRotWithShape; end {self.}XmlAttrRotWithShape.Value := _value; end; @@ -4348,7 +5649,26 @@ begin {self.}XmlChildGsLst := new GsLst(self, {self.}Prefix, "gsLst"); container_.Set({self.}XmlChildGsLst); end - return {self.}XmlChildGsLst; + return {self.}XmlChildGsLst and not {self.}XmlChildGsLst.Removed ? {self.}XmlChildGsLst : fallback_.GsLst; +end; + +function GradFill.WriteXmlChildGsLst(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildGsLst) then + {self.}RemoveChild({self.}XmlChildGsLst); + end + else if v is class(GsLst) then + begin + v.Parent := self; + {self.}XmlChildGsLst := v; + container_.Set({self.}XmlChildGsLst); + end + else begin + raise "Invalid assignment: GsLst expects GsLst or nil"; + end end; function GradFill.ReadXmlChildLin(): Lin; @@ -4358,23 +5678,42 @@ begin {self.}XmlChildLin := new Lin(self, {self.}Prefix, "lin"); container_.Set({self.}XmlChildLin); end - return {self.}XmlChildLin; + return {self.}XmlChildLin and not {self.}XmlChildLin.Removed ? {self.}XmlChildLin : fallback_.Lin; end; -function GsLst.Create();overload; +function GradFill.WriteXmlChildLin(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "gsLst"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLin) then + {self.}RemoveChild({self.}XmlChildLin); + end + else if v is class(Lin) then + begin + v.Parent := self; + {self.}XmlChildLin := v; + container_.Set({self.}XmlChildLin); + end + else begin + raise "Invalid assignment: Lin expects Lin or nil"; + end end; -function GsLst.Create(_node: XmlNode);overload; +function GsLst.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "gsLst"); end; -function GsLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function GsLst.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function GsLst.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function GsLst.Init();override; @@ -4393,10 +5732,19 @@ function GsLst.Copy(_obj: GsLst);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function GsLst.Clone(): GsLst;override; +begin + obj := new GsLst(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function GsLst.ConvertToPoint();override; begin elems := {self.}Gses(); @@ -4404,16 +5752,36 @@ begin elem.ConvertToPoint(); end; -function GsLst.ReadGses(_index); +function GsLst.ReadGses(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "gs", ind); end; +function GsLst.WriteGses(_index: integer; _value: nil_OR_Gs); +begin + if ifnil(_value) then + begin + obj := {self.}ReadGses(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "gs", ind, _value) then + raise format("Index out of range: Gses[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Gses expects nil or Gs"; + end +end; + function GsLst.AddGs(): Gs; begin obj := new Gs(self, {self.}Prefix, "gs"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4421,24 +5789,25 @@ end; function GsLst.AppendGs(): Gs; begin obj := new Gs(self, {self.}Prefix, "gs"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Gs.Create();overload; +function Gs.create();overload; begin - {self.}Create(nil, "a", "gs"); + {self.}create(nil, "a", "gs"); end; -function Gs.Create(_node: XmlNode);overload; +function Gs.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Gs.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Gs.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Gs.Init();override; @@ -4458,7 +5827,7 @@ function Gs.Copy(_obj: Gs);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Pos) then {self.}Pos := _obj.Pos; if not ifnil(_obj.XmlChildSchemeClr) then @@ -4466,6 +5835,23 @@ begin tslassigning := tslassigning_backup; end; +function Gs.Clone(): Gs;override; +begin + obj := new Gs(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Pos) then + obj.Pos := {self.}Pos; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "schemeClr": obj.SchemeClr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Gs.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSchemeClr) then @@ -4474,15 +5860,15 @@ end; function Gs.ReadXmlAttrPos(); begin - return {self.}XmlAttrPos.Value; + return ifnil({self.}XmlAttrPos.Value) ? fallback_.XmlAttrPos.Value : {self.}XmlAttrPos.Value; end; -function Gs.WriteXmlAttrPos(_value); +function Gs.WriteXmlAttrPos(_value: any); begin if ifnil({self.}XmlAttrPos) then begin {self.}XmlAttrPos := new OpenXmlAttribute("", "pos", nil); - attributes_[length(attributes_)] := {self.}XmlAttrPos; + attributes_["pos"] := {self.}XmlAttrPos; end {self.}XmlAttrPos.Value := _value; end; @@ -4494,23 +5880,42 @@ begin {self.}XmlChildSchemeClr := new SchemeClr(self, {self.}Prefix, "schemeClr"); container_.Set({self.}XmlChildSchemeClr); end - return {self.}XmlChildSchemeClr; + return {self.}XmlChildSchemeClr and not {self.}XmlChildSchemeClr.Removed ? {self.}XmlChildSchemeClr : fallback_.SchemeClr; end; -function Lin.Create();overload; +function Gs.WriteXmlChildSchemeClr(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "lin"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSchemeClr) then + {self.}RemoveChild({self.}XmlChildSchemeClr); + end + else if v is class(SchemeClr) then + begin + v.Parent := self; + {self.}XmlChildSchemeClr := v; + container_.Set({self.}XmlChildSchemeClr); + end + else begin + raise "Invalid assignment: SchemeClr expects SchemeClr or nil"; + end end; -function Lin.Create(_node: XmlNode);overload; +function Lin.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "lin"); end; -function Lin.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Lin.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Lin.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Lin.Init();override; @@ -4530,7 +5935,7 @@ function Lin.Copy(_obj: Lin);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ang) then {self.}Ang := _obj.Ang; if not ifnil(_obj.Scaled) then @@ -4538,6 +5943,16 @@ begin tslassigning := tslassigning_backup; end; +function Lin.Clone(): Lin;override; +begin + obj := new Lin(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ang) then + obj.Ang := {self.}Ang; + if not ifnil({self.}Scaled) then + obj.Scaled := {self.}Scaled; + return obj; +end; + function Lin.ConvertToPoint();override; begin @@ -4545,48 +5960,48 @@ end; function Lin.ReadXmlAttrAng(); begin - return {self.}XmlAttrAng.Value; + return ifnil({self.}XmlAttrAng.Value) ? fallback_.XmlAttrAng.Value : {self.}XmlAttrAng.Value; end; -function Lin.WriteXmlAttrAng(_value); +function Lin.WriteXmlAttrAng(_value: any); begin if ifnil({self.}XmlAttrAng) then begin {self.}XmlAttrAng := new OpenXmlAttribute("", "ang", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAng; + attributes_["ang"] := {self.}XmlAttrAng; end {self.}XmlAttrAng.Value := _value; end; function Lin.ReadXmlAttrScaled(); begin - return {self.}XmlAttrScaled.Value; + return ifnil({self.}XmlAttrScaled.Value) ? fallback_.XmlAttrScaled.Value : {self.}XmlAttrScaled.Value; end; -function Lin.WriteXmlAttrScaled(_value); +function Lin.WriteXmlAttrScaled(_value: any); begin if ifnil({self.}XmlAttrScaled) then begin {self.}XmlAttrScaled := new OpenXmlAttribute("", "scaled", nil); - attributes_[length(attributes_)] := {self.}XmlAttrScaled; + attributes_["scaled"] := {self.}XmlAttrScaled; end {self.}XmlAttrScaled.Value := _value; end; -function LnStyleLst.Create();overload; +function LnStyleLst.create();overload; begin - {self.}Create(nil, "a", "lnStyleLst"); + {self.}create(nil, "a", "lnStyleLst"); end; -function LnStyleLst.Create(_node: XmlNode);overload; +function LnStyleLst.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function LnStyleLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function LnStyleLst.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function LnStyleLst.Init();override; @@ -4605,10 +6020,19 @@ function LnStyleLst.Copy(_obj: LnStyleLst);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function LnStyleLst.Clone(): LnStyleLst;override; +begin + obj := new LnStyleLst(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function LnStyleLst.ConvertToPoint();override; begin elems := {self.}Lns(); @@ -4616,16 +6040,36 @@ begin elem.ConvertToPoint(); end; -function LnStyleLst.ReadLns(_index); +function LnStyleLst.ReadLns(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "ln", ind); end; +function LnStyleLst.WriteLns(_index: integer; _value: nil_OR_Ln); +begin + if ifnil(_value) then + begin + obj := {self.}ReadLns(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "ln", ind, _value) then + raise format("Index out of range: Lns[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Lns expects nil or Ln"; + end +end; + function LnStyleLst.AddLn(): Ln; begin obj := new Ln(self, {self.}Prefix, "ln"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4633,24 +6077,25 @@ end; function LnStyleLst.AppendLn(): Ln; begin obj := new Ln(self, {self.}Prefix, "ln"); + obj.Enable := true; container_.Append(obj); return obj; end; -function EffectStyleLst.Create();overload; +function EffectStyleLst.create();overload; begin - {self.}Create(nil, "a", "effectStyleLst"); + {self.}create(nil, "a", "effectStyleLst"); end; -function EffectStyleLst.Create(_node: XmlNode);overload; +function EffectStyleLst.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function EffectStyleLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function EffectStyleLst.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function EffectStyleLst.Init();override; @@ -4669,10 +6114,19 @@ function EffectStyleLst.Copy(_obj: EffectStyleLst);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function EffectStyleLst.Clone(): EffectStyleLst;override; +begin + obj := new EffectStyleLst(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function EffectStyleLst.ConvertToPoint();override; begin elems := {self.}EffectStyles(); @@ -4680,16 +6134,36 @@ begin elem.ConvertToPoint(); end; -function EffectStyleLst.ReadEffectStyles(_index); +function EffectStyleLst.ReadEffectStyles(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "effectStyle", ind); end; +function EffectStyleLst.WriteEffectStyles(_index: integer; _value: nil_OR_EffectStyle); +begin + if ifnil(_value) then + begin + obj := {self.}ReadEffectStyles(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "effectStyle", ind, _value) then + raise format("Index out of range: EffectStyles[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: EffectStyles expects nil or EffectStyle"; + end +end; + function EffectStyleLst.AddEffectStyle(): EffectStyle; begin obj := new EffectStyle(self, {self.}Prefix, "effectStyle"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4697,24 +6171,25 @@ end; function EffectStyleLst.AppendEffectStyle(): EffectStyle; begin obj := new EffectStyle(self, {self.}Prefix, "effectStyle"); + obj.Enable := true; container_.Append(obj); return obj; end; -function EffectStyle.Create();overload; +function EffectStyle.create();overload; begin - {self.}Create(nil, "a", "effectStyle"); + {self.}create(nil, "a", "effectStyle"); end; -function EffectStyle.Create(_node: XmlNode);overload; +function EffectStyle.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function EffectStyle.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function EffectStyle.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function EffectStyle.Init();override; @@ -4733,12 +6208,27 @@ function EffectStyle.Copy(_obj: EffectStyle);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildEffectLst) then {self.}EffectLst.Copy(_obj.XmlChildEffectLst); tslassigning := tslassigning_backup; end; +function EffectStyle.Clone(): EffectStyle;override; +begin + obj := new EffectStyle(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "effectLst": obj.EffectLst := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function EffectStyle.ConvertToPoint();override; begin if not ifnil({self.}XmlChildEffectLst) then @@ -4752,23 +6242,42 @@ begin {self.}XmlChildEffectLst := new EffectLst(self, {self.}Prefix, "effectLst"); container_.Set({self.}XmlChildEffectLst); end - return {self.}XmlChildEffectLst; + return {self.}XmlChildEffectLst and not {self.}XmlChildEffectLst.Removed ? {self.}XmlChildEffectLst : fallback_.EffectLst; end; -function OuterShdw.Create();overload; +function EffectStyle.WriteXmlChildEffectLst(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "outerShdw"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEffectLst) then + {self.}RemoveChild({self.}XmlChildEffectLst); + end + else if v is class(EffectLst) then + begin + v.Parent := self; + {self.}XmlChildEffectLst := v; + container_.Set({self.}XmlChildEffectLst); + end + else begin + raise "Invalid assignment: EffectLst expects EffectLst or nil"; + end end; -function OuterShdw.Create(_node: XmlNode);overload; +function OuterShdw.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "outerShdw"); end; -function OuterShdw.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function OuterShdw.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function OuterShdw.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function OuterShdw.Init();override; @@ -4792,7 +6301,7 @@ function OuterShdw.Copy(_obj: OuterShdw);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.BlurRad) then {self.}BlurRad := _obj.BlurRad; if not ifnil(_obj.Dist) then @@ -4808,6 +6317,31 @@ begin tslassigning := tslassigning_backup; end; +function OuterShdw.Clone(): OuterShdw;override; +begin + obj := new OuterShdw(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}BlurRad) then + obj.BlurRad := {self.}BlurRad; + if not ifnil({self.}Dist) then + obj.Dist := {self.}Dist; + if not ifnil({self.}Dir) then + obj.Dir := {self.}Dir; + if not ifnil({self.}Algn) then + obj.Algn := {self.}Algn; + if not ifnil({self.}RotWithShape) then + obj.RotWithShape := {self.}RotWithShape; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "srgbClr": obj.SrgbClr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function OuterShdw.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSrgbClr) then @@ -4816,75 +6350,75 @@ end; function OuterShdw.ReadXmlAttrBlurRad(); begin - return {self.}XmlAttrBlurRad.Value; + return ifnil({self.}XmlAttrBlurRad.Value) ? fallback_.XmlAttrBlurRad.Value : {self.}XmlAttrBlurRad.Value; end; -function OuterShdw.WriteXmlAttrBlurRad(_value); +function OuterShdw.WriteXmlAttrBlurRad(_value: any); begin if ifnil({self.}XmlAttrBlurRad) then begin {self.}XmlAttrBlurRad := new OpenXmlAttribute("", "blurRad", nil); - attributes_[length(attributes_)] := {self.}XmlAttrBlurRad; + attributes_["blurRad"] := {self.}XmlAttrBlurRad; end {self.}XmlAttrBlurRad.Value := _value; end; function OuterShdw.ReadXmlAttrDist(); begin - return {self.}XmlAttrDist.Value; + return ifnil({self.}XmlAttrDist.Value) ? fallback_.XmlAttrDist.Value : {self.}XmlAttrDist.Value; end; -function OuterShdw.WriteXmlAttrDist(_value); +function OuterShdw.WriteXmlAttrDist(_value: any); begin if ifnil({self.}XmlAttrDist) then begin {self.}XmlAttrDist := new OpenXmlAttribute("", "dist", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDist; + attributes_["dist"] := {self.}XmlAttrDist; end {self.}XmlAttrDist.Value := _value; end; function OuterShdw.ReadXmlAttrDir(); begin - return {self.}XmlAttrDir.Value; + return ifnil({self.}XmlAttrDir.Value) ? fallback_.XmlAttrDir.Value : {self.}XmlAttrDir.Value; end; -function OuterShdw.WriteXmlAttrDir(_value); +function OuterShdw.WriteXmlAttrDir(_value: any); begin if ifnil({self.}XmlAttrDir) then begin {self.}XmlAttrDir := new OpenXmlAttribute("", "dir", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDir; + attributes_["dir"] := {self.}XmlAttrDir; end {self.}XmlAttrDir.Value := _value; end; function OuterShdw.ReadXmlAttrAlgn(); begin - return {self.}XmlAttrAlgn.Value; + return ifnil({self.}XmlAttrAlgn.Value) ? fallback_.XmlAttrAlgn.Value : {self.}XmlAttrAlgn.Value; end; -function OuterShdw.WriteXmlAttrAlgn(_value); +function OuterShdw.WriteXmlAttrAlgn(_value: any); begin if ifnil({self.}XmlAttrAlgn) then begin {self.}XmlAttrAlgn := new OpenXmlAttribute("", "algn", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAlgn; + attributes_["algn"] := {self.}XmlAttrAlgn; end {self.}XmlAttrAlgn.Value := _value; end; function OuterShdw.ReadXmlAttrRotWithShape(); begin - return {self.}XmlAttrRotWithShape.Value; + return ifnil({self.}XmlAttrRotWithShape.Value) ? fallback_.XmlAttrRotWithShape.Value : {self.}XmlAttrRotWithShape.Value; end; -function OuterShdw.WriteXmlAttrRotWithShape(_value); +function OuterShdw.WriteXmlAttrRotWithShape(_value: any); begin if ifnil({self.}XmlAttrRotWithShape) then begin {self.}XmlAttrRotWithShape := new OpenXmlAttribute("", "rotWithShape", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRotWithShape; + attributes_["rotWithShape"] := {self.}XmlAttrRotWithShape; end {self.}XmlAttrRotWithShape.Value := _value; end; @@ -4896,23 +6430,42 @@ begin {self.}XmlChildSrgbClr := new SrgbClr(self, {self.}Prefix, "srgbClr"); container_.Set({self.}XmlChildSrgbClr); end - return {self.}XmlChildSrgbClr; + return {self.}XmlChildSrgbClr and not {self.}XmlChildSrgbClr.Removed ? {self.}XmlChildSrgbClr : fallback_.SrgbClr; end; -function ExtLst.Create();overload; +function OuterShdw.WriteXmlChildSrgbClr(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "extLst"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSrgbClr) then + {self.}RemoveChild({self.}XmlChildSrgbClr); + end + else if v is class(SrgbClr) then + begin + v.Parent := self; + {self.}XmlChildSrgbClr := v; + container_.Set({self.}XmlChildSrgbClr); + end + else begin + raise "Invalid assignment: SrgbClr expects SrgbClr or nil"; + end end; -function ExtLst.Create(_node: XmlNode);overload; +function ExtLst.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "extLst"); end; -function ExtLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ExtLst.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function ExtLst.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ExtLst.Init();override; @@ -4931,10 +6484,19 @@ function ExtLst.Copy(_obj: ExtLst);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function ExtLst.Clone(): ExtLst;override; +begin + obj := new ExtLst(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function ExtLst.ConvertToPoint();override; begin elems := {self.}Exts(); @@ -4942,16 +6504,36 @@ begin elem.ConvertToPoint(); end; -function ExtLst.ReadExts(_index); +function ExtLst.ReadExts(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "ext", ind); end; +function ExtLst.WriteExts(_index: integer; _value: nil_OR_Ext); +begin + if ifnil(_value) then + begin + obj := {self.}ReadExts(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "ext", ind, _value) then + raise format("Index out of range: Exts[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Exts expects nil or Ext"; + end +end; + function ExtLst.AddExt(): Ext; begin obj := new Ext(self, {self.}Prefix, "ext"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4959,24 +6541,25 @@ end; function ExtLst.AppendExt(): Ext; begin obj := new Ext(self, {self.}Prefix, "ext"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Ext.Create();overload; +function Ext.create();overload; begin - {self.}Create(nil, "a", "ext"); + {self.}create(nil, "a", "ext"); end; -function Ext.Create(_node: XmlNode);overload; +function Ext.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Ext.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Ext.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Ext.Init();override; @@ -4999,7 +6582,7 @@ function Ext.Copy(_obj: Ext);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Uri) then {self.}Uri := _obj.Uri; if not ifnil(_obj.XmlChildThm15ThemeFamily) then @@ -5013,6 +6596,26 @@ begin tslassigning := tslassigning_backup; end; +function Ext.Clone(): Ext;override; +begin + obj := new Ext(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Uri) then + obj.Uri := {self.}Uri; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "thm15:themeFamily": obj.Thm15ThemeFamily := element.Clone(); + "c16:uniquedId": obj.UniqueId := element.Clone(); + "x14:slicerStyles": obj.SlicerStyles := element.Clone(); + "x15:timelineStyles": obj.TimelineStyles := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Ext.ConvertToPoint();override; begin if not ifnil({self.}XmlChildThm15ThemeFamily) then @@ -5027,15 +6630,15 @@ end; function Ext.ReadXmlAttrUri(); begin - return {self.}XmlAttrUri.Value; + return ifnil({self.}XmlAttrUri.Value) ? fallback_.XmlAttrUri.Value : {self.}XmlAttrUri.Value; end; -function Ext.WriteXmlAttrUri(_value); +function Ext.WriteXmlAttrUri(_value: any); begin if ifnil({self.}XmlAttrUri) then begin {self.}XmlAttrUri := new OpenXmlAttribute("", "uri", nil); - attributes_[length(attributes_)] := {self.}XmlAttrUri; + attributes_["uri"] := {self.}XmlAttrUri; end {self.}XmlAttrUri.Value := _value; end; @@ -5047,7 +6650,26 @@ begin {self.}XmlChildThm15ThemeFamily := new ThemeFamily(self, "thm15", "themeFamily"); container_.Set({self.}XmlChildThm15ThemeFamily); end - return {self.}XmlChildThm15ThemeFamily; + return {self.}XmlChildThm15ThemeFamily and not {self.}XmlChildThm15ThemeFamily.Removed ? {self.}XmlChildThm15ThemeFamily : fallback_.Thm15ThemeFamily; +end; + +function Ext.WriteXmlChildThm15ThemeFamily(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildThm15ThemeFamily) then + {self.}RemoveChild({self.}XmlChildThm15ThemeFamily); + end + else if v is class(ThemeFamily) then + begin + v.Parent := self; + {self.}XmlChildThm15ThemeFamily := v; + container_.Set({self.}XmlChildThm15ThemeFamily); + end + else begin + raise "Invalid assignment: Thm15ThemeFamily expects ThemeFamily or nil"; + end end; function Ext.ReadXmlChildUniqueId(): PureVal; @@ -5057,7 +6679,26 @@ begin {self.}XmlChildUniqueId := new PureVal(self, "c16", "uniquedId"); container_.Set({self.}XmlChildUniqueId); end - return {self.}XmlChildUniqueId; + return {self.}XmlChildUniqueId and not {self.}XmlChildUniqueId.Removed ? {self.}XmlChildUniqueId : fallback_.UniqueId; +end; + +function Ext.WriteXmlChildUniqueId(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildUniqueId) then + {self.}RemoveChild({self.}XmlChildUniqueId); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildUniqueId := v; + container_.Set({self.}XmlChildUniqueId); + end + else begin + raise "Invalid assignment: UniqueId expects PureVal or nil"; + end end; function Ext.ReadXmlChildSlicerStyles(): SlicerStyles; @@ -5067,7 +6708,26 @@ begin {self.}XmlChildSlicerStyles := new SlicerStyles(self, "x14", "slicerStyles"); container_.Set({self.}XmlChildSlicerStyles); end - return {self.}XmlChildSlicerStyles; + return {self.}XmlChildSlicerStyles and not {self.}XmlChildSlicerStyles.Removed ? {self.}XmlChildSlicerStyles : fallback_.SlicerStyles; +end; + +function Ext.WriteXmlChildSlicerStyles(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSlicerStyles) then + {self.}RemoveChild({self.}XmlChildSlicerStyles); + end + else if v is class(SlicerStyles) then + begin + v.Parent := self; + {self.}XmlChildSlicerStyles := v; + container_.Set({self.}XmlChildSlicerStyles); + end + else begin + raise "Invalid assignment: SlicerStyles expects SlicerStyles or nil"; + end end; function Ext.ReadXmlChildTimelineStyles(): TimelineStyles; @@ -5077,23 +6737,42 @@ begin {self.}XmlChildTimelineStyles := new TimelineStyles(self, "x15", "timelineStyles"); container_.Set({self.}XmlChildTimelineStyles); end - return {self.}XmlChildTimelineStyles; + return {self.}XmlChildTimelineStyles and not {self.}XmlChildTimelineStyles.Removed ? {self.}XmlChildTimelineStyles : fallback_.TimelineStyles; end; -function SlicerStyles.Create();overload; +function Ext.WriteXmlChildTimelineStyles(_p1: any; _p2: any); begin - {self.}Create(nil, "", "slicerStyles"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTimelineStyles) then + {self.}RemoveChild({self.}XmlChildTimelineStyles); + end + else if v is class(TimelineStyles) then + begin + v.Parent := self; + {self.}XmlChildTimelineStyles := v; + container_.Set({self.}XmlChildTimelineStyles); + end + else begin + raise "Invalid assignment: TimelineStyles expects TimelineStyles or nil"; + end end; -function SlicerStyles.Create(_node: XmlNode);overload; +function SlicerStyles.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "", "slicerStyles"); end; -function SlicerStyles.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SlicerStyles.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SlicerStyles.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SlicerStyles.Init();override; @@ -5112,12 +6791,20 @@ function SlicerStyles.Copy(_obj: SlicerStyles);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.DefaultSlicerStyle) then {self.}DefaultSlicerStyle := _obj.DefaultSlicerStyle; tslassigning := tslassigning_backup; end; +function SlicerStyles.Clone(): SlicerStyles;override; +begin + obj := new SlicerStyles(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}DefaultSlicerStyle) then + obj.DefaultSlicerStyle := {self.}DefaultSlicerStyle; + return obj; +end; + function SlicerStyles.ConvertToPoint();override; begin @@ -5125,33 +6812,33 @@ end; function SlicerStyles.ReadXmlAttrDefaultSlicerStyle(); begin - return {self.}XmlAttrDefaultSlicerStyle.Value; + return ifnil({self.}XmlAttrDefaultSlicerStyle.Value) ? fallback_.XmlAttrDefaultSlicerStyle.Value : {self.}XmlAttrDefaultSlicerStyle.Value; end; -function SlicerStyles.WriteXmlAttrDefaultSlicerStyle(_value); +function SlicerStyles.WriteXmlAttrDefaultSlicerStyle(_value: any); begin if ifnil({self.}XmlAttrDefaultSlicerStyle) then begin {self.}XmlAttrDefaultSlicerStyle := new OpenXmlAttribute("", "defaultSlicerStyle", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDefaultSlicerStyle; + attributes_["defaultSlicerStyle"] := {self.}XmlAttrDefaultSlicerStyle; end {self.}XmlAttrDefaultSlicerStyle.Value := _value; end; -function TimelineStyles.Create();overload; +function TimelineStyles.create();overload; begin - {self.}Create(nil, "", "timelineStyles"); + {self.}create(nil, "", "timelineStyles"); end; -function TimelineStyles.Create(_node: XmlNode);overload; +function TimelineStyles.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function TimelineStyles.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TimelineStyles.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TimelineStyles.Init();override; @@ -5170,12 +6857,20 @@ function TimelineStyles.Copy(_obj: TimelineStyles);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.DefaultTimelineStyle) then {self.}DefaultTimelineStyle := _obj.DefaultTimelineStyle; tslassigning := tslassigning_backup; end; +function TimelineStyles.Clone(): TimelineStyles;override; +begin + obj := new TimelineStyles(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}DefaultTimelineStyle) then + obj.DefaultTimelineStyle := {self.}DefaultTimelineStyle; + return obj; +end; + function TimelineStyles.ConvertToPoint();override; begin @@ -5183,33 +6878,33 @@ end; function TimelineStyles.ReadXmlAttrDefaultTimelineStyle(); begin - return {self.}XmlAttrDefaultTimelineStyle.Value; + return ifnil({self.}XmlAttrDefaultTimelineStyle.Value) ? fallback_.XmlAttrDefaultTimelineStyle.Value : {self.}XmlAttrDefaultTimelineStyle.Value; end; -function TimelineStyles.WriteXmlAttrDefaultTimelineStyle(_value); +function TimelineStyles.WriteXmlAttrDefaultTimelineStyle(_value: any); begin if ifnil({self.}XmlAttrDefaultTimelineStyle) then begin {self.}XmlAttrDefaultTimelineStyle := new OpenXmlAttribute("", "defaultTimelineStyle", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDefaultTimelineStyle; + attributes_["defaultTimelineStyle"] := {self.}XmlAttrDefaultTimelineStyle; end {self.}XmlAttrDefaultTimelineStyle.Value := _value; end; -function ThemeFamily.Create();overload; +function ThemeFamily.create();overload; begin - {self.}Create(nil, "thm15", "themeFamily"); + {self.}create(nil, "thm15", "themeFamily"); end; -function ThemeFamily.Create(_node: XmlNode);overload; +function ThemeFamily.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function ThemeFamily.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ThemeFamily.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ThemeFamily.Init();override; @@ -5230,7 +6925,7 @@ function ThemeFamily.Copy(_obj: ThemeFamily);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Name) then {self.}Name := _obj.Name; if not ifnil(_obj.Id) then @@ -5240,6 +6935,18 @@ begin tslassigning := tslassigning_backup; end; +function ThemeFamily.Clone(): ThemeFamily;override; +begin + obj := new ThemeFamily(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Vid) then + obj.Vid := {self.}Vid; + return obj; +end; + function ThemeFamily.ConvertToPoint();override; begin @@ -5247,63 +6954,63 @@ end; function ThemeFamily.ReadXmlAttrName(); begin - return {self.}XmlAttrName.Value; + return ifnil({self.}XmlAttrName.Value) ? fallback_.XmlAttrName.Value : {self.}XmlAttrName.Value; end; -function ThemeFamily.WriteXmlAttrName(_value); +function ThemeFamily.WriteXmlAttrName(_value: any); begin if ifnil({self.}XmlAttrName) then begin {self.}XmlAttrName := new OpenXmlAttribute("", "name", nil); - attributes_[length(attributes_)] := {self.}XmlAttrName; + attributes_["name"] := {self.}XmlAttrName; end {self.}XmlAttrName.Value := _value; end; function ThemeFamily.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function ThemeFamily.WriteXmlAttrId(_value); +function ThemeFamily.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("", "Id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["Id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; function ThemeFamily.ReadXmlAttrVid(); begin - return {self.}XmlAttrVid.Value; + return ifnil({self.}XmlAttrVid.Value) ? fallback_.XmlAttrVid.Value : {self.}XmlAttrVid.Value; end; -function ThemeFamily.WriteXmlAttrVid(_value); +function ThemeFamily.WriteXmlAttrVid(_value: any); begin if ifnil({self.}XmlAttrVid) then begin {self.}XmlAttrVid := new OpenXmlAttribute("", "vid", nil); - attributes_[length(attributes_)] := {self.}XmlAttrVid; + attributes_["vid"] := {self.}XmlAttrVid; end {self.}XmlAttrVid.Value := _value; end; -function ChartSpace.Create();overload; +function ChartSpace.create();overload; begin - {self.}Create(nil, "c", "chartSpace"); + {self.}create(nil, "c", "chartSpace"); end; -function ChartSpace.Create(_node: XmlNode);overload; +function ChartSpace.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function ChartSpace.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ChartSpace.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ChartSpace.Init();override; @@ -5327,7 +7034,7 @@ function ChartSpace.Copy(_obj: ChartSpace);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildDate1904) then {self.}Date1904.Copy(_obj.XmlChildDate1904); if not ifnil(_obj.XmlChildLang) then @@ -5343,6 +7050,26 @@ begin tslassigning := tslassigning_backup; end; +function ChartSpace.Clone(): ChartSpace;override; +begin + obj := new ChartSpace(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "date1904": obj.Date1904 := element.Clone(); + pre + "lang": obj.Lang := element.Clone(); + "mc:AlternateContent": obj.AlternateContent := element.Clone(); + pre + "chart": obj.Chart := element.Clone(); + pre + "spPr": obj.SpPr := element.Clone(); + pre + "externalData": obj.ExternalData := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function ChartSpace.ConvertToPoint();override; begin if not ifnil({self.}XmlChildDate1904) then @@ -5364,7 +7091,25 @@ begin {self.}XmlChildLang := new OpenXmlSimpleType(self, {self.}Prefix, "lang"); container_.Set({self.}XmlChildLang); end - return {self.}XmlChildLang; + return {self.}XmlChildLang and not {self.}XmlChildLang.Removed ? {self.}XmlChildLang : fallback_.Lang; +end; + +function ChartSpace.WriteXmlChildLang(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildLang) then + {self.}RemoveChild({self.}XmlChildLang); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildLang := _value; + container_.Set({self.}XmlChildLang); + end + else begin + raise "Invalid assignment: Lang expects nil or OpenXmlSimpleType"; + end end; function ChartSpace.ReadXmlChildDate1904(): PureVal; @@ -5374,7 +7119,26 @@ begin {self.}XmlChildDate1904 := new PureVal(self, {self.}Prefix, "date1904"); container_.Set({self.}XmlChildDate1904); end - return {self.}XmlChildDate1904; + return {self.}XmlChildDate1904 and not {self.}XmlChildDate1904.Removed ? {self.}XmlChildDate1904 : fallback_.Date1904; +end; + +function ChartSpace.WriteXmlChildDate1904(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDate1904) then + {self.}RemoveChild({self.}XmlChildDate1904); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildDate1904 := v; + container_.Set({self.}XmlChildDate1904); + end + else begin + raise "Invalid assignment: Date1904 expects PureVal or nil"; + end end; function ChartSpace.ReadXmlChildAlternateContent(): AlternateContent; @@ -5384,7 +7148,26 @@ begin {self.}XmlChildAlternateContent := new AlternateContent(self, "mc", "AlternateContent"); container_.Set({self.}XmlChildAlternateContent); end - return {self.}XmlChildAlternateContent; + return {self.}XmlChildAlternateContent and not {self.}XmlChildAlternateContent.Removed ? {self.}XmlChildAlternateContent : fallback_.AlternateContent; +end; + +function ChartSpace.WriteXmlChildAlternateContent(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAlternateContent) then + {self.}RemoveChild({self.}XmlChildAlternateContent); + end + else if v is class(AlternateContent) then + begin + v.Parent := self; + {self.}XmlChildAlternateContent := v; + container_.Set({self.}XmlChildAlternateContent); + end + else begin + raise "Invalid assignment: AlternateContent expects AlternateContent or nil"; + end end; function ChartSpace.ReadXmlChildChart(): Chart; @@ -5394,7 +7177,26 @@ begin {self.}XmlChildChart := new Chart(self, {self.}Prefix, "chart"); container_.Set({self.}XmlChildChart); end - return {self.}XmlChildChart; + return {self.}XmlChildChart and not {self.}XmlChildChart.Removed ? {self.}XmlChildChart : fallback_.Chart; +end; + +function ChartSpace.WriteXmlChildChart(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildChart) then + {self.}RemoveChild({self.}XmlChildChart); + end + else if v is class(Chart) then + begin + v.Parent := self; + {self.}XmlChildChart := v; + container_.Set({self.}XmlChildChart); + end + else begin + raise "Invalid assignment: Chart expects Chart or nil"; + end end; function ChartSpace.ReadXmlChildSpPr(): SpPr; @@ -5404,7 +7206,26 @@ begin {self.}XmlChildSpPr := new SpPr(self, {self.}Prefix, "spPr"); container_.Set({self.}XmlChildSpPr); end - return {self.}XmlChildSpPr; + return {self.}XmlChildSpPr and not {self.}XmlChildSpPr.Removed ? {self.}XmlChildSpPr : fallback_.SpPr; +end; + +function ChartSpace.WriteXmlChildSpPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSpPr) then + {self.}RemoveChild({self.}XmlChildSpPr); + end + else if v is class(SpPr) then + begin + v.Parent := self; + {self.}XmlChildSpPr := v; + container_.Set({self.}XmlChildSpPr); + end + else begin + raise "Invalid assignment: SpPr expects SpPr or nil"; + end end; function ChartSpace.ReadXmlChildExternalData(): ExternalData; @@ -5414,23 +7235,42 @@ begin {self.}XmlChildExternalData := new ExternalData(self, {self.}Prefix, "externalData"); container_.Set({self.}XmlChildExternalData); end - return {self.}XmlChildExternalData; + return {self.}XmlChildExternalData and not {self.}XmlChildExternalData.Removed ? {self.}XmlChildExternalData : fallback_.ExternalData; end; -function Chart.Create();overload; +function ChartSpace.WriteXmlChildExternalData(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "chart"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildExternalData) then + {self.}RemoveChild({self.}XmlChildExternalData); + end + else if v is class(ExternalData) then + begin + v.Parent := self; + {self.}XmlChildExternalData := v; + container_.Set({self.}XmlChildExternalData); + end + else begin + raise "Invalid assignment: ExternalData expects ExternalData or nil"; + end end; -function Chart.Create(_node: XmlNode);overload; +function Chart.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "chart"); end; -function Chart.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Chart.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Chart.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Chart.Init();override; @@ -5457,7 +7297,7 @@ function Chart.Copy(_obj: Chart);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.XmlChildTitle) then @@ -5479,6 +7319,30 @@ begin tslassigning := tslassigning_backup; end; +function Chart.Clone(): Chart;override; +begin + obj := new Chart(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "title": obj.Title := element.Clone(); + pre + "autoTitleDeleted": obj.AutoTitleDeleted := element.Clone(); + pre + "view3D": obj.View3D := element.Clone(); + pre + "plotArea": obj.PlotArea := element.Clone(); + pre + "legend": obj.Legend := element.Clone(); + pre + "plotVisOnly": obj.PlotVisOnly := element.Clone(); + pre + "dispBlanksAs": obj.DispBlanksAs := element.Clone(); + pre + "showDLblsOverMax": obj.ShowDLblsOverMax := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Chart.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTitle) then @@ -5501,15 +7365,15 @@ end; function Chart.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function Chart.WriteXmlAttrId(_value); +function Chart.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("r", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["r:id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; @@ -5521,7 +7385,26 @@ begin {self.}XmlChildTitle := new Title(self, {self.}Prefix, "title"); container_.Set({self.}XmlChildTitle); end - return {self.}XmlChildTitle; + return {self.}XmlChildTitle and not {self.}XmlChildTitle.Removed ? {self.}XmlChildTitle : fallback_.Title; +end; + +function Chart.WriteXmlChildTitle(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTitle) then + {self.}RemoveChild({self.}XmlChildTitle); + end + else if v is class(Title) then + begin + v.Parent := self; + {self.}XmlChildTitle := v; + container_.Set({self.}XmlChildTitle); + end + else begin + raise "Invalid assignment: Title expects Title or nil"; + end end; function Chart.ReadXmlChildAutoTitleDeleted(): PureVal; @@ -5531,7 +7414,26 @@ begin {self.}XmlChildAutoTitleDeleted := new PureVal(self, {self.}Prefix, "autoTitleDeleted"); container_.Set({self.}XmlChildAutoTitleDeleted); end - return {self.}XmlChildAutoTitleDeleted; + return {self.}XmlChildAutoTitleDeleted and not {self.}XmlChildAutoTitleDeleted.Removed ? {self.}XmlChildAutoTitleDeleted : fallback_.AutoTitleDeleted; +end; + +function Chart.WriteXmlChildAutoTitleDeleted(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAutoTitleDeleted) then + {self.}RemoveChild({self.}XmlChildAutoTitleDeleted); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildAutoTitleDeleted := v; + container_.Set({self.}XmlChildAutoTitleDeleted); + end + else begin + raise "Invalid assignment: AutoTitleDeleted expects PureVal or nil"; + end end; function Chart.ReadXmlChildView3D(): View3D; @@ -5541,7 +7443,26 @@ begin {self.}XmlChildView3D := new View3D(self, {self.}Prefix, "view3D"); container_.Set({self.}XmlChildView3D); end - return {self.}XmlChildView3D; + return {self.}XmlChildView3D and not {self.}XmlChildView3D.Removed ? {self.}XmlChildView3D : fallback_.View3D; +end; + +function Chart.WriteXmlChildView3D(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildView3D) then + {self.}RemoveChild({self.}XmlChildView3D); + end + else if v is class(View3D) then + begin + v.Parent := self; + {self.}XmlChildView3D := v; + container_.Set({self.}XmlChildView3D); + end + else begin + raise "Invalid assignment: View3D expects View3D or nil"; + end end; function Chart.ReadXmlChildPlotArea(): PlotArea; @@ -5551,7 +7472,26 @@ begin {self.}XmlChildPlotArea := new PlotArea(self, {self.}Prefix, "plotArea"); container_.Set({self.}XmlChildPlotArea); end - return {self.}XmlChildPlotArea; + return {self.}XmlChildPlotArea and not {self.}XmlChildPlotArea.Removed ? {self.}XmlChildPlotArea : fallback_.PlotArea; +end; + +function Chart.WriteXmlChildPlotArea(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPlotArea) then + {self.}RemoveChild({self.}XmlChildPlotArea); + end + else if v is class(PlotArea) then + begin + v.Parent := self; + {self.}XmlChildPlotArea := v; + container_.Set({self.}XmlChildPlotArea); + end + else begin + raise "Invalid assignment: PlotArea expects PlotArea or nil"; + end end; function Chart.ReadXmlChildLegend(): Legend; @@ -5561,7 +7501,26 @@ begin {self.}XmlChildLegend := new Legend(self, {self.}Prefix, "legend"); container_.Set({self.}XmlChildLegend); end - return {self.}XmlChildLegend; + return {self.}XmlChildLegend and not {self.}XmlChildLegend.Removed ? {self.}XmlChildLegend : fallback_.Legend; +end; + +function Chart.WriteXmlChildLegend(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLegend) then + {self.}RemoveChild({self.}XmlChildLegend); + end + else if v is class(Legend) then + begin + v.Parent := self; + {self.}XmlChildLegend := v; + container_.Set({self.}XmlChildLegend); + end + else begin + raise "Invalid assignment: Legend expects Legend or nil"; + end end; function Chart.ReadXmlChildPlotVisOnly(): PureVal; @@ -5571,7 +7530,26 @@ begin {self.}XmlChildPlotVisOnly := new PureVal(self, {self.}Prefix, "plotVisOnly"); container_.Set({self.}XmlChildPlotVisOnly); end - return {self.}XmlChildPlotVisOnly; + return {self.}XmlChildPlotVisOnly and not {self.}XmlChildPlotVisOnly.Removed ? {self.}XmlChildPlotVisOnly : fallback_.PlotVisOnly; +end; + +function Chart.WriteXmlChildPlotVisOnly(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPlotVisOnly) then + {self.}RemoveChild({self.}XmlChildPlotVisOnly); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildPlotVisOnly := v; + container_.Set({self.}XmlChildPlotVisOnly); + end + else begin + raise "Invalid assignment: PlotVisOnly expects PureVal or nil"; + end end; function Chart.ReadXmlChildDispBlanksAs(): PureVal; @@ -5581,7 +7559,26 @@ begin {self.}XmlChildDispBlanksAs := new PureVal(self, {self.}Prefix, "dispBlanksAs"); container_.Set({self.}XmlChildDispBlanksAs); end - return {self.}XmlChildDispBlanksAs; + return {self.}XmlChildDispBlanksAs and not {self.}XmlChildDispBlanksAs.Removed ? {self.}XmlChildDispBlanksAs : fallback_.DispBlanksAs; +end; + +function Chart.WriteXmlChildDispBlanksAs(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDispBlanksAs) then + {self.}RemoveChild({self.}XmlChildDispBlanksAs); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildDispBlanksAs := v; + container_.Set({self.}XmlChildDispBlanksAs); + end + else begin + raise "Invalid assignment: DispBlanksAs expects PureVal or nil"; + end end; function Chart.ReadXmlChildShowDLblsOverMax(): PureVal; @@ -5591,23 +7588,42 @@ begin {self.}XmlChildShowDLblsOverMax := new PureVal(self, {self.}Prefix, "showDLblsOverMax"); container_.Set({self.}XmlChildShowDLblsOverMax); end - return {self.}XmlChildShowDLblsOverMax; + return {self.}XmlChildShowDLblsOverMax and not {self.}XmlChildShowDLblsOverMax.Removed ? {self.}XmlChildShowDLblsOverMax : fallback_.ShowDLblsOverMax; end; -function Legend.Create();overload; +function Chart.WriteXmlChildShowDLblsOverMax(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "legend"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowDLblsOverMax) then + {self.}RemoveChild({self.}XmlChildShowDLblsOverMax); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowDLblsOverMax := v; + container_.Set({self.}XmlChildShowDLblsOverMax); + end + else begin + raise "Invalid assignment: ShowDLblsOverMax expects PureVal or nil"; + end end; -function Legend.Create(_node: XmlNode);overload; +function Legend.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "legend"); end; -function Legend.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Legend.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Legend.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Legend.Init();override; @@ -5629,7 +7645,7 @@ function Legend.Copy(_obj: Legend);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildLegendPos) then {self.}LegendPos.Copy(_obj.XmlChildLegendPos); if not ifnil(_obj.XmlChildLayout) then @@ -5641,6 +7657,24 @@ begin tslassigning := tslassigning_backup; end; +function Legend.Clone(): Legend;override; +begin + obj := new Legend(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "legendPos": obj.LegendPos := element.Clone(); + pre + "layout": obj.Layout := element.Clone(); + pre + "overlay": obj.Overlay := element.Clone(); + pre + "txPr": obj.TxPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Legend.ConvertToPoint();override; begin if not ifnil({self.}XmlChildLegendPos) then @@ -5658,7 +7692,25 @@ begin {self.}XmlChildLayout := new OpenXmlSimpleType(self, {self.}Prefix, "layout"); container_.Set({self.}XmlChildLayout); end - return {self.}XmlChildLayout; + return {self.}XmlChildLayout and not {self.}XmlChildLayout.Removed ? {self.}XmlChildLayout : fallback_.Layout; +end; + +function Legend.WriteXmlChildLayout(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildLayout) then + {self.}RemoveChild({self.}XmlChildLayout); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildLayout := _value; + container_.Set({self.}XmlChildLayout); + end + else begin + raise "Invalid assignment: Layout expects nil or OpenXmlSimpleType"; + end end; function Legend.ReadXmlChildLegendPos(): PureVal; @@ -5668,7 +7720,26 @@ begin {self.}XmlChildLegendPos := new PureVal(self, {self.}Prefix, "legendPos"); container_.Set({self.}XmlChildLegendPos); end - return {self.}XmlChildLegendPos; + return {self.}XmlChildLegendPos and not {self.}XmlChildLegendPos.Removed ? {self.}XmlChildLegendPos : fallback_.LegendPos; +end; + +function Legend.WriteXmlChildLegendPos(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLegendPos) then + {self.}RemoveChild({self.}XmlChildLegendPos); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildLegendPos := v; + container_.Set({self.}XmlChildLegendPos); + end + else begin + raise "Invalid assignment: LegendPos expects PureVal or nil"; + end end; function Legend.ReadXmlChildOverlay(): PureVal; @@ -5678,7 +7749,26 @@ begin {self.}XmlChildOverlay := new PureVal(self, {self.}Prefix, "overlay"); container_.Set({self.}XmlChildOverlay); end - return {self.}XmlChildOverlay; + return {self.}XmlChildOverlay and not {self.}XmlChildOverlay.Removed ? {self.}XmlChildOverlay : fallback_.Overlay; +end; + +function Legend.WriteXmlChildOverlay(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildOverlay) then + {self.}RemoveChild({self.}XmlChildOverlay); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildOverlay := v; + container_.Set({self.}XmlChildOverlay); + end + else begin + raise "Invalid assignment: Overlay expects PureVal or nil"; + end end; function Legend.ReadXmlChildTxPr(): TxPr; @@ -5688,23 +7778,42 @@ begin {self.}XmlChildTxPr := new TxPr(self, {self.}Prefix, "txPr"); container_.Set({self.}XmlChildTxPr); end - return {self.}XmlChildTxPr; + return {self.}XmlChildTxPr and not {self.}XmlChildTxPr.Removed ? {self.}XmlChildTxPr : fallback_.TxPr; end; -function View3D.Create();overload; +function Legend.WriteXmlChildTxPr(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "view3D"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTxPr) then + {self.}RemoveChild({self.}XmlChildTxPr); + end + else if v is class(TxPr) then + begin + v.Parent := self; + {self.}XmlChildTxPr := v; + container_.Set({self.}XmlChildTxPr); + end + else begin + raise "Invalid assignment: TxPr expects TxPr or nil"; + end end; -function View3D.Create(_node: XmlNode);overload; +function View3D.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "view3D"); end; -function View3D.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function View3D.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function View3D.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function View3D.Init();override; @@ -5725,7 +7834,7 @@ function View3D.Copy(_obj: View3D);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRotX) then {self.}RotX.Copy(_obj.XmlChildRotX); if not ifnil(_obj.XmlChildRotY) then @@ -5735,6 +7844,23 @@ begin tslassigning := tslassigning_backup; end; +function View3D.Clone(): View3D;override; +begin + obj := new View3D(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rotX": obj.RotX := element.Clone(); + pre + "rotY": obj.RotY := element.Clone(); + pre + "rAngAx": obj.RAngAx := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function View3D.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRotX) then @@ -5752,7 +7878,26 @@ begin {self.}XmlChildRotX := new PureVal(self, {self.}Prefix, "rotX"); container_.Set({self.}XmlChildRotX); end - return {self.}XmlChildRotX; + return {self.}XmlChildRotX and not {self.}XmlChildRotX.Removed ? {self.}XmlChildRotX : fallback_.RotX; +end; + +function View3D.WriteXmlChildRotX(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRotX) then + {self.}RemoveChild({self.}XmlChildRotX); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildRotX := v; + container_.Set({self.}XmlChildRotX); + end + else begin + raise "Invalid assignment: RotX expects PureVal or nil"; + end end; function View3D.ReadXmlChildRotY(): PureVal; @@ -5762,7 +7907,26 @@ begin {self.}XmlChildRotY := new PureVal(self, {self.}Prefix, "rotY"); container_.Set({self.}XmlChildRotY); end - return {self.}XmlChildRotY; + return {self.}XmlChildRotY and not {self.}XmlChildRotY.Removed ? {self.}XmlChildRotY : fallback_.RotY; +end; + +function View3D.WriteXmlChildRotY(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRotY) then + {self.}RemoveChild({self.}XmlChildRotY); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildRotY := v; + container_.Set({self.}XmlChildRotY); + end + else begin + raise "Invalid assignment: RotY expects PureVal or nil"; + end end; function View3D.ReadXmlChildRAngAx(): PureVal; @@ -5772,23 +7936,42 @@ begin {self.}XmlChildRAngAx := new PureVal(self, {self.}Prefix, "rAngAx"); container_.Set({self.}XmlChildRAngAx); end - return {self.}XmlChildRAngAx; + return {self.}XmlChildRAngAx and not {self.}XmlChildRAngAx.Removed ? {self.}XmlChildRAngAx : fallback_.RAngAx; end; -function PlotArea.Create();overload; +function View3D.WriteXmlChildRAngAx(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "plotArea"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRAngAx) then + {self.}RemoveChild({self.}XmlChildRAngAx); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildRAngAx := v; + container_.Set({self.}XmlChildRAngAx); + end + else begin + raise "Invalid assignment: RAngAx expects PureVal or nil"; + end end; -function PlotArea.Create(_node: XmlNode);overload; +function PlotArea.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "plotArea"); end; -function PlotArea.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PlotArea.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function PlotArea.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PlotArea.Init();override; @@ -5812,7 +7995,7 @@ function PlotArea.Copy(_obj: PlotArea);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildLayout) then ifnil({self.}XmlChildLayout) ? {self.}Layout.Copy(_obj.XmlChildLayout) : {self.}XmlChildLayout.Copy(_obj.XmlChildLayout); if not ifnil(_obj.XmlChildBarChart) then @@ -5828,6 +8011,26 @@ begin tslassigning := tslassigning_backup; end; +function PlotArea.Clone(): PlotArea;override; +begin + obj := new PlotArea(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "layout": obj.Layout := element.Clone(); + pre + "barChart": obj.BarChart := element.Clone(); + pre + "catAx": obj.CatAx := element.Clone(); + pre + "ValAx": obj.ValAx := element.Clone(); + pre + "dTable": obj.DTable := element.Clone(); + pre + "SpPr": obj.SpPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function PlotArea.ConvertToPoint();override; begin if not ifnil({self.}XmlChildBarChart) then @@ -5849,7 +8052,25 @@ begin {self.}XmlChildLayout := new OpenXmlSimpleType(self, {self.}Prefix, "layout"); container_.Set({self.}XmlChildLayout); end - return {self.}XmlChildLayout; + return {self.}XmlChildLayout and not {self.}XmlChildLayout.Removed ? {self.}XmlChildLayout : fallback_.Layout; +end; + +function PlotArea.WriteXmlChildLayout(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildLayout) then + {self.}RemoveChild({self.}XmlChildLayout); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildLayout := _value; + container_.Set({self.}XmlChildLayout); + end + else begin + raise "Invalid assignment: Layout expects nil or OpenXmlSimpleType"; + end end; function PlotArea.ReadXmlChildBarChart(): BarChart; @@ -5859,7 +8080,26 @@ begin {self.}XmlChildBarChart := new BarChart(self, {self.}Prefix, "barChart"); container_.Set({self.}XmlChildBarChart); end - return {self.}XmlChildBarChart; + return {self.}XmlChildBarChart and not {self.}XmlChildBarChart.Removed ? {self.}XmlChildBarChart : fallback_.BarChart; +end; + +function PlotArea.WriteXmlChildBarChart(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBarChart) then + {self.}RemoveChild({self.}XmlChildBarChart); + end + else if v is class(BarChart) then + begin + v.Parent := self; + {self.}XmlChildBarChart := v; + container_.Set({self.}XmlChildBarChart); + end + else begin + raise "Invalid assignment: BarChart expects BarChart or nil"; + end end; function PlotArea.ReadXmlChildCatAx(): Ax; @@ -5869,7 +8109,26 @@ begin {self.}XmlChildCatAx := new Ax(self, {self.}Prefix, "catAx"); container_.Set({self.}XmlChildCatAx); end - return {self.}XmlChildCatAx; + return {self.}XmlChildCatAx and not {self.}XmlChildCatAx.Removed ? {self.}XmlChildCatAx : fallback_.CatAx; +end; + +function PlotArea.WriteXmlChildCatAx(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCatAx) then + {self.}RemoveChild({self.}XmlChildCatAx); + end + else if v is class(Ax) then + begin + v.Parent := self; + {self.}XmlChildCatAx := v; + container_.Set({self.}XmlChildCatAx); + end + else begin + raise "Invalid assignment: CatAx expects Ax or nil"; + end end; function PlotArea.ReadXmlChildValAx(): Ax; @@ -5879,7 +8138,26 @@ begin {self.}XmlChildValAx := new Ax(self, {self.}Prefix, "ValAx"); container_.Set({self.}XmlChildValAx); end - return {self.}XmlChildValAx; + return {self.}XmlChildValAx and not {self.}XmlChildValAx.Removed ? {self.}XmlChildValAx : fallback_.ValAx; +end; + +function PlotArea.WriteXmlChildValAx(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildValAx) then + {self.}RemoveChild({self.}XmlChildValAx); + end + else if v is class(Ax) then + begin + v.Parent := self; + {self.}XmlChildValAx := v; + container_.Set({self.}XmlChildValAx); + end + else begin + raise "Invalid assignment: ValAx expects Ax or nil"; + end end; function PlotArea.ReadXmlChildDTable(): DTable; @@ -5889,7 +8167,26 @@ begin {self.}XmlChildDTable := new DTable(self, {self.}Prefix, "dTable"); container_.Set({self.}XmlChildDTable); end - return {self.}XmlChildDTable; + return {self.}XmlChildDTable and not {self.}XmlChildDTable.Removed ? {self.}XmlChildDTable : fallback_.DTable; +end; + +function PlotArea.WriteXmlChildDTable(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDTable) then + {self.}RemoveChild({self.}XmlChildDTable); + end + else if v is class(DTable) then + begin + v.Parent := self; + {self.}XmlChildDTable := v; + container_.Set({self.}XmlChildDTable); + end + else begin + raise "Invalid assignment: DTable expects DTable or nil"; + end end; function PlotArea.ReadXmlChildSpPr(): SpPr; @@ -5899,23 +8196,42 @@ begin {self.}XmlChildSpPr := new SpPr(self, {self.}Prefix, "SpPr"); container_.Set({self.}XmlChildSpPr); end - return {self.}XmlChildSpPr; + return {self.}XmlChildSpPr and not {self.}XmlChildSpPr.Removed ? {self.}XmlChildSpPr : fallback_.SpPr; end; -function BarChart.Create();overload; +function PlotArea.WriteXmlChildSpPr(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "barChart"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSpPr) then + {self.}RemoveChild({self.}XmlChildSpPr); + end + else if v is class(SpPr) then + begin + v.Parent := self; + {self.}XmlChildSpPr := v; + container_.Set({self.}XmlChildSpPr); + end + else begin + raise "Invalid assignment: SpPr expects SpPr or nil"; + end end; -function BarChart.Create(_node: XmlNode);overload; +function BarChart.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "barChart"); end; -function BarChart.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function BarChart.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function BarChart.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function BarChart.Init();override; @@ -5939,7 +8255,7 @@ function BarChart.Copy(_obj: BarChart);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildBarDir) then {self.}BarDir.Copy(_obj.XmlChildBarDir); if not ifnil(_obj.XmlChildGrouping) then @@ -5951,6 +8267,24 @@ begin tslassigning := tslassigning_backup; end; +function BarChart.Clone(): BarChart;override; +begin + obj := new BarChart(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "barDir": obj.BarDir := element.Clone(); + pre + "grouping": obj.Grouping := element.Clone(); + pre + "varyColors": obj.VaryColors := element.Clone(); + pre + "gapWidth": obj.GapWidth := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function BarChart.ConvertToPoint();override; begin if not ifnil({self.}XmlChildBarDir) then @@ -5976,7 +8310,26 @@ begin {self.}XmlChildBarDir := new PureVal(self, {self.}Prefix, "barDir"); container_.Set({self.}XmlChildBarDir); end - return {self.}XmlChildBarDir; + return {self.}XmlChildBarDir and not {self.}XmlChildBarDir.Removed ? {self.}XmlChildBarDir : fallback_.BarDir; +end; + +function BarChart.WriteXmlChildBarDir(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBarDir) then + {self.}RemoveChild({self.}XmlChildBarDir); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildBarDir := v; + container_.Set({self.}XmlChildBarDir); + end + else begin + raise "Invalid assignment: BarDir expects PureVal or nil"; + end end; function BarChart.ReadXmlChildGrouping(): PureVal; @@ -5986,7 +8339,26 @@ begin {self.}XmlChildGrouping := new PureVal(self, {self.}Prefix, "grouping"); container_.Set({self.}XmlChildGrouping); end - return {self.}XmlChildGrouping; + return {self.}XmlChildGrouping and not {self.}XmlChildGrouping.Removed ? {self.}XmlChildGrouping : fallback_.Grouping; +end; + +function BarChart.WriteXmlChildGrouping(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildGrouping) then + {self.}RemoveChild({self.}XmlChildGrouping); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildGrouping := v; + container_.Set({self.}XmlChildGrouping); + end + else begin + raise "Invalid assignment: Grouping expects PureVal or nil"; + end end; function BarChart.ReadXmlChildVaryColors(): PureVal; @@ -5996,7 +8368,26 @@ begin {self.}XmlChildVaryColors := new PureVal(self, {self.}Prefix, "varyColors"); container_.Set({self.}XmlChildVaryColors); end - return {self.}XmlChildVaryColors; + return {self.}XmlChildVaryColors and not {self.}XmlChildVaryColors.Removed ? {self.}XmlChildVaryColors : fallback_.VaryColors; +end; + +function BarChart.WriteXmlChildVaryColors(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildVaryColors) then + {self.}RemoveChild({self.}XmlChildVaryColors); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildVaryColors := v; + container_.Set({self.}XmlChildVaryColors); + end + else begin + raise "Invalid assignment: VaryColors expects PureVal or nil"; + end end; function BarChart.ReadXmlChildGapWidth(): PureVal; @@ -6006,26 +8397,84 @@ begin {self.}XmlChildGapWidth := new PureVal(self, {self.}Prefix, "gapWidth"); container_.Set({self.}XmlChildGapWidth); end - return {self.}XmlChildGapWidth; + return {self.}XmlChildGapWidth and not {self.}XmlChildGapWidth.Removed ? {self.}XmlChildGapWidth : fallback_.GapWidth; end; -function BarChart.ReadSers(_index); +function BarChart.WriteXmlChildGapWidth(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildGapWidth) then + {self.}RemoveChild({self.}XmlChildGapWidth); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildGapWidth := v; + container_.Set({self.}XmlChildGapWidth); + end + else begin + raise "Invalid assignment: GapWidth expects PureVal or nil"; + end +end; + +function BarChart.ReadSers(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "ser", ind); end; -function BarChart.ReadAxIds(_index); +function BarChart.WriteSers(_index: integer; _value: nil_OR_Ser); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSers(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "ser", ind, _value) then + raise format("Index out of range: Sers[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Sers expects nil or Ser"; + end +end; + +function BarChart.ReadAxIds(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "axId", ind); end; +function BarChart.WriteAxIds(_index: integer; _value: nil_OR_PureVal); +begin + if ifnil(_value) then + begin + obj := {self.}ReadAxIds(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "axId", ind, _value) then + raise format("Index out of range: AxIds[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: AxIds expects nil or PureVal"; + end +end; + function BarChart.AddSer(): Ser; begin obj := new Ser(self, {self.}Prefix, "ser"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6033,6 +8482,7 @@ end; function BarChart.AddAxId(): PureVal; begin obj := new PureVal(self, {self.}Prefix, "axId"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6040,6 +8490,7 @@ end; function BarChart.AppendSer(): Ser; begin obj := new Ser(self, {self.}Prefix, "ser"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -6047,24 +8498,25 @@ end; function BarChart.AppendAxId(): PureVal; begin obj := new PureVal(self, {self.}Prefix, "axId"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Ser.Create();overload; +function Ser.create();overload; begin - {self.}Create(nil, "c", "ser"); + {self.}create(nil, "c", "ser"); end; -function Ser.Create(_node: XmlNode);overload; +function Ser.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Ser.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Ser.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Ser.Init();override; @@ -6090,7 +8542,7 @@ function Ser.Copy(_obj: Ser);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildIdx) then {self.}Idx.Copy(_obj.XmlChildIdx); if not ifnil(_obj.XmlChild_Order) then @@ -6110,6 +8562,28 @@ begin tslassigning := tslassigning_backup; end; +function Ser.Clone(): Ser;override; +begin + obj := new Ser(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "idx": obj.Idx := element.Clone(); + pre + "order": obj._Order := element.Clone(); + pre + "tx": obj.Tx := element.Clone(); + pre + "invertIfNegative": obj.InvertIfNegative := element.Clone(); + pre + "dLbls": obj.DLbls := element.Clone(); + pre + "cat": obj.Cat := element.Clone(); + pre + "val": obj.Val := element.Clone(); + pre + "extLst": obj.ExtLst := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Ser.ConvertToPoint();override; begin if not ifnil({self.}XmlChildIdx) then @@ -6137,7 +8611,26 @@ begin {self.}XmlChildIdx := new PureVal(self, {self.}Prefix, "idx"); container_.Set({self.}XmlChildIdx); end - return {self.}XmlChildIdx; + return {self.}XmlChildIdx and not {self.}XmlChildIdx.Removed ? {self.}XmlChildIdx : fallback_.Idx; +end; + +function Ser.WriteXmlChildIdx(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildIdx) then + {self.}RemoveChild({self.}XmlChildIdx); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildIdx := v; + container_.Set({self.}XmlChildIdx); + end + else begin + raise "Invalid assignment: Idx expects PureVal or nil"; + end end; function Ser.ReadXmlChild_Order(): PureVal; @@ -6147,7 +8640,26 @@ begin {self.}XmlChild_Order := new PureVal(self, {self.}Prefix, "order"); container_.Set({self.}XmlChild_Order); end - return {self.}XmlChild_Order; + return {self.}XmlChild_Order and not {self.}XmlChild_Order.Removed ? {self.}XmlChild_Order : fallback_._Order; +end; + +function Ser.WriteXmlChild_Order(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChild_Order) then + {self.}RemoveChild({self.}XmlChild_Order); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChild_Order := v; + container_.Set({self.}XmlChild_Order); + end + else begin + raise "Invalid assignment: _Order expects PureVal or nil"; + end end; function Ser.ReadXmlChildTx(): Tx; @@ -6157,7 +8669,26 @@ begin {self.}XmlChildTx := new Tx(self, {self.}Prefix, "tx"); container_.Set({self.}XmlChildTx); end - return {self.}XmlChildTx; + return {self.}XmlChildTx and not {self.}XmlChildTx.Removed ? {self.}XmlChildTx : fallback_.Tx; +end; + +function Ser.WriteXmlChildTx(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTx) then + {self.}RemoveChild({self.}XmlChildTx); + end + else if v is class(Tx) then + begin + v.Parent := self; + {self.}XmlChildTx := v; + container_.Set({self.}XmlChildTx); + end + else begin + raise "Invalid assignment: Tx expects Tx or nil"; + end end; function Ser.ReadXmlChildInvertIfNegative(): PureVal; @@ -6167,7 +8698,26 @@ begin {self.}XmlChildInvertIfNegative := new PureVal(self, {self.}Prefix, "invertIfNegative"); container_.Set({self.}XmlChildInvertIfNegative); end - return {self.}XmlChildInvertIfNegative; + return {self.}XmlChildInvertIfNegative and not {self.}XmlChildInvertIfNegative.Removed ? {self.}XmlChildInvertIfNegative : fallback_.InvertIfNegative; +end; + +function Ser.WriteXmlChildInvertIfNegative(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildInvertIfNegative) then + {self.}RemoveChild({self.}XmlChildInvertIfNegative); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildInvertIfNegative := v; + container_.Set({self.}XmlChildInvertIfNegative); + end + else begin + raise "Invalid assignment: InvertIfNegative expects PureVal or nil"; + end end; function Ser.ReadXmlChildDLbls(): DLbls; @@ -6177,7 +8727,26 @@ begin {self.}XmlChildDLbls := new DLbls(self, {self.}Prefix, "dLbls"); container_.Set({self.}XmlChildDLbls); end - return {self.}XmlChildDLbls; + return {self.}XmlChildDLbls and not {self.}XmlChildDLbls.Removed ? {self.}XmlChildDLbls : fallback_.DLbls; +end; + +function Ser.WriteXmlChildDLbls(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDLbls) then + {self.}RemoveChild({self.}XmlChildDLbls); + end + else if v is class(DLbls) then + begin + v.Parent := self; + {self.}XmlChildDLbls := v; + container_.Set({self.}XmlChildDLbls); + end + else begin + raise "Invalid assignment: DLbls expects DLbls or nil"; + end end; function Ser.ReadXmlChildCat(): Cat; @@ -6187,7 +8756,26 @@ begin {self.}XmlChildCat := new Cat(self, {self.}Prefix, "cat"); container_.Set({self.}XmlChildCat); end - return {self.}XmlChildCat; + return {self.}XmlChildCat and not {self.}XmlChildCat.Removed ? {self.}XmlChildCat : fallback_.Cat; +end; + +function Ser.WriteXmlChildCat(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCat) then + {self.}RemoveChild({self.}XmlChildCat); + end + else if v is class(Cat) then + begin + v.Parent := self; + {self.}XmlChildCat := v; + container_.Set({self.}XmlChildCat); + end + else begin + raise "Invalid assignment: Cat expects Cat or nil"; + end end; function Ser.ReadXmlChildVal(): Val; @@ -6197,7 +8785,26 @@ begin {self.}XmlChildVal := new Val(self, {self.}Prefix, "val"); container_.Set({self.}XmlChildVal); end - return {self.}XmlChildVal; + return {self.}XmlChildVal and not {self.}XmlChildVal.Removed ? {self.}XmlChildVal : fallback_.Val; +end; + +function Ser.WriteXmlChildVal(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildVal) then + {self.}RemoveChild({self.}XmlChildVal); + end + else if v is class(Val) then + begin + v.Parent := self; + {self.}XmlChildVal := v; + container_.Set({self.}XmlChildVal); + end + else begin + raise "Invalid assignment: Val expects Val or nil"; + end end; function Ser.ReadXmlChildExtLst(): ExtLst; @@ -6207,23 +8814,42 @@ begin {self.}XmlChildExtLst := new ExtLst(self, {self.}Prefix, "extLst"); container_.Set({self.}XmlChildExtLst); end - return {self.}XmlChildExtLst; + return {self.}XmlChildExtLst and not {self.}XmlChildExtLst.Removed ? {self.}XmlChildExtLst : fallback_.ExtLst; end; -function DLbls.Create();overload; +function Ser.WriteXmlChildExtLst(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "dLbls"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildExtLst) then + {self.}RemoveChild({self.}XmlChildExtLst); + end + else if v is class(ExtLst) then + begin + v.Parent := self; + {self.}XmlChildExtLst := v; + container_.Set({self.}XmlChildExtLst); + end + else begin + raise "Invalid assignment: ExtLst expects ExtLst or nil"; + end end; -function DLbls.Create(_node: XmlNode);overload; +function DLbls.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "dLbls"); end; -function DLbls.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function DLbls.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function DLbls.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function DLbls.Init();override; @@ -6250,7 +8876,7 @@ function DLbls.Copy(_obj: DLbls);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSpPr) then {self.}SpPr.Copy(_obj.XmlChildSpPr); if not ifnil(_obj.XmlChildShowLegendKey) then @@ -6272,6 +8898,29 @@ begin tslassigning := tslassigning_backup; end; +function DLbls.Clone(): DLbls;override; +begin + obj := new DLbls(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "spPr": obj.SpPr := element.Clone(); + pre + "showLegendKey": obj.ShowLegendKey := element.Clone(); + pre + "showVal": obj.ShowVal := element.Clone(); + pre + "showCatName": obj.ShowCatName := element.Clone(); + pre + "showSerName": obj.ShowSerName := element.Clone(); + pre + "showPercent": obj.ShowPercent := element.Clone(); + pre + "showBubbleSize": obj.ShowBubbleSize := element.Clone(); + pre + "showLeaderLines": obj.ShowLeaderLines := element.Clone(); + pre + "extLst": obj.ExtLst := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function DLbls.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSpPr) then @@ -6301,7 +8950,26 @@ begin {self.}XmlChildSpPr := new SpPr(self, {self.}Prefix, "spPr"); container_.Set({self.}XmlChildSpPr); end - return {self.}XmlChildSpPr; + return {self.}XmlChildSpPr and not {self.}XmlChildSpPr.Removed ? {self.}XmlChildSpPr : fallback_.SpPr; +end; + +function DLbls.WriteXmlChildSpPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSpPr) then + {self.}RemoveChild({self.}XmlChildSpPr); + end + else if v is class(SpPr) then + begin + v.Parent := self; + {self.}XmlChildSpPr := v; + container_.Set({self.}XmlChildSpPr); + end + else begin + raise "Invalid assignment: SpPr expects SpPr or nil"; + end end; function DLbls.ReadXmlChildShowLegendKey(): PureVal; @@ -6311,7 +8979,26 @@ begin {self.}XmlChildShowLegendKey := new PureVal(self, {self.}Prefix, "showLegendKey"); container_.Set({self.}XmlChildShowLegendKey); end - return {self.}XmlChildShowLegendKey; + return {self.}XmlChildShowLegendKey and not {self.}XmlChildShowLegendKey.Removed ? {self.}XmlChildShowLegendKey : fallback_.ShowLegendKey; +end; + +function DLbls.WriteXmlChildShowLegendKey(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowLegendKey) then + {self.}RemoveChild({self.}XmlChildShowLegendKey); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowLegendKey := v; + container_.Set({self.}XmlChildShowLegendKey); + end + else begin + raise "Invalid assignment: ShowLegendKey expects PureVal or nil"; + end end; function DLbls.ReadXmlChildShowVal(): PureVal; @@ -6321,7 +9008,26 @@ begin {self.}XmlChildShowVal := new PureVal(self, {self.}Prefix, "showVal"); container_.Set({self.}XmlChildShowVal); end - return {self.}XmlChildShowVal; + return {self.}XmlChildShowVal and not {self.}XmlChildShowVal.Removed ? {self.}XmlChildShowVal : fallback_.ShowVal; +end; + +function DLbls.WriteXmlChildShowVal(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowVal) then + {self.}RemoveChild({self.}XmlChildShowVal); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowVal := v; + container_.Set({self.}XmlChildShowVal); + end + else begin + raise "Invalid assignment: ShowVal expects PureVal or nil"; + end end; function DLbls.ReadXmlChildShowCatName(): PureVal; @@ -6331,7 +9037,26 @@ begin {self.}XmlChildShowCatName := new PureVal(self, {self.}Prefix, "showCatName"); container_.Set({self.}XmlChildShowCatName); end - return {self.}XmlChildShowCatName; + return {self.}XmlChildShowCatName and not {self.}XmlChildShowCatName.Removed ? {self.}XmlChildShowCatName : fallback_.ShowCatName; +end; + +function DLbls.WriteXmlChildShowCatName(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowCatName) then + {self.}RemoveChild({self.}XmlChildShowCatName); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowCatName := v; + container_.Set({self.}XmlChildShowCatName); + end + else begin + raise "Invalid assignment: ShowCatName expects PureVal or nil"; + end end; function DLbls.ReadXmlChildShowSerName(): PureVal; @@ -6341,7 +9066,26 @@ begin {self.}XmlChildShowSerName := new PureVal(self, {self.}Prefix, "showSerName"); container_.Set({self.}XmlChildShowSerName); end - return {self.}XmlChildShowSerName; + return {self.}XmlChildShowSerName and not {self.}XmlChildShowSerName.Removed ? {self.}XmlChildShowSerName : fallback_.ShowSerName; +end; + +function DLbls.WriteXmlChildShowSerName(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowSerName) then + {self.}RemoveChild({self.}XmlChildShowSerName); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowSerName := v; + container_.Set({self.}XmlChildShowSerName); + end + else begin + raise "Invalid assignment: ShowSerName expects PureVal or nil"; + end end; function DLbls.ReadXmlChildShowPercent(): PureVal; @@ -6351,7 +9095,26 @@ begin {self.}XmlChildShowPercent := new PureVal(self, {self.}Prefix, "showPercent"); container_.Set({self.}XmlChildShowPercent); end - return {self.}XmlChildShowPercent; + return {self.}XmlChildShowPercent and not {self.}XmlChildShowPercent.Removed ? {self.}XmlChildShowPercent : fallback_.ShowPercent; +end; + +function DLbls.WriteXmlChildShowPercent(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowPercent) then + {self.}RemoveChild({self.}XmlChildShowPercent); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowPercent := v; + container_.Set({self.}XmlChildShowPercent); + end + else begin + raise "Invalid assignment: ShowPercent expects PureVal or nil"; + end end; function DLbls.ReadXmlChildShowBubbleSize(): PureVal; @@ -6361,7 +9124,26 @@ begin {self.}XmlChildShowBubbleSize := new PureVal(self, {self.}Prefix, "showBubbleSize"); container_.Set({self.}XmlChildShowBubbleSize); end - return {self.}XmlChildShowBubbleSize; + return {self.}XmlChildShowBubbleSize and not {self.}XmlChildShowBubbleSize.Removed ? {self.}XmlChildShowBubbleSize : fallback_.ShowBubbleSize; +end; + +function DLbls.WriteXmlChildShowBubbleSize(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowBubbleSize) then + {self.}RemoveChild({self.}XmlChildShowBubbleSize); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowBubbleSize := v; + container_.Set({self.}XmlChildShowBubbleSize); + end + else begin + raise "Invalid assignment: ShowBubbleSize expects PureVal or nil"; + end end; function DLbls.ReadXmlChildShowLeaderLines(): PureVal; @@ -6371,7 +9153,26 @@ begin {self.}XmlChildShowLeaderLines := new PureVal(self, {self.}Prefix, "showLeaderLines"); container_.Set({self.}XmlChildShowLeaderLines); end - return {self.}XmlChildShowLeaderLines; + return {self.}XmlChildShowLeaderLines and not {self.}XmlChildShowLeaderLines.Removed ? {self.}XmlChildShowLeaderLines : fallback_.ShowLeaderLines; +end; + +function DLbls.WriteXmlChildShowLeaderLines(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowLeaderLines) then + {self.}RemoveChild({self.}XmlChildShowLeaderLines); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowLeaderLines := v; + container_.Set({self.}XmlChildShowLeaderLines); + end + else begin + raise "Invalid assignment: ShowLeaderLines expects PureVal or nil"; + end end; function DLbls.ReadXmlChildExtLst(): ExtLst; @@ -6381,23 +9182,42 @@ begin {self.}XmlChildExtLst := new ExtLst(self, {self.}Prefix, "extLst"); container_.Set({self.}XmlChildExtLst); end - return {self.}XmlChildExtLst; + return {self.}XmlChildExtLst and not {self.}XmlChildExtLst.Removed ? {self.}XmlChildExtLst : fallback_.ExtLst; end; -function Cat.Create();overload; +function DLbls.WriteXmlChildExtLst(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "cat"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildExtLst) then + {self.}RemoveChild({self.}XmlChildExtLst); + end + else if v is class(ExtLst) then + begin + v.Parent := self; + {self.}XmlChildExtLst := v; + container_.Set({self.}XmlChildExtLst); + end + else begin + raise "Invalid assignment: ExtLst expects ExtLst or nil"; + end end; -function Cat.Create(_node: XmlNode);overload; +function Cat.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "cat"); end; -function Cat.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Cat.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Cat.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Cat.Init();override; @@ -6416,12 +9236,27 @@ function Cat.Copy(_obj: Cat);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildStrRef) then {self.}StrRef.Copy(_obj.XmlChildStrRef); tslassigning := tslassigning_backup; end; +function Cat.Clone(): Cat;override; +begin + obj := new Cat(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "strRef": obj.StrRef := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Cat.ConvertToPoint();override; begin if not ifnil({self.}XmlChildStrRef) then @@ -6435,23 +9270,42 @@ begin {self.}XmlChildStrRef := new StrRef(self, {self.}Prefix, "strRef"); container_.Set({self.}XmlChildStrRef); end - return {self.}XmlChildStrRef; + return {self.}XmlChildStrRef and not {self.}XmlChildStrRef.Removed ? {self.}XmlChildStrRef : fallback_.StrRef; end; -function StrRef.Create();overload; +function Cat.WriteXmlChildStrRef(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "strRef"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildStrRef) then + {self.}RemoveChild({self.}XmlChildStrRef); + end + else if v is class(StrRef) then + begin + v.Parent := self; + {self.}XmlChildStrRef := v; + container_.Set({self.}XmlChildStrRef); + end + else begin + raise "Invalid assignment: StrRef expects StrRef or nil"; + end end; -function StrRef.Create(_node: XmlNode);overload; +function StrRef.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "strRef"); end; -function StrRef.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function StrRef.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function StrRef.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function StrRef.Init();override; @@ -6471,7 +9325,7 @@ function StrRef.Copy(_obj: StrRef);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildF) then {self.}F.Copy(_obj.XmlChildF); if not ifnil(_obj.XmlChildStrCache) then @@ -6479,9 +9333,24 @@ begin tslassigning := tslassigning_backup; end; +function StrRef.Clone(): StrRef;override; +begin + obj := new StrRef(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "f": obj.F := element.Clone(); + pre + "strCache": obj.StrCache := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function StrRef.ConvertToPoint();override; begin - if not ifnil({self.}XmlChildF) then if not ifnil({self.}XmlChildStrCache) then {self.}XmlChildStrCache.ConvertToPoint(); end; @@ -6493,7 +9362,25 @@ begin {self.}XmlChildF := new OpenXmlTextElement(self, {self.}Prefix, "f"); container_.Set({self.}XmlChildF); end - return {self.}XmlChildF; + return {self.}XmlChildF and not {self.}XmlChildF.Removed ? {self.}XmlChildF : fallback_.F; +end; + +function StrRef.WriteXmlChildF(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildF) then + {self.}RemoveChild({self.}XmlChildF); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildF := _value; + container_.Set({self.}XmlChildF); + end + else begin + raise "Invalid assignment: F expects nil or OpenXmlTextElement"; + end end; function StrRef.ReadXmlChildStrCache(): StrCache; @@ -6503,23 +9390,42 @@ begin {self.}XmlChildStrCache := new StrCache(self, {self.}Prefix, "strCache"); container_.Set({self.}XmlChildStrCache); end - return {self.}XmlChildStrCache; + return {self.}XmlChildStrCache and not {self.}XmlChildStrCache.Removed ? {self.}XmlChildStrCache : fallback_.StrCache; end; -function Val.Create();overload; +function StrRef.WriteXmlChildStrCache(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "val"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildStrCache) then + {self.}RemoveChild({self.}XmlChildStrCache); + end + else if v is class(StrCache) then + begin + v.Parent := self; + {self.}XmlChildStrCache := v; + container_.Set({self.}XmlChildStrCache); + end + else begin + raise "Invalid assignment: StrCache expects StrCache or nil"; + end end; -function Val.Create(_node: XmlNode);overload; +function Val.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "val"); end; -function Val.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Val.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Val.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Val.Init();override; @@ -6538,12 +9444,27 @@ function Val.Copy(_obj: Val);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildNumRef) then {self.}NumRef.Copy(_obj.XmlChildNumRef); tslassigning := tslassigning_backup; end; +function Val.Clone(): Val;override; +begin + obj := new Val(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "numRef": obj.NumRef := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Val.ConvertToPoint();override; begin if not ifnil({self.}XmlChildNumRef) then @@ -6557,23 +9478,42 @@ begin {self.}XmlChildNumRef := new NumRef(self, {self.}Prefix, "numRef"); container_.Set({self.}XmlChildNumRef); end - return {self.}XmlChildNumRef; + return {self.}XmlChildNumRef and not {self.}XmlChildNumRef.Removed ? {self.}XmlChildNumRef : fallback_.NumRef; end; -function NumRef.Create();overload; +function Val.WriteXmlChildNumRef(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "numRef"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNumRef) then + {self.}RemoveChild({self.}XmlChildNumRef); + end + else if v is class(NumRef) then + begin + v.Parent := self; + {self.}XmlChildNumRef := v; + container_.Set({self.}XmlChildNumRef); + end + else begin + raise "Invalid assignment: NumRef expects NumRef or nil"; + end end; -function NumRef.Create(_node: XmlNode);overload; +function NumRef.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "numRef"); end; -function NumRef.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function NumRef.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function NumRef.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function NumRef.Init();override; @@ -6593,7 +9533,7 @@ function NumRef.Copy(_obj: NumRef);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildF) then {self.}F.Copy(_obj.XmlChildF); if not ifnil(_obj.XmlChildNumCache) then @@ -6601,9 +9541,24 @@ begin tslassigning := tslassigning_backup; end; +function NumRef.Clone(): NumRef;override; +begin + obj := new NumRef(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "f": obj.F := element.Clone(); + pre + "numCache": obj.NumCache := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function NumRef.ConvertToPoint();override; begin - if not ifnil({self.}XmlChildF) then if not ifnil({self.}XmlChildNumCache) then {self.}XmlChildNumCache.ConvertToPoint(); end; @@ -6615,7 +9570,25 @@ begin {self.}XmlChildF := new OpenXmlTextElement(self, {self.}Prefix, "f"); container_.Set({self.}XmlChildF); end - return {self.}XmlChildF; + return {self.}XmlChildF and not {self.}XmlChildF.Removed ? {self.}XmlChildF : fallback_.F; +end; + +function NumRef.WriteXmlChildF(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildF) then + {self.}RemoveChild({self.}XmlChildF); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildF := _value; + container_.Set({self.}XmlChildF); + end + else begin + raise "Invalid assignment: F expects nil or OpenXmlTextElement"; + end end; function NumRef.ReadXmlChildNumCache(): NumCache; @@ -6625,23 +9598,42 @@ begin {self.}XmlChildNumCache := new NumCache(self, {self.}Prefix, "numCache"); container_.Set({self.}XmlChildNumCache); end - return {self.}XmlChildNumCache; + return {self.}XmlChildNumCache and not {self.}XmlChildNumCache.Removed ? {self.}XmlChildNumCache : fallback_.NumCache; end; -function StrCache.Create();overload; +function NumRef.WriteXmlChildNumCache(_p1: any; _p2: any); begin - {self.}Create(nil, "c", ""); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNumCache) then + {self.}RemoveChild({self.}XmlChildNumCache); + end + else if v is class(NumCache) then + begin + v.Parent := self; + {self.}XmlChildNumCache := v; + container_.Set({self.}XmlChildNumCache); + end + else begin + raise "Invalid assignment: NumCache expects NumCache or nil"; + end end; -function StrCache.Create(_node: XmlNode);overload; +function StrCache.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", ""); end; -function StrCache.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function StrCache.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function StrCache.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function StrCache.Init();override; @@ -6661,12 +9653,27 @@ function StrCache.Copy(_obj: StrCache);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildPtCount) then {self.}PtCount.Copy(_obj.XmlChildPtCount); tslassigning := tslassigning_backup; end; +function StrCache.Clone(): StrCache;override; +begin + obj := new StrCache(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ptCount": obj.PtCount := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function StrCache.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPtCount) then @@ -6683,19 +9690,58 @@ begin {self.}XmlChildPtCount := new PureVal(self, {self.}Prefix, "ptCount"); container_.Set({self.}XmlChildPtCount); end - return {self.}XmlChildPtCount; + return {self.}XmlChildPtCount and not {self.}XmlChildPtCount.Removed ? {self.}XmlChildPtCount : fallback_.PtCount; end; -function StrCache.ReadPts(_index); +function StrCache.WriteXmlChildPtCount(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPtCount) then + {self.}RemoveChild({self.}XmlChildPtCount); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildPtCount := v; + container_.Set({self.}XmlChildPtCount); + end + else begin + raise "Invalid assignment: PtCount expects PureVal or nil"; + end +end; + +function StrCache.ReadPts(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "pt", ind); end; +function StrCache.WritePts(_index: integer; _value: nil_OR_Pt); +begin + if ifnil(_value) then + begin + obj := {self.}ReadPts(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "pt", ind, _value) then + raise format("Index out of range: Pts[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Pts expects nil or Pt"; + end +end; + function StrCache.AddPt(): Pt; begin obj := new Pt(self, {self.}Prefix, "pt"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6703,24 +9749,25 @@ end; function StrCache.AppendPt(): Pt; begin obj := new Pt(self, {self.}Prefix, "pt"); + obj.Enable := true; container_.Append(obj); return obj; end; -function NumCache.Create();overload; +function NumCache.create();overload; begin - {self.}Create(nil, "c", ""); + {self.}create(nil, "c", ""); end; -function NumCache.Create(_node: XmlNode);overload; +function NumCache.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function NumCache.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function NumCache.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function NumCache.Init();override; @@ -6741,7 +9788,7 @@ function NumCache.Copy(_obj: NumCache);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildFormatCode) then {self.}FormatCode.Copy(_obj.XmlChildFormatCode); if not ifnil(_obj.XmlChildPtCount) then @@ -6749,9 +9796,24 @@ begin tslassigning := tslassigning_backup; end; +function NumCache.Clone(): NumCache;override; +begin + obj := new NumCache(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "formatCode": obj.FormatCode := element.Clone(); + pre + "ptCount": obj.PtCount := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function NumCache.ConvertToPoint();override; begin - if not ifnil({self.}XmlChildFormatCode) then if not ifnil({self.}XmlChildPtCount) then {self.}XmlChildPtCount.ConvertToPoint(); elems := {self.}Pts(); @@ -6766,7 +9828,25 @@ begin {self.}XmlChildFormatCode := new OpenXmlTextElement(self, {self.}Prefix, "formatCode"); container_.Set({self.}XmlChildFormatCode); end - return {self.}XmlChildFormatCode; + return {self.}XmlChildFormatCode and not {self.}XmlChildFormatCode.Removed ? {self.}XmlChildFormatCode : fallback_.FormatCode; +end; + +function NumCache.WriteXmlChildFormatCode(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildFormatCode) then + {self.}RemoveChild({self.}XmlChildFormatCode); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildFormatCode := _value; + container_.Set({self.}XmlChildFormatCode); + end + else begin + raise "Invalid assignment: FormatCode expects nil or OpenXmlTextElement"; + end end; function NumCache.ReadXmlChildPtCount(): PureVal; @@ -6776,19 +9856,58 @@ begin {self.}XmlChildPtCount := new PureVal(self, {self.}Prefix, "ptCount"); container_.Set({self.}XmlChildPtCount); end - return {self.}XmlChildPtCount; + return {self.}XmlChildPtCount and not {self.}XmlChildPtCount.Removed ? {self.}XmlChildPtCount : fallback_.PtCount; end; -function NumCache.ReadPts(_index); +function NumCache.WriteXmlChildPtCount(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPtCount) then + {self.}RemoveChild({self.}XmlChildPtCount); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildPtCount := v; + container_.Set({self.}XmlChildPtCount); + end + else begin + raise "Invalid assignment: PtCount expects PureVal or nil"; + end +end; + +function NumCache.ReadPts(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "pt", ind); end; +function NumCache.WritePts(_index: integer; _value: nil_OR_Pt); +begin + if ifnil(_value) then + begin + obj := {self.}ReadPts(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "pt", ind, _value) then + raise format("Index out of range: Pts[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Pts expects nil or Pt"; + end +end; + function NumCache.AddPt(): Pt; begin obj := new Pt(self, {self.}Prefix, "pt"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -6796,24 +9915,25 @@ end; function NumCache.AppendPt(): Pt; begin obj := new Pt(self, {self.}Prefix, "pt"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Pt.Create();overload; +function Pt.create();overload; begin - {self.}Create(nil, "c", "pt"); + {self.}create(nil, "c", "pt"); end; -function Pt.Create(_node: XmlNode);overload; +function Pt.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Pt.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Pt.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Pt.Init();override; @@ -6833,7 +9953,7 @@ function Pt.Copy(_obj: Pt);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Idx) then {self.}Idx := _obj.Idx; if not ifnil(_obj.XmlChildV) then @@ -6841,22 +9961,39 @@ begin tslassigning := tslassigning_backup; end; +function Pt.Clone(): Pt;override; +begin + obj := new Pt(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Idx) then + obj.Idx := {self.}Idx; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "v": obj.V := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Pt.ConvertToPoint();override; begin - if not ifnil({self.}XmlChildV) then + end; function Pt.ReadXmlAttrIdx(); begin - return {self.}XmlAttrIdx.Value; + return ifnil({self.}XmlAttrIdx.Value) ? fallback_.XmlAttrIdx.Value : {self.}XmlAttrIdx.Value; end; -function Pt.WriteXmlAttrIdx(_value); +function Pt.WriteXmlAttrIdx(_value: any); begin if ifnil({self.}XmlAttrIdx) then begin {self.}XmlAttrIdx := new OpenXmlAttribute("", "idx", nil); - attributes_[length(attributes_)] := {self.}XmlAttrIdx; + attributes_["idx"] := {self.}XmlAttrIdx; end {self.}XmlAttrIdx.Value := _value; end; @@ -6868,23 +10005,41 @@ begin {self.}XmlChildV := new OpenXmlTextElement(self, {self.}Prefix, "v"); container_.Set({self.}XmlChildV); end - return {self.}XmlChildV; + return {self.}XmlChildV and not {self.}XmlChildV.Removed ? {self.}XmlChildV : fallback_.V; end; -function Ax.Create();overload; +function Pt.WriteXmlChildV(_value: nil_or_OpenXmlTextElement); begin - {self.}Create(nil, "c", ""); + if ifnil(_value) then + begin + if ifObj({self.}XmlChildV) then + {self.}RemoveChild({self.}XmlChildV); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildV := _value; + container_.Set({self.}XmlChildV); + end + else begin + raise "Invalid assignment: V expects nil or OpenXmlTextElement"; + end end; -function Ax.Create(_node: XmlNode);overload; +function Ax.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", ""); end; -function Ax.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Ax.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Ax.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Ax.Init();override; @@ -6919,7 +10074,7 @@ function Ax.Copy(_obj: Ax);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildAxId) then {self.}AxId.Copy(_obj.XmlChildAxId); if not ifnil(_obj.XmlChildScaling) then @@ -6957,6 +10112,37 @@ begin tslassigning := tslassigning_backup; end; +function Ax.Clone(): Ax;override; +begin + obj := new Ax(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "axId": obj.AxId := element.Clone(); + pre + "scaling": obj.Scaling := element.Clone(); + pre + "delete": obj._Delete := element.Clone(); + pre + "axPos": obj.AxPos := element.Clone(); + pre + "numFmt": obj.NumFmt := element.Clone(); + pre + "majorTickMark": obj.MajorTickMark := element.Clone(); + pre + "minorTickMark": obj.MinorTickMark := element.Clone(); + pre + "tickLblPos": obj.TickLblPos := element.Clone(); + pre + "spPr": obj.SpPr := element.Clone(); + pre + "txPr": obj.TxPr := element.Clone(); + pre + "crossAx": obj.CrossAx := element.Clone(); + pre + "crosses": obj.Crosses := element.Clone(); + pre + "crossBetween": obj.CrossBetween := element.Clone(); + pre + "auto": obj.Auto := element.Clone(); + pre + "lblAlgn": obj.LblAlgn := element.Clone(); + pre + "lblOffset": obj.LblOffset := element.Clone(); + pre + "noMultiLvlLbl": obj.NoMultiLvlLbl := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Ax.ConvertToPoint();override; begin if not ifnil({self.}XmlChildAxId) then @@ -7002,7 +10188,26 @@ begin {self.}XmlChildAxId := new PureVal(self, {self.}Prefix, "axId"); container_.Set({self.}XmlChildAxId); end - return {self.}XmlChildAxId; + return {self.}XmlChildAxId and not {self.}XmlChildAxId.Removed ? {self.}XmlChildAxId : fallback_.AxId; +end; + +function Ax.WriteXmlChildAxId(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAxId) then + {self.}RemoveChild({self.}XmlChildAxId); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildAxId := v; + container_.Set({self.}XmlChildAxId); + end + else begin + raise "Invalid assignment: AxId expects PureVal or nil"; + end end; function Ax.ReadXmlChildScaling(): Scaling; @@ -7012,7 +10217,26 @@ begin {self.}XmlChildScaling := new Scaling(self, {self.}Prefix, "scaling"); container_.Set({self.}XmlChildScaling); end - return {self.}XmlChildScaling; + return {self.}XmlChildScaling and not {self.}XmlChildScaling.Removed ? {self.}XmlChildScaling : fallback_.Scaling; +end; + +function Ax.WriteXmlChildScaling(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildScaling) then + {self.}RemoveChild({self.}XmlChildScaling); + end + else if v is class(Scaling) then + begin + v.Parent := self; + {self.}XmlChildScaling := v; + container_.Set({self.}XmlChildScaling); + end + else begin + raise "Invalid assignment: Scaling expects Scaling or nil"; + end end; function Ax.ReadXmlChild_Delete(): PureVal; @@ -7022,7 +10246,26 @@ begin {self.}XmlChild_Delete := new PureVal(self, {self.}Prefix, "delete"); container_.Set({self.}XmlChild_Delete); end - return {self.}XmlChild_Delete; + return {self.}XmlChild_Delete and not {self.}XmlChild_Delete.Removed ? {self.}XmlChild_Delete : fallback_._Delete; +end; + +function Ax.WriteXmlChild_Delete(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChild_Delete) then + {self.}RemoveChild({self.}XmlChild_Delete); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChild_Delete := v; + container_.Set({self.}XmlChild_Delete); + end + else begin + raise "Invalid assignment: _Delete expects PureVal or nil"; + end end; function Ax.ReadXmlChildAxPos(): PureVal; @@ -7032,7 +10275,26 @@ begin {self.}XmlChildAxPos := new PureVal(self, {self.}Prefix, "axPos"); container_.Set({self.}XmlChildAxPos); end - return {self.}XmlChildAxPos; + return {self.}XmlChildAxPos and not {self.}XmlChildAxPos.Removed ? {self.}XmlChildAxPos : fallback_.AxPos; +end; + +function Ax.WriteXmlChildAxPos(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAxPos) then + {self.}RemoveChild({self.}XmlChildAxPos); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildAxPos := v; + container_.Set({self.}XmlChildAxPos); + end + else begin + raise "Invalid assignment: AxPos expects PureVal or nil"; + end end; function Ax.ReadXmlChildNumFmt(): NumFmt; @@ -7042,7 +10304,26 @@ begin {self.}XmlChildNumFmt := new NumFmt(self, {self.}Prefix, "numFmt"); container_.Set({self.}XmlChildNumFmt); end - return {self.}XmlChildNumFmt; + return {self.}XmlChildNumFmt and not {self.}XmlChildNumFmt.Removed ? {self.}XmlChildNumFmt : fallback_.NumFmt; +end; + +function Ax.WriteXmlChildNumFmt(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNumFmt) then + {self.}RemoveChild({self.}XmlChildNumFmt); + end + else if v is class(NumFmt) then + begin + v.Parent := self; + {self.}XmlChildNumFmt := v; + container_.Set({self.}XmlChildNumFmt); + end + else begin + raise "Invalid assignment: NumFmt expects NumFmt or nil"; + end end; function Ax.ReadXmlChildMajorTickMark(): PureVal; @@ -7052,7 +10333,26 @@ begin {self.}XmlChildMajorTickMark := new PureVal(self, {self.}Prefix, "majorTickMark"); container_.Set({self.}XmlChildMajorTickMark); end - return {self.}XmlChildMajorTickMark; + return {self.}XmlChildMajorTickMark and not {self.}XmlChildMajorTickMark.Removed ? {self.}XmlChildMajorTickMark : fallback_.MajorTickMark; +end; + +function Ax.WriteXmlChildMajorTickMark(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildMajorTickMark) then + {self.}RemoveChild({self.}XmlChildMajorTickMark); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildMajorTickMark := v; + container_.Set({self.}XmlChildMajorTickMark); + end + else begin + raise "Invalid assignment: MajorTickMark expects PureVal or nil"; + end end; function Ax.ReadXmlChildMinorTickMark(): PureVal; @@ -7062,7 +10362,26 @@ begin {self.}XmlChildMinorTickMark := new PureVal(self, {self.}Prefix, "minorTickMark"); container_.Set({self.}XmlChildMinorTickMark); end - return {self.}XmlChildMinorTickMark; + return {self.}XmlChildMinorTickMark and not {self.}XmlChildMinorTickMark.Removed ? {self.}XmlChildMinorTickMark : fallback_.MinorTickMark; +end; + +function Ax.WriteXmlChildMinorTickMark(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildMinorTickMark) then + {self.}RemoveChild({self.}XmlChildMinorTickMark); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildMinorTickMark := v; + container_.Set({self.}XmlChildMinorTickMark); + end + else begin + raise "Invalid assignment: MinorTickMark expects PureVal or nil"; + end end; function Ax.ReadXmlChildTickLblPos(): PureVal; @@ -7072,7 +10391,26 @@ begin {self.}XmlChildTickLblPos := new PureVal(self, {self.}Prefix, "tickLblPos"); container_.Set({self.}XmlChildTickLblPos); end - return {self.}XmlChildTickLblPos; + return {self.}XmlChildTickLblPos and not {self.}XmlChildTickLblPos.Removed ? {self.}XmlChildTickLblPos : fallback_.TickLblPos; +end; + +function Ax.WriteXmlChildTickLblPos(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTickLblPos) then + {self.}RemoveChild({self.}XmlChildTickLblPos); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildTickLblPos := v; + container_.Set({self.}XmlChildTickLblPos); + end + else begin + raise "Invalid assignment: TickLblPos expects PureVal or nil"; + end end; function Ax.ReadXmlChildSpPr(): SpPr; @@ -7082,7 +10420,26 @@ begin {self.}XmlChildSpPr := new SpPr(self, {self.}Prefix, "spPr"); container_.Set({self.}XmlChildSpPr); end - return {self.}XmlChildSpPr; + return {self.}XmlChildSpPr and not {self.}XmlChildSpPr.Removed ? {self.}XmlChildSpPr : fallback_.SpPr; +end; + +function Ax.WriteXmlChildSpPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSpPr) then + {self.}RemoveChild({self.}XmlChildSpPr); + end + else if v is class(SpPr) then + begin + v.Parent := self; + {self.}XmlChildSpPr := v; + container_.Set({self.}XmlChildSpPr); + end + else begin + raise "Invalid assignment: SpPr expects SpPr or nil"; + end end; function Ax.ReadXmlChildTxPr(): TxPr; @@ -7092,7 +10449,26 @@ begin {self.}XmlChildTxPr := new TxPr(self, {self.}Prefix, "txPr"); container_.Set({self.}XmlChildTxPr); end - return {self.}XmlChildTxPr; + return {self.}XmlChildTxPr and not {self.}XmlChildTxPr.Removed ? {self.}XmlChildTxPr : fallback_.TxPr; +end; + +function Ax.WriteXmlChildTxPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTxPr) then + {self.}RemoveChild({self.}XmlChildTxPr); + end + else if v is class(TxPr) then + begin + v.Parent := self; + {self.}XmlChildTxPr := v; + container_.Set({self.}XmlChildTxPr); + end + else begin + raise "Invalid assignment: TxPr expects TxPr or nil"; + end end; function Ax.ReadXmlChildCrossAx(): PureVal; @@ -7102,7 +10478,26 @@ begin {self.}XmlChildCrossAx := new PureVal(self, {self.}Prefix, "crossAx"); container_.Set({self.}XmlChildCrossAx); end - return {self.}XmlChildCrossAx; + return {self.}XmlChildCrossAx and not {self.}XmlChildCrossAx.Removed ? {self.}XmlChildCrossAx : fallback_.CrossAx; +end; + +function Ax.WriteXmlChildCrossAx(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCrossAx) then + {self.}RemoveChild({self.}XmlChildCrossAx); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildCrossAx := v; + container_.Set({self.}XmlChildCrossAx); + end + else begin + raise "Invalid assignment: CrossAx expects PureVal or nil"; + end end; function Ax.ReadXmlChildCrosses(): PureVal; @@ -7112,7 +10507,26 @@ begin {self.}XmlChildCrosses := new PureVal(self, {self.}Prefix, "crosses"); container_.Set({self.}XmlChildCrosses); end - return {self.}XmlChildCrosses; + return {self.}XmlChildCrosses and not {self.}XmlChildCrosses.Removed ? {self.}XmlChildCrosses : fallback_.Crosses; +end; + +function Ax.WriteXmlChildCrosses(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCrosses) then + {self.}RemoveChild({self.}XmlChildCrosses); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildCrosses := v; + container_.Set({self.}XmlChildCrosses); + end + else begin + raise "Invalid assignment: Crosses expects PureVal or nil"; + end end; function Ax.ReadXmlChildCrossBetween(): PureVal; @@ -7122,7 +10536,26 @@ begin {self.}XmlChildCrossBetween := new PureVal(self, {self.}Prefix, "crossBetween"); container_.Set({self.}XmlChildCrossBetween); end - return {self.}XmlChildCrossBetween; + return {self.}XmlChildCrossBetween and not {self.}XmlChildCrossBetween.Removed ? {self.}XmlChildCrossBetween : fallback_.CrossBetween; +end; + +function Ax.WriteXmlChildCrossBetween(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCrossBetween) then + {self.}RemoveChild({self.}XmlChildCrossBetween); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildCrossBetween := v; + container_.Set({self.}XmlChildCrossBetween); + end + else begin + raise "Invalid assignment: CrossBetween expects PureVal or nil"; + end end; function Ax.ReadXmlChildAuto(): PureVal; @@ -7132,7 +10565,26 @@ begin {self.}XmlChildAuto := new PureVal(self, {self.}Prefix, "auto"); container_.Set({self.}XmlChildAuto); end - return {self.}XmlChildAuto; + return {self.}XmlChildAuto and not {self.}XmlChildAuto.Removed ? {self.}XmlChildAuto : fallback_.Auto; +end; + +function Ax.WriteXmlChildAuto(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAuto) then + {self.}RemoveChild({self.}XmlChildAuto); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildAuto := v; + container_.Set({self.}XmlChildAuto); + end + else begin + raise "Invalid assignment: Auto expects PureVal or nil"; + end end; function Ax.ReadXmlChildLblAlgn(): PureVal; @@ -7142,7 +10594,26 @@ begin {self.}XmlChildLblAlgn := new PureVal(self, {self.}Prefix, "lblAlgn"); container_.Set({self.}XmlChildLblAlgn); end - return {self.}XmlChildLblAlgn; + return {self.}XmlChildLblAlgn and not {self.}XmlChildLblAlgn.Removed ? {self.}XmlChildLblAlgn : fallback_.LblAlgn; +end; + +function Ax.WriteXmlChildLblAlgn(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLblAlgn) then + {self.}RemoveChild({self.}XmlChildLblAlgn); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildLblAlgn := v; + container_.Set({self.}XmlChildLblAlgn); + end + else begin + raise "Invalid assignment: LblAlgn expects PureVal or nil"; + end end; function Ax.ReadXmlChildLblOffset(): PureVal; @@ -7152,7 +10623,26 @@ begin {self.}XmlChildLblOffset := new PureVal(self, {self.}Prefix, "lblOffset"); container_.Set({self.}XmlChildLblOffset); end - return {self.}XmlChildLblOffset; + return {self.}XmlChildLblOffset and not {self.}XmlChildLblOffset.Removed ? {self.}XmlChildLblOffset : fallback_.LblOffset; +end; + +function Ax.WriteXmlChildLblOffset(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLblOffset) then + {self.}RemoveChild({self.}XmlChildLblOffset); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildLblOffset := v; + container_.Set({self.}XmlChildLblOffset); + end + else begin + raise "Invalid assignment: LblOffset expects PureVal or nil"; + end end; function Ax.ReadXmlChildNoMultiLvlLbl(): PureVal; @@ -7162,23 +10652,42 @@ begin {self.}XmlChildNoMultiLvlLbl := new PureVal(self, {self.}Prefix, "noMultiLvlLbl"); container_.Set({self.}XmlChildNoMultiLvlLbl); end - return {self.}XmlChildNoMultiLvlLbl; + return {self.}XmlChildNoMultiLvlLbl and not {self.}XmlChildNoMultiLvlLbl.Removed ? {self.}XmlChildNoMultiLvlLbl : fallback_.NoMultiLvlLbl; end; -function NumFmt.Create();overload; +function Ax.WriteXmlChildNoMultiLvlLbl(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "numFmt"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNoMultiLvlLbl) then + {self.}RemoveChild({self.}XmlChildNoMultiLvlLbl); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildNoMultiLvlLbl := v; + container_.Set({self.}XmlChildNoMultiLvlLbl); + end + else begin + raise "Invalid assignment: NoMultiLvlLbl expects PureVal or nil"; + end end; -function NumFmt.Create(_node: XmlNode);overload; +function NumFmt.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "numFmt"); end; -function NumFmt.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function NumFmt.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function NumFmt.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function NumFmt.Init();override; @@ -7198,7 +10707,7 @@ function NumFmt.Copy(_obj: NumFmt);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.FormatCode) then {self.}FormatCode := _obj.FormatCode; if not ifnil(_obj.SourceLinked) then @@ -7206,6 +10715,16 @@ begin tslassigning := tslassigning_backup; end; +function NumFmt.Clone(): NumFmt;override; +begin + obj := new NumFmt(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}FormatCode) then + obj.FormatCode := {self.}FormatCode; + if not ifnil({self.}SourceLinked) then + obj.SourceLinked := {self.}SourceLinked; + return obj; +end; + function NumFmt.ConvertToPoint();override; begin @@ -7213,48 +10732,48 @@ end; function NumFmt.ReadXmlAttrFormatCode(); begin - return {self.}XmlAttrFormatCode.Value; + return ifnil({self.}XmlAttrFormatCode.Value) ? fallback_.XmlAttrFormatCode.Value : {self.}XmlAttrFormatCode.Value; end; -function NumFmt.WriteXmlAttrFormatCode(_value); +function NumFmt.WriteXmlAttrFormatCode(_value: any); begin if ifnil({self.}XmlAttrFormatCode) then begin {self.}XmlAttrFormatCode := new OpenXmlAttribute("", "formatCode", nil); - attributes_[length(attributes_)] := {self.}XmlAttrFormatCode; + attributes_["formatCode"] := {self.}XmlAttrFormatCode; end {self.}XmlAttrFormatCode.Value := _value; end; function NumFmt.ReadXmlAttrSourceLinked(); begin - return {self.}XmlAttrSourceLinked.Value; + return ifnil({self.}XmlAttrSourceLinked.Value) ? fallback_.XmlAttrSourceLinked.Value : {self.}XmlAttrSourceLinked.Value; end; -function NumFmt.WriteXmlAttrSourceLinked(_value); +function NumFmt.WriteXmlAttrSourceLinked(_value: any); begin if ifnil({self.}XmlAttrSourceLinked) then begin {self.}XmlAttrSourceLinked := new OpenXmlAttribute("", "sourceLinked", nil); - attributes_[length(attributes_)] := {self.}XmlAttrSourceLinked; + attributes_["sourceLinked"] := {self.}XmlAttrSourceLinked; end {self.}XmlAttrSourceLinked.Value := _value; end; -function Scaling.Create();overload; +function Scaling.create();overload; begin - {self.}Create(nil, "c", "scaling"); + {self.}create(nil, "c", "scaling"); end; -function Scaling.Create(_node: XmlNode);overload; +function Scaling.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Scaling.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Scaling.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Scaling.Init();override; @@ -7273,12 +10792,27 @@ function Scaling.Copy(_obj: Scaling);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildOrientation) then ifnil({self.}XmlChildOrientation) ? {self.}Orientation.Copy(_obj.XmlChildOrientation) : {self.}XmlChildOrientation.Copy(_obj.XmlChildOrientation); tslassigning := tslassigning_backup; end; +function Scaling.Clone(): Scaling;override; +begin + obj := new Scaling(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "orientation": obj.Orientation := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Scaling.ConvertToPoint();override; begin @@ -7291,23 +10825,41 @@ begin {self.}XmlChildOrientation := new OpenXmlSimpleType(self, {self.}Prefix, "orientation"); container_.Set({self.}XmlChildOrientation); end - return {self.}XmlChildOrientation; + return {self.}XmlChildOrientation and not {self.}XmlChildOrientation.Removed ? {self.}XmlChildOrientation : fallback_.Orientation; end; -function DTable.Create();overload; +function Scaling.WriteXmlChildOrientation(_value: nil_or_OpenXmlSimpleType); begin - {self.}Create(nil, "c", "dTable"); + if ifnil(_value) then + begin + if ifObj({self.}XmlChildOrientation) then + {self.}RemoveChild({self.}XmlChildOrientation); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildOrientation := _value; + container_.Set({self.}XmlChildOrientation); + end + else begin + raise "Invalid assignment: Orientation expects nil or OpenXmlSimpleType"; + end end; -function DTable.Create(_node: XmlNode);overload; +function DTable.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "dTable"); end; -function DTable.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function DTable.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function DTable.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function DTable.Init();override; @@ -7330,7 +10882,7 @@ function DTable.Copy(_obj: DTable);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildShowHorzBorder) then {self.}ShowHorzBorder.Copy(_obj.XmlChildShowHorzBorder); if not ifnil(_obj.XmlChildShowVertBorder) then @@ -7344,6 +10896,25 @@ begin tslassigning := tslassigning_backup; end; +function DTable.Clone(): DTable;override; +begin + obj := new DTable(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "showHorzBorder": obj.ShowHorzBorder := element.Clone(); + pre + "showVertBorder": obj.ShowVertBorder := element.Clone(); + pre + "showOutline": obj.ShowOutline := element.Clone(); + pre + "showKeys": obj.ShowKeys := element.Clone(); + pre + "txPr": obj.TxPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function DTable.ConvertToPoint();override; begin if not ifnil({self.}XmlChildShowHorzBorder) then @@ -7365,7 +10936,26 @@ begin {self.}XmlChildShowHorzBorder := new PureVal(self, {self.}Prefix, "showHorzBorder"); container_.Set({self.}XmlChildShowHorzBorder); end - return {self.}XmlChildShowHorzBorder; + return {self.}XmlChildShowHorzBorder and not {self.}XmlChildShowHorzBorder.Removed ? {self.}XmlChildShowHorzBorder : fallback_.ShowHorzBorder; +end; + +function DTable.WriteXmlChildShowHorzBorder(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowHorzBorder) then + {self.}RemoveChild({self.}XmlChildShowHorzBorder); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowHorzBorder := v; + container_.Set({self.}XmlChildShowHorzBorder); + end + else begin + raise "Invalid assignment: ShowHorzBorder expects PureVal or nil"; + end end; function DTable.ReadXmlChildShowVertBorder(): PureVal; @@ -7375,7 +10965,26 @@ begin {self.}XmlChildShowVertBorder := new PureVal(self, {self.}Prefix, "showVertBorder"); container_.Set({self.}XmlChildShowVertBorder); end - return {self.}XmlChildShowVertBorder; + return {self.}XmlChildShowVertBorder and not {self.}XmlChildShowVertBorder.Removed ? {self.}XmlChildShowVertBorder : fallback_.ShowVertBorder; +end; + +function DTable.WriteXmlChildShowVertBorder(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowVertBorder) then + {self.}RemoveChild({self.}XmlChildShowVertBorder); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowVertBorder := v; + container_.Set({self.}XmlChildShowVertBorder); + end + else begin + raise "Invalid assignment: ShowVertBorder expects PureVal or nil"; + end end; function DTable.ReadXmlChildShowOutline(): PureVal; @@ -7385,7 +10994,26 @@ begin {self.}XmlChildShowOutline := new PureVal(self, {self.}Prefix, "showOutline"); container_.Set({self.}XmlChildShowOutline); end - return {self.}XmlChildShowOutline; + return {self.}XmlChildShowOutline and not {self.}XmlChildShowOutline.Removed ? {self.}XmlChildShowOutline : fallback_.ShowOutline; +end; + +function DTable.WriteXmlChildShowOutline(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowOutline) then + {self.}RemoveChild({self.}XmlChildShowOutline); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowOutline := v; + container_.Set({self.}XmlChildShowOutline); + end + else begin + raise "Invalid assignment: ShowOutline expects PureVal or nil"; + end end; function DTable.ReadXmlChildShowKeys(): PureVal; @@ -7395,7 +11023,26 @@ begin {self.}XmlChildShowKeys := new PureVal(self, {self.}Prefix, "showKeys"); container_.Set({self.}XmlChildShowKeys); end - return {self.}XmlChildShowKeys; + return {self.}XmlChildShowKeys and not {self.}XmlChildShowKeys.Removed ? {self.}XmlChildShowKeys : fallback_.ShowKeys; +end; + +function DTable.WriteXmlChildShowKeys(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShowKeys) then + {self.}RemoveChild({self.}XmlChildShowKeys); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildShowKeys := v; + container_.Set({self.}XmlChildShowKeys); + end + else begin + raise "Invalid assignment: ShowKeys expects PureVal or nil"; + end end; function DTable.ReadXmlChildTxPr(): TxPr; @@ -7405,23 +11052,42 @@ begin {self.}XmlChildTxPr := new TxPr(self, {self.}Prefix, "txPr"); container_.Set({self.}XmlChildTxPr); end - return {self.}XmlChildTxPr; + return {self.}XmlChildTxPr and not {self.}XmlChildTxPr.Removed ? {self.}XmlChildTxPr : fallback_.TxPr; end; -function TxPr.Create();overload; +function DTable.WriteXmlChildTxPr(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "txPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTxPr) then + {self.}RemoveChild({self.}XmlChildTxPr); + end + else if v is class(TxPr) then + begin + v.Parent := self; + {self.}XmlChildTxPr := v; + container_.Set({self.}XmlChildTxPr); + end + else begin + raise "Invalid assignment: TxPr expects TxPr or nil"; + end end; -function TxPr.Create(_node: XmlNode);overload; +function TxPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "txPr"); end; -function TxPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function TxPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function TxPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function TxPr.Init();override; @@ -7442,7 +11108,7 @@ function TxPr.Copy(_obj: TxPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildBodyPr) then {self.}BodyPr.Copy(_obj.XmlChildBodyPr); if not ifnil(_obj.XmlChildLstStyle) then @@ -7450,6 +11116,22 @@ begin tslassigning := tslassigning_backup; end; +function TxPr.Clone(): TxPr;override; +begin + obj := new TxPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:bodyPr": obj.BodyPr := element.Clone(); + "a:lstStyle": obj.LstStyle := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function TxPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildBodyPr) then @@ -7466,7 +11148,25 @@ begin {self.}XmlChildLstStyle := new OpenXmlSimpleType(self, "a", "lstStyle"); container_.Set({self.}XmlChildLstStyle); end - return {self.}XmlChildLstStyle; + return {self.}XmlChildLstStyle and not {self.}XmlChildLstStyle.Removed ? {self.}XmlChildLstStyle : fallback_.LstStyle; +end; + +function TxPr.WriteXmlChildLstStyle(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildLstStyle) then + {self.}RemoveChild({self.}XmlChildLstStyle); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildLstStyle := _value; + container_.Set({self.}XmlChildLstStyle); + end + else begin + raise "Invalid assignment: LstStyle expects nil or OpenXmlSimpleType"; + end end; function TxPr.ReadXmlChildBodyPr(): BodyPr; @@ -7476,19 +11176,58 @@ begin {self.}XmlChildBodyPr := new BodyPr(self, "a", "bodyPr"); container_.Set({self.}XmlChildBodyPr); end - return {self.}XmlChildBodyPr; + return {self.}XmlChildBodyPr and not {self.}XmlChildBodyPr.Removed ? {self.}XmlChildBodyPr : fallback_.BodyPr; end; -function TxPr.ReadPs(_index); +function TxPr.WriteXmlChildBodyPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBodyPr) then + {self.}RemoveChild({self.}XmlChildBodyPr); + end + else if v is class(BodyPr) then + begin + v.Parent := self; + {self.}XmlChildBodyPr := v; + container_.Set({self.}XmlChildBodyPr); + end + else begin + raise "Invalid assignment: BodyPr expects BodyPr or nil"; + end +end; + +function TxPr.ReadPs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get("a:p", ind); end; +function TxPr.WritePs(_index: integer; _value: nil_OR_P); +begin + if ifnil(_value) then + begin + obj := {self.}ReadPs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "p", ind, _value) then + raise format("Index out of range: Ps[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Ps expects nil or P"; + end +end; + function TxPr.AddP(): P; begin obj := new P(self, "a", "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -7496,24 +11235,25 @@ end; function TxPr.AppendP(): P; begin obj := new P(self, "a", "p"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Title.Create();overload; +function Title.create();overload; begin - {self.}Create(nil, "c", "title"); + {self.}create(nil, "c", "title"); end; -function Title.Create(_node: XmlNode);overload; +function Title.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Title.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Title.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Title.Init();override; @@ -7534,7 +11274,7 @@ function Title.Copy(_obj: Title);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTx) then {self.}Tx.Copy(_obj.XmlChildTx); if not ifnil(_obj.XmlChildLayout) then @@ -7544,6 +11284,23 @@ begin tslassigning := tslassigning_backup; end; +function Title.Clone(): Title;override; +begin + obj := new Title(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "tx": obj.Tx := element.Clone(); + pre + "layout": obj.Layout := element.Clone(); + pre + "overlay": obj.Overlay := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Title.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTx) then @@ -7559,7 +11316,25 @@ begin {self.}XmlChildLayout := new OpenXmlSimpleType(self, {self.}Prefix, "layout"); container_.Set({self.}XmlChildLayout); end - return {self.}XmlChildLayout; + return {self.}XmlChildLayout and not {self.}XmlChildLayout.Removed ? {self.}XmlChildLayout : fallback_.Layout; +end; + +function Title.WriteXmlChildLayout(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildLayout) then + {self.}RemoveChild({self.}XmlChildLayout); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildLayout := _value; + container_.Set({self.}XmlChildLayout); + end + else begin + raise "Invalid assignment: Layout expects nil or OpenXmlSimpleType"; + end end; function Title.ReadXmlChildTx(): Tx; @@ -7569,7 +11344,26 @@ begin {self.}XmlChildTx := new Tx(self, {self.}Prefix, "tx"); container_.Set({self.}XmlChildTx); end - return {self.}XmlChildTx; + return {self.}XmlChildTx and not {self.}XmlChildTx.Removed ? {self.}XmlChildTx : fallback_.Tx; +end; + +function Title.WriteXmlChildTx(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTx) then + {self.}RemoveChild({self.}XmlChildTx); + end + else if v is class(Tx) then + begin + v.Parent := self; + {self.}XmlChildTx := v; + container_.Set({self.}XmlChildTx); + end + else begin + raise "Invalid assignment: Tx expects Tx or nil"; + end end; function Title.ReadXmlChildOverlay(): PureVal; @@ -7579,23 +11373,42 @@ begin {self.}XmlChildOverlay := new PureVal(self, {self.}Prefix, "overlay"); container_.Set({self.}XmlChildOverlay); end - return {self.}XmlChildOverlay; + return {self.}XmlChildOverlay and not {self.}XmlChildOverlay.Removed ? {self.}XmlChildOverlay : fallback_.Overlay; end; -function Tx.Create();overload; +function Title.WriteXmlChildOverlay(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "tx"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildOverlay) then + {self.}RemoveChild({self.}XmlChildOverlay); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildOverlay := v; + container_.Set({self.}XmlChildOverlay); + end + else begin + raise "Invalid assignment: Overlay expects PureVal or nil"; + end end; -function Tx.Create(_node: XmlNode);overload; +function Tx.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "tx"); end; -function Tx.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Tx.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Tx.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Tx.Init();override; @@ -7615,7 +11428,7 @@ function Tx.Copy(_obj: Tx);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildStrRef) then {self.}StrRef.Copy(_obj.XmlChildStrRef); if not ifnil(_obj.XmlChildRich) then @@ -7623,6 +11436,22 @@ begin tslassigning := tslassigning_backup; end; +function Tx.Clone(): Tx;override; +begin + obj := new Tx(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "strRef": obj.StrRef := element.Clone(); + pre + "rich": obj.Rich := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Tx.ConvertToPoint();override; begin if not ifnil({self.}XmlChildStrRef) then @@ -7638,7 +11467,26 @@ begin {self.}XmlChildStrRef := new StrRef(self, {self.}Prefix, "strRef"); container_.Set({self.}XmlChildStrRef); end - return {self.}XmlChildStrRef; + return {self.}XmlChildStrRef and not {self.}XmlChildStrRef.Removed ? {self.}XmlChildStrRef : fallback_.StrRef; +end; + +function Tx.WriteXmlChildStrRef(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildStrRef) then + {self.}RemoveChild({self.}XmlChildStrRef); + end + else if v is class(StrRef) then + begin + v.Parent := self; + {self.}XmlChildStrRef := v; + container_.Set({self.}XmlChildStrRef); + end + else begin + raise "Invalid assignment: StrRef expects StrRef or nil"; + end end; function Tx.ReadXmlChildRich(): Rich; @@ -7648,23 +11496,42 @@ begin {self.}XmlChildRich := new Rich(self, {self.}Prefix, "rich"); container_.Set({self.}XmlChildRich); end - return {self.}XmlChildRich; + return {self.}XmlChildRich and not {self.}XmlChildRich.Removed ? {self.}XmlChildRich : fallback_.Rich; end; -function Rich.Create();overload; +function Tx.WriteXmlChildRich(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "rich"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRich) then + {self.}RemoveChild({self.}XmlChildRich); + end + else if v is class(Rich) then + begin + v.Parent := self; + {self.}XmlChildRich := v; + container_.Set({self.}XmlChildRich); + end + else begin + raise "Invalid assignment: Rich expects Rich or nil"; + end end; -function Rich.Create(_node: XmlNode);overload; +function Rich.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "rich"); end; -function Rich.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Rich.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Rich.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Rich.Init();override; @@ -7685,7 +11552,7 @@ function Rich.Copy(_obj: Rich);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildBodyPr) then {self.}BodyPr.Copy(_obj.XmlChildBodyPr); if not ifnil(_obj.XmlChildLstStyle) then @@ -7693,6 +11560,22 @@ begin tslassigning := tslassigning_backup; end; +function Rich.Clone(): Rich;override; +begin + obj := new Rich(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:bodyPr": obj.BodyPr := element.Clone(); + "a:lstStyle": obj.LstStyle := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Rich.ConvertToPoint();override; begin if not ifnil({self.}XmlChildBodyPr) then @@ -7709,7 +11592,25 @@ begin {self.}XmlChildLstStyle := new OpenXmlSimpleType(self, "a", "lstStyle"); container_.Set({self.}XmlChildLstStyle); end - return {self.}XmlChildLstStyle; + return {self.}XmlChildLstStyle and not {self.}XmlChildLstStyle.Removed ? {self.}XmlChildLstStyle : fallback_.LstStyle; +end; + +function Rich.WriteXmlChildLstStyle(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildLstStyle) then + {self.}RemoveChild({self.}XmlChildLstStyle); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildLstStyle := _value; + container_.Set({self.}XmlChildLstStyle); + end + else begin + raise "Invalid assignment: LstStyle expects nil or OpenXmlSimpleType"; + end end; function Rich.ReadXmlChildBodyPr(): BodyPr; @@ -7719,19 +11620,58 @@ begin {self.}XmlChildBodyPr := new BodyPr(self, "a", "bodyPr"); container_.Set({self.}XmlChildBodyPr); end - return {self.}XmlChildBodyPr; + return {self.}XmlChildBodyPr and not {self.}XmlChildBodyPr.Removed ? {self.}XmlChildBodyPr : fallback_.BodyPr; end; -function Rich.ReadPs(_index); +function Rich.WriteXmlChildBodyPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBodyPr) then + {self.}RemoveChild({self.}XmlChildBodyPr); + end + else if v is class(BodyPr) then + begin + v.Parent := self; + {self.}XmlChildBodyPr := v; + container_.Set({self.}XmlChildBodyPr); + end + else begin + raise "Invalid assignment: BodyPr expects BodyPr or nil"; + end +end; + +function Rich.ReadPs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get("a:p", ind); end; +function Rich.WritePs(_index: integer; _value: nil_OR_P); +begin + if ifnil(_value) then + begin + obj := {self.}ReadPs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "p", ind, _value) then + raise format("Index out of range: Ps[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Ps expects nil or P"; + end +end; + function Rich.AddP(): P; begin obj := new P(self, "a", "p"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -7739,24 +11679,25 @@ end; function Rich.AppendP(): P; begin obj := new P(self, "a", "p"); + obj.Enable := true; container_.Append(obj); return obj; end; -function BodyPr.Create();overload; +function BodyPr.create();overload; begin - {self.}Create(nil, "a", "bodyPr"); + {self.}create(nil, "a", "bodyPr"); end; -function BodyPr.Create(_node: XmlNode);overload; +function BodyPr.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function BodyPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function BodyPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function BodyPr.Init();override; @@ -7794,7 +11735,7 @@ function BodyPr.Copy(_obj: BodyPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Rot) then {self.}Rot := _obj.Rot; if not ifnil(_obj.SpcFirstLastPara) then @@ -7838,6 +11779,58 @@ begin tslassigning := tslassigning_backup; end; +function BodyPr.Clone(): BodyPr;override; +begin + obj := new BodyPr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Rot) then + obj.Rot := {self.}Rot; + if not ifnil({self.}SpcFirstLastPara) then + obj.SpcFirstLastPara := {self.}SpcFirstLastPara; + if not ifnil({self.}VertOverflow) then + obj.VertOverflow := {self.}VertOverflow; + if not ifnil({self.}HorzOverflow) then + obj.HorzOverflow := {self.}HorzOverflow; + if not ifnil({self.}Vert) then + obj.Vert := {self.}Vert; + if not ifnil({self.}Wrap) then + obj.Wrap := {self.}Wrap; + if not ifnil({self.}LIns) then + obj.LIns := {self.}LIns; + if not ifnil({self.}TIns) then + obj.TIns := {self.}TIns; + if not ifnil({self.}RIns) then + obj.RIns := {self.}RIns; + if not ifnil({self.}BIns) then + obj.BIns := {self.}BIns; + if not ifnil({self.}NumCol) then + obj.NumCol := {self.}NumCol; + if not ifnil({self.}SpcCol) then + obj.SpcCol := {self.}SpcCol; + if not ifnil({self.}RtlCol) then + obj.RtlCol := {self.}RtlCol; + if not ifnil({self.}FromWordArt) then + obj.FromWordArt := {self.}FromWordArt; + if not ifnil({self.}Anchor) then + obj.Anchor := {self.}Anchor; + if not ifnil({self.}AnchorCtr) then + obj.AnchorCtr := {self.}AnchorCtr; + if not ifnil({self.}ForceAA) then + obj.ForceAA := {self.}ForceAA; + if not ifnil({self.}CompatLnSpc) then + obj.CompatLnSpc := {self.}CompatLnSpc; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:prstTxWrap": obj.PrstTxWrap := element.Clone(); + "a:noAutofit": obj.NoAutofit := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function BodyPr.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrLIns) then @@ -7854,270 +11847,270 @@ end; function BodyPr.ReadXmlAttrRot(); begin - return {self.}XmlAttrRot.Value; + return ifnil({self.}XmlAttrRot.Value) ? fallback_.XmlAttrRot.Value : {self.}XmlAttrRot.Value; end; -function BodyPr.WriteXmlAttrRot(_value); +function BodyPr.WriteXmlAttrRot(_value: any); begin if ifnil({self.}XmlAttrRot) then begin {self.}XmlAttrRot := new OpenXmlAttribute("", "rot", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRot; + attributes_["rot"] := {self.}XmlAttrRot; end {self.}XmlAttrRot.Value := _value; end; function BodyPr.ReadXmlAttrSpcFirstLastPara(); begin - return {self.}XmlAttrSpcFirstLastPara.Value; + return ifnil({self.}XmlAttrSpcFirstLastPara.Value) ? fallback_.XmlAttrSpcFirstLastPara.Value : {self.}XmlAttrSpcFirstLastPara.Value; end; -function BodyPr.WriteXmlAttrSpcFirstLastPara(_value); +function BodyPr.WriteXmlAttrSpcFirstLastPara(_value: any); begin if ifnil({self.}XmlAttrSpcFirstLastPara) then begin {self.}XmlAttrSpcFirstLastPara := new OpenXmlAttribute("", "spcFirstLastPara", nil); - attributes_[length(attributes_)] := {self.}XmlAttrSpcFirstLastPara; + attributes_["spcFirstLastPara"] := {self.}XmlAttrSpcFirstLastPara; end {self.}XmlAttrSpcFirstLastPara.Value := _value; end; function BodyPr.ReadXmlAttrVertOverflow(); begin - return {self.}XmlAttrVertOverflow.Value; + return ifnil({self.}XmlAttrVertOverflow.Value) ? fallback_.XmlAttrVertOverflow.Value : {self.}XmlAttrVertOverflow.Value; end; -function BodyPr.WriteXmlAttrVertOverflow(_value); +function BodyPr.WriteXmlAttrVertOverflow(_value: any); begin if ifnil({self.}XmlAttrVertOverflow) then begin {self.}XmlAttrVertOverflow := new OpenXmlAttribute("", "vertOverflow", nil); - attributes_[length(attributes_)] := {self.}XmlAttrVertOverflow; + attributes_["vertOverflow"] := {self.}XmlAttrVertOverflow; end {self.}XmlAttrVertOverflow.Value := _value; end; function BodyPr.ReadXmlAttrHorzOverflow(); begin - return {self.}XmlAttrHorzOverflow.Value; + return ifnil({self.}XmlAttrHorzOverflow.Value) ? fallback_.XmlAttrHorzOverflow.Value : {self.}XmlAttrHorzOverflow.Value; end; -function BodyPr.WriteXmlAttrHorzOverflow(_value); +function BodyPr.WriteXmlAttrHorzOverflow(_value: any); begin if ifnil({self.}XmlAttrHorzOverflow) then begin {self.}XmlAttrHorzOverflow := new OpenXmlAttribute("", "horzOverflow", nil); - attributes_[length(attributes_)] := {self.}XmlAttrHorzOverflow; + attributes_["horzOverflow"] := {self.}XmlAttrHorzOverflow; end {self.}XmlAttrHorzOverflow.Value := _value; end; function BodyPr.ReadXmlAttrVert(); begin - return {self.}XmlAttrVert.Value; + return ifnil({self.}XmlAttrVert.Value) ? fallback_.XmlAttrVert.Value : {self.}XmlAttrVert.Value; end; -function BodyPr.WriteXmlAttrVert(_value); +function BodyPr.WriteXmlAttrVert(_value: any); begin if ifnil({self.}XmlAttrVert) then begin {self.}XmlAttrVert := new OpenXmlAttribute("", "vert", nil); - attributes_[length(attributes_)] := {self.}XmlAttrVert; + attributes_["vert"] := {self.}XmlAttrVert; end {self.}XmlAttrVert.Value := _value; end; function BodyPr.ReadXmlAttrWrap(); begin - return {self.}XmlAttrWrap.Value; + return ifnil({self.}XmlAttrWrap.Value) ? fallback_.XmlAttrWrap.Value : {self.}XmlAttrWrap.Value; end; -function BodyPr.WriteXmlAttrWrap(_value); +function BodyPr.WriteXmlAttrWrap(_value: any); begin if ifnil({self.}XmlAttrWrap) then begin {self.}XmlAttrWrap := new OpenXmlAttribute("", "wrap", nil); - attributes_[length(attributes_)] := {self.}XmlAttrWrap; + attributes_["wrap"] := {self.}XmlAttrWrap; end {self.}XmlAttrWrap.Value := _value; end; function BodyPr.ReadXmlAttrLIns(); begin - return {self.}XmlAttrLIns.Value; + return ifnil({self.}XmlAttrLIns.Value) ? fallback_.XmlAttrLIns.Value : {self.}XmlAttrLIns.Value; end; -function BodyPr.WriteXmlAttrLIns(_value); +function BodyPr.WriteXmlAttrLIns(_value: any); begin if ifnil({self.}XmlAttrLIns) then begin {self.}XmlAttrLIns := new OpenXmlAttribute("", "lIns", nil); - attributes_[length(attributes_)] := {self.}XmlAttrLIns; + attributes_["lIns"] := {self.}XmlAttrLIns; end {self.}XmlAttrLIns.Value := _value; end; function BodyPr.ReadXmlAttrTIns(); begin - return {self.}XmlAttrTIns.Value; + return ifnil({self.}XmlAttrTIns.Value) ? fallback_.XmlAttrTIns.Value : {self.}XmlAttrTIns.Value; end; -function BodyPr.WriteXmlAttrTIns(_value); +function BodyPr.WriteXmlAttrTIns(_value: any); begin if ifnil({self.}XmlAttrTIns) then begin {self.}XmlAttrTIns := new OpenXmlAttribute("", "TIns", nil); - attributes_[length(attributes_)] := {self.}XmlAttrTIns; + attributes_["TIns"] := {self.}XmlAttrTIns; end {self.}XmlAttrTIns.Value := _value; end; function BodyPr.ReadXmlAttrRIns(); begin - return {self.}XmlAttrRIns.Value; + return ifnil({self.}XmlAttrRIns.Value) ? fallback_.XmlAttrRIns.Value : {self.}XmlAttrRIns.Value; end; -function BodyPr.WriteXmlAttrRIns(_value); +function BodyPr.WriteXmlAttrRIns(_value: any); begin if ifnil({self.}XmlAttrRIns) then begin {self.}XmlAttrRIns := new OpenXmlAttribute("", "rIns", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRIns; + attributes_["rIns"] := {self.}XmlAttrRIns; end {self.}XmlAttrRIns.Value := _value; end; function BodyPr.ReadXmlAttrBIns(); begin - return {self.}XmlAttrBIns.Value; + return ifnil({self.}XmlAttrBIns.Value) ? fallback_.XmlAttrBIns.Value : {self.}XmlAttrBIns.Value; end; -function BodyPr.WriteXmlAttrBIns(_value); +function BodyPr.WriteXmlAttrBIns(_value: any); begin if ifnil({self.}XmlAttrBIns) then begin {self.}XmlAttrBIns := new OpenXmlAttribute("", "bIns", nil); - attributes_[length(attributes_)] := {self.}XmlAttrBIns; + attributes_["bIns"] := {self.}XmlAttrBIns; end {self.}XmlAttrBIns.Value := _value; end; function BodyPr.ReadXmlAttrNumCol(); begin - return {self.}XmlAttrNumCol.Value; + return ifnil({self.}XmlAttrNumCol.Value) ? fallback_.XmlAttrNumCol.Value : {self.}XmlAttrNumCol.Value; end; -function BodyPr.WriteXmlAttrNumCol(_value); +function BodyPr.WriteXmlAttrNumCol(_value: any); begin if ifnil({self.}XmlAttrNumCol) then begin {self.}XmlAttrNumCol := new OpenXmlAttribute("", "numCol", nil); - attributes_[length(attributes_)] := {self.}XmlAttrNumCol; + attributes_["numCol"] := {self.}XmlAttrNumCol; end {self.}XmlAttrNumCol.Value := _value; end; function BodyPr.ReadXmlAttrSpcCol(); begin - return {self.}XmlAttrSpcCol.Value; + return ifnil({self.}XmlAttrSpcCol.Value) ? fallback_.XmlAttrSpcCol.Value : {self.}XmlAttrSpcCol.Value; end; -function BodyPr.WriteXmlAttrSpcCol(_value); +function BodyPr.WriteXmlAttrSpcCol(_value: any); begin if ifnil({self.}XmlAttrSpcCol) then begin {self.}XmlAttrSpcCol := new OpenXmlAttribute("", "spcCol", nil); - attributes_[length(attributes_)] := {self.}XmlAttrSpcCol; + attributes_["spcCol"] := {self.}XmlAttrSpcCol; end {self.}XmlAttrSpcCol.Value := _value; end; function BodyPr.ReadXmlAttrRtlCol(); begin - return {self.}XmlAttrRtlCol.Value; + return ifnil({self.}XmlAttrRtlCol.Value) ? fallback_.XmlAttrRtlCol.Value : {self.}XmlAttrRtlCol.Value; end; -function BodyPr.WriteXmlAttrRtlCol(_value); +function BodyPr.WriteXmlAttrRtlCol(_value: any); begin if ifnil({self.}XmlAttrRtlCol) then begin {self.}XmlAttrRtlCol := new OpenXmlAttribute("", "rtlCol", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRtlCol; + attributes_["rtlCol"] := {self.}XmlAttrRtlCol; end {self.}XmlAttrRtlCol.Value := _value; end; function BodyPr.ReadXmlAttrFromWordArt(); begin - return {self.}XmlAttrFromWordArt.Value; + return ifnil({self.}XmlAttrFromWordArt.Value) ? fallback_.XmlAttrFromWordArt.Value : {self.}XmlAttrFromWordArt.Value; end; -function BodyPr.WriteXmlAttrFromWordArt(_value); +function BodyPr.WriteXmlAttrFromWordArt(_value: any); begin if ifnil({self.}XmlAttrFromWordArt) then begin {self.}XmlAttrFromWordArt := new OpenXmlAttribute("", "fromWordArt", nil); - attributes_[length(attributes_)] := {self.}XmlAttrFromWordArt; + attributes_["fromWordArt"] := {self.}XmlAttrFromWordArt; end {self.}XmlAttrFromWordArt.Value := _value; end; function BodyPr.ReadXmlAttrAnchor(); begin - return {self.}XmlAttrAnchor.Value; + return ifnil({self.}XmlAttrAnchor.Value) ? fallback_.XmlAttrAnchor.Value : {self.}XmlAttrAnchor.Value; end; -function BodyPr.WriteXmlAttrAnchor(_value); +function BodyPr.WriteXmlAttrAnchor(_value: any); begin if ifnil({self.}XmlAttrAnchor) then begin {self.}XmlAttrAnchor := new OpenXmlAttribute("", "anchor", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAnchor; + attributes_["anchor"] := {self.}XmlAttrAnchor; end {self.}XmlAttrAnchor.Value := _value; end; function BodyPr.ReadXmlAttrAnchorCtr(); begin - return {self.}XmlAttrAnchorCtr.Value; + return ifnil({self.}XmlAttrAnchorCtr.Value) ? fallback_.XmlAttrAnchorCtr.Value : {self.}XmlAttrAnchorCtr.Value; end; -function BodyPr.WriteXmlAttrAnchorCtr(_value); +function BodyPr.WriteXmlAttrAnchorCtr(_value: any); begin if ifnil({self.}XmlAttrAnchorCtr) then begin {self.}XmlAttrAnchorCtr := new OpenXmlAttribute("", "anchorCtr", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAnchorCtr; + attributes_["anchorCtr"] := {self.}XmlAttrAnchorCtr; end {self.}XmlAttrAnchorCtr.Value := _value; end; function BodyPr.ReadXmlAttrForceAA(); begin - return {self.}XmlAttrForceAA.Value; + return ifnil({self.}XmlAttrForceAA.Value) ? fallback_.XmlAttrForceAA.Value : {self.}XmlAttrForceAA.Value; end; -function BodyPr.WriteXmlAttrForceAA(_value); +function BodyPr.WriteXmlAttrForceAA(_value: any); begin if ifnil({self.}XmlAttrForceAA) then begin {self.}XmlAttrForceAA := new OpenXmlAttribute("", "forceAA", nil); - attributes_[length(attributes_)] := {self.}XmlAttrForceAA; + attributes_["forceAA"] := {self.}XmlAttrForceAA; end {self.}XmlAttrForceAA.Value := _value; end; function BodyPr.ReadXmlAttrCompatLnSpc(); begin - return {self.}XmlAttrCompatLnSpc.Value; + return ifnil({self.}XmlAttrCompatLnSpc.Value) ? fallback_.XmlAttrCompatLnSpc.Value : {self.}XmlAttrCompatLnSpc.Value; end; -function BodyPr.WriteXmlAttrCompatLnSpc(_value); +function BodyPr.WriteXmlAttrCompatLnSpc(_value: any); begin if ifnil({self.}XmlAttrCompatLnSpc) then begin {self.}XmlAttrCompatLnSpc := new OpenXmlAttribute("", "compatLnSpc", nil); - attributes_[length(attributes_)] := {self.}XmlAttrCompatLnSpc; + attributes_["compatLnSpc"] := {self.}XmlAttrCompatLnSpc; end {self.}XmlAttrCompatLnSpc.Value := _value; end; @@ -8129,7 +12122,25 @@ begin {self.}XmlChildNoAutofit := new OpenXmlSimpleType(self, "a", "noAutofit"); container_.Set({self.}XmlChildNoAutofit); end - return {self.}XmlChildNoAutofit; + return {self.}XmlChildNoAutofit and not {self.}XmlChildNoAutofit.Removed ? {self.}XmlChildNoAutofit : fallback_.NoAutofit; +end; + +function BodyPr.WriteXmlChildNoAutofit(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildNoAutofit) then + {self.}RemoveChild({self.}XmlChildNoAutofit); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildNoAutofit := _value; + container_.Set({self.}XmlChildNoAutofit); + end + else begin + raise "Invalid assignment: NoAutofit expects nil or OpenXmlSimpleType"; + end end; function BodyPr.ReadXmlChildPrstTxWrap(): PrstTxWrap; @@ -8139,23 +12150,42 @@ begin {self.}XmlChildPrstTxWrap := new PrstTxWrap(self, "a", "prstTxWrap"); container_.Set({self.}XmlChildPrstTxWrap); end - return {self.}XmlChildPrstTxWrap; + return {self.}XmlChildPrstTxWrap and not {self.}XmlChildPrstTxWrap.Removed ? {self.}XmlChildPrstTxWrap : fallback_.PrstTxWrap; end; -function PrstTxWrap.Create();overload; +function BodyPr.WriteXmlChildPrstTxWrap(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "prstTxWrap"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPrstTxWrap) then + {self.}RemoveChild({self.}XmlChildPrstTxWrap); + end + else if v is class(PrstTxWrap) then + begin + v.Parent := self; + {self.}XmlChildPrstTxWrap := v; + container_.Set({self.}XmlChildPrstTxWrap); + end + else begin + raise "Invalid assignment: PrstTxWrap expects PrstTxWrap or nil"; + end end; -function PrstTxWrap.Create(_node: XmlNode);overload; +function PrstTxWrap.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "prstTxWrap"); end; -function PrstTxWrap.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PrstTxWrap.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function PrstTxWrap.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PrstTxWrap.Init();override; @@ -8175,7 +12205,7 @@ function PrstTxWrap.Copy(_obj: PrstTxWrap);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Prst) then {self.}Prst := _obj.Prst; if not ifnil(_obj.XmlChildAvLst) then @@ -8183,6 +12213,23 @@ begin tslassigning := tslassigning_backup; end; +function PrstTxWrap.Clone(): PrstTxWrap;override; +begin + obj := new PrstTxWrap(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Prst) then + obj.Prst := {self.}Prst; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:avLst": obj.AvLst := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function PrstTxWrap.ConvertToPoint();override; begin @@ -8190,15 +12237,15 @@ end; function PrstTxWrap.ReadXmlAttrPrst(); begin - return {self.}XmlAttrPrst.Value; + return ifnil({self.}XmlAttrPrst.Value) ? fallback_.XmlAttrPrst.Value : {self.}XmlAttrPrst.Value; end; -function PrstTxWrap.WriteXmlAttrPrst(_value); +function PrstTxWrap.WriteXmlAttrPrst(_value: any); begin if ifnil({self.}XmlAttrPrst) then begin {self.}XmlAttrPrst := new OpenXmlAttribute("", "prst", nil); - attributes_[length(attributes_)] := {self.}XmlAttrPrst; + attributes_["prst"] := {self.}XmlAttrPrst; end {self.}XmlAttrPrst.Value := _value; end; @@ -8210,23 +12257,41 @@ begin {self.}XmlChildAvLst := new OpenXmlSimpleType(self, "a", "avLst"); container_.Set({self.}XmlChildAvLst); end - return {self.}XmlChildAvLst; + return {self.}XmlChildAvLst and not {self.}XmlChildAvLst.Removed ? {self.}XmlChildAvLst : fallback_.AvLst; end; -function P.Create();overload; +function PrstTxWrap.WriteXmlChildAvLst(_value: nil_or_OpenXmlSimpleType); begin - {self.}Create(nil, "a", "p"); + if ifnil(_value) then + begin + if ifObj({self.}XmlChildAvLst) then + {self.}RemoveChild({self.}XmlChildAvLst); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildAvLst := _value; + container_.Set({self.}XmlChildAvLst); + end + else begin + raise "Invalid assignment: AvLst expects nil or OpenXmlSimpleType"; + end end; -function P.Create(_node: XmlNode);overload; +function P.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "p"); end; -function P.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function P.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function P.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function P.Init();override; @@ -8247,7 +12312,7 @@ function P.Copy(_obj: P);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildPPr) then {self.}PPr.Copy(_obj.XmlChildPPr); if not ifnil(_obj.XmlChildEndParaRPr) then @@ -8255,6 +12320,22 @@ begin tslassigning := tslassigning_backup; end; +function P.Clone(): P;override; +begin + obj := new P(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "pPr": obj.PPr := element.Clone(); + pre + "endParaRPr": obj.EndParaRPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function P.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPPr) then @@ -8273,7 +12354,26 @@ begin {self.}XmlChildPPr := new PPr(self, {self.}Prefix, "pPr"); container_.Set({self.}XmlChildPPr); end - return {self.}XmlChildPPr; + return {self.}XmlChildPPr and not {self.}XmlChildPPr.Removed ? {self.}XmlChildPPr : fallback_.PPr; +end; + +function P.WriteXmlChildPPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPPr) then + {self.}RemoveChild({self.}XmlChildPPr); + end + else if v is class(PPr) then + begin + v.Parent := self; + {self.}XmlChildPPr := v; + container_.Set({self.}XmlChildPPr); + end + else begin + raise "Invalid assignment: PPr expects PPr or nil"; + end end; function P.ReadXmlChildEndParaRPr(): RPr; @@ -8283,19 +12383,58 @@ begin {self.}XmlChildEndParaRPr := new RPr(self, {self.}Prefix, "endParaRPr"); container_.Set({self.}XmlChildEndParaRPr); end - return {self.}XmlChildEndParaRPr; + return {self.}XmlChildEndParaRPr and not {self.}XmlChildEndParaRPr.Removed ? {self.}XmlChildEndParaRPr : fallback_.EndParaRPr; end; -function P.ReadRs(_index); +function P.WriteXmlChildEndParaRPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEndParaRPr) then + {self.}RemoveChild({self.}XmlChildEndParaRPr); + end + else if v is class(RPr) then + begin + v.Parent := self; + {self.}XmlChildEndParaRPr := v; + container_.Set({self.}XmlChildEndParaRPr); + end + else begin + raise "Invalid assignment: EndParaRPr expects RPr or nil"; + end +end; + +function P.ReadRs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "r", ind); end; +function P.WriteRs(_index: integer; _value: nil_OR_R); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "r", ind, _value) then + raise format("Index out of range: Rs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rs expects nil or R"; + end +end; + function P.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -8303,24 +12442,25 @@ end; function P.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; -function RPr.Create();overload; +function RPr.create();overload; begin - {self.}Create(nil, "a", "rPr"); + {self.}create(nil, "a", "rPr"); end; -function RPr.Create(_node: XmlNode);overload; +function RPr.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function RPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function RPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function RPr.Init();override; @@ -8352,7 +12492,7 @@ function RPr.Copy(_obj: RPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Lang) then {self.}Lang := _obj.Lang; if not ifnil(_obj.AltLang) then @@ -8384,6 +12524,44 @@ begin tslassigning := tslassigning_backup; end; +function RPr.Clone(): RPr;override; +begin + obj := new RPr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Lang) then + obj.Lang := {self.}Lang; + if not ifnil({self.}AltLang) then + obj.AltLang := {self.}AltLang; + if not ifnil({self.}B) then + obj.B := {self.}B; + if not ifnil({self.}Baseline) then + obj.Baseline := {self.}Baseline; + if not ifnil({self.}I) then + obj.I := {self.}I; + if not ifnil({self.}Kern) then + obj.Kern := {self.}Kern; + if not ifnil({self.}Spc) then + obj.Spc := {self.}Spc; + if not ifnil({self.}Strike) then + obj.Strike := {self.}Strike; + if not ifnil({self.}Sz) then + obj.Sz := {self.}Sz; + if not ifnil({self.}U) then + obj.U := {self.}U; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "solidFill": obj.SolidFill := element.Clone(); + pre + "latin": obj.Latin := element.Clone(); + pre + "ea": obj.Ea := element.Clone(); + pre + "cs": obj.Cs := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function RPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSolidFill) then @@ -8398,150 +12576,150 @@ end; function RPr.ReadXmlAttrLang(); begin - return {self.}XmlAttrLang.Value; + return ifnil({self.}XmlAttrLang.Value) ? fallback_.XmlAttrLang.Value : {self.}XmlAttrLang.Value; end; -function RPr.WriteXmlAttrLang(_value); +function RPr.WriteXmlAttrLang(_value: any); begin if ifnil({self.}XmlAttrLang) then begin {self.}XmlAttrLang := new OpenXmlAttribute("", "lang", nil); - attributes_[length(attributes_)] := {self.}XmlAttrLang; + attributes_["lang"] := {self.}XmlAttrLang; end {self.}XmlAttrLang.Value := _value; end; function RPr.ReadXmlAttrAltLang(); begin - return {self.}XmlAttrAltLang.Value; + return ifnil({self.}XmlAttrAltLang.Value) ? fallback_.XmlAttrAltLang.Value : {self.}XmlAttrAltLang.Value; end; -function RPr.WriteXmlAttrAltLang(_value); +function RPr.WriteXmlAttrAltLang(_value: any); begin if ifnil({self.}XmlAttrAltLang) then begin {self.}XmlAttrAltLang := new OpenXmlAttribute("", "altLang", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAltLang; + attributes_["altLang"] := {self.}XmlAttrAltLang; end {self.}XmlAttrAltLang.Value := _value; end; function RPr.ReadXmlAttrB(); begin - return {self.}XmlAttrB.Value; + return ifnil({self.}XmlAttrB.Value) ? fallback_.XmlAttrB.Value : {self.}XmlAttrB.Value; end; -function RPr.WriteXmlAttrB(_value); +function RPr.WriteXmlAttrB(_value: any); begin if ifnil({self.}XmlAttrB) then begin {self.}XmlAttrB := new OpenXmlAttribute("", "b", nil); - attributes_[length(attributes_)] := {self.}XmlAttrB; + attributes_["b"] := {self.}XmlAttrB; end {self.}XmlAttrB.Value := _value; end; function RPr.ReadXmlAttrBaseline(); begin - return {self.}XmlAttrBaseline.Value; + return ifnil({self.}XmlAttrBaseline.Value) ? fallback_.XmlAttrBaseline.Value : {self.}XmlAttrBaseline.Value; end; -function RPr.WriteXmlAttrBaseline(_value); +function RPr.WriteXmlAttrBaseline(_value: any); begin if ifnil({self.}XmlAttrBaseline) then begin {self.}XmlAttrBaseline := new OpenXmlAttribute("", "baseline", nil); - attributes_[length(attributes_)] := {self.}XmlAttrBaseline; + attributes_["baseline"] := {self.}XmlAttrBaseline; end {self.}XmlAttrBaseline.Value := _value; end; function RPr.ReadXmlAttrI(); begin - return {self.}XmlAttrI.Value; + return ifnil({self.}XmlAttrI.Value) ? fallback_.XmlAttrI.Value : {self.}XmlAttrI.Value; end; -function RPr.WriteXmlAttrI(_value); +function RPr.WriteXmlAttrI(_value: any); begin if ifnil({self.}XmlAttrI) then begin {self.}XmlAttrI := new OpenXmlAttribute("", "i", nil); - attributes_[length(attributes_)] := {self.}XmlAttrI; + attributes_["i"] := {self.}XmlAttrI; end {self.}XmlAttrI.Value := _value; end; function RPr.ReadXmlAttrKern(); begin - return {self.}XmlAttrKern.Value; + return ifnil({self.}XmlAttrKern.Value) ? fallback_.XmlAttrKern.Value : {self.}XmlAttrKern.Value; end; -function RPr.WriteXmlAttrKern(_value); +function RPr.WriteXmlAttrKern(_value: any); begin if ifnil({self.}XmlAttrKern) then begin {self.}XmlAttrKern := new OpenXmlAttribute("", "kern", nil); - attributes_[length(attributes_)] := {self.}XmlAttrKern; + attributes_["kern"] := {self.}XmlAttrKern; end {self.}XmlAttrKern.Value := _value; end; function RPr.ReadXmlAttrSpc(); begin - return {self.}XmlAttrSpc.Value; + return ifnil({self.}XmlAttrSpc.Value) ? fallback_.XmlAttrSpc.Value : {self.}XmlAttrSpc.Value; end; -function RPr.WriteXmlAttrSpc(_value); +function RPr.WriteXmlAttrSpc(_value: any); begin if ifnil({self.}XmlAttrSpc) then begin {self.}XmlAttrSpc := new OpenXmlAttribute("", "spc", nil); - attributes_[length(attributes_)] := {self.}XmlAttrSpc; + attributes_["spc"] := {self.}XmlAttrSpc; end {self.}XmlAttrSpc.Value := _value; end; function RPr.ReadXmlAttrStrike(); begin - return {self.}XmlAttrStrike.Value; + return ifnil({self.}XmlAttrStrike.Value) ? fallback_.XmlAttrStrike.Value : {self.}XmlAttrStrike.Value; end; -function RPr.WriteXmlAttrStrike(_value); +function RPr.WriteXmlAttrStrike(_value: any); begin if ifnil({self.}XmlAttrStrike) then begin {self.}XmlAttrStrike := new OpenXmlAttribute("", "strike", nil); - attributes_[length(attributes_)] := {self.}XmlAttrStrike; + attributes_["strike"] := {self.}XmlAttrStrike; end {self.}XmlAttrStrike.Value := _value; end; function RPr.ReadXmlAttrSz(); begin - return {self.}XmlAttrSz.Value; + return ifnil({self.}XmlAttrSz.Value) ? fallback_.XmlAttrSz.Value : {self.}XmlAttrSz.Value; end; -function RPr.WriteXmlAttrSz(_value); +function RPr.WriteXmlAttrSz(_value: any); begin if ifnil({self.}XmlAttrSz) then begin {self.}XmlAttrSz := new OpenXmlAttribute("", "sz", nil); - attributes_[length(attributes_)] := {self.}XmlAttrSz; + attributes_["sz"] := {self.}XmlAttrSz; end {self.}XmlAttrSz.Value := _value; end; function RPr.ReadXmlAttrU(); begin - return {self.}XmlAttrU.Value; + return ifnil({self.}XmlAttrU.Value) ? fallback_.XmlAttrU.Value : {self.}XmlAttrU.Value; end; -function RPr.WriteXmlAttrU(_value); +function RPr.WriteXmlAttrU(_value: any); begin if ifnil({self.}XmlAttrU) then begin {self.}XmlAttrU := new OpenXmlAttribute("", "u", nil); - attributes_[length(attributes_)] := {self.}XmlAttrU; + attributes_["u"] := {self.}XmlAttrU; end {self.}XmlAttrU.Value := _value; end; @@ -8553,7 +12731,26 @@ begin {self.}XmlChildSolidFill := new SolidFill(self, {self.}Prefix, "solidFill"); container_.Set({self.}XmlChildSolidFill); end - return {self.}XmlChildSolidFill; + return {self.}XmlChildSolidFill and not {self.}XmlChildSolidFill.Removed ? {self.}XmlChildSolidFill : fallback_.SolidFill; +end; + +function RPr.WriteXmlChildSolidFill(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSolidFill) then + {self.}RemoveChild({self.}XmlChildSolidFill); + end + else if v is class(SolidFill) then + begin + v.Parent := self; + {self.}XmlChildSolidFill := v; + container_.Set({self.}XmlChildSolidFill); + end + else begin + raise "Invalid assignment: SolidFill expects SolidFill or nil"; + end end; function RPr.ReadXmlChildLatin(): Latin; @@ -8563,7 +12760,26 @@ begin {self.}XmlChildLatin := new Latin(self, {self.}Prefix, "latin"); container_.Set({self.}XmlChildLatin); end - return {self.}XmlChildLatin; + return {self.}XmlChildLatin and not {self.}XmlChildLatin.Removed ? {self.}XmlChildLatin : fallback_.Latin; +end; + +function RPr.WriteXmlChildLatin(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLatin) then + {self.}RemoveChild({self.}XmlChildLatin); + end + else if v is class(Latin) then + begin + v.Parent := self; + {self.}XmlChildLatin := v; + container_.Set({self.}XmlChildLatin); + end + else begin + raise "Invalid assignment: Latin expects Latin or nil"; + end end; function RPr.ReadXmlChildEa(): Latin; @@ -8573,7 +12789,26 @@ begin {self.}XmlChildEa := new Latin(self, {self.}Prefix, "ea"); container_.Set({self.}XmlChildEa); end - return {self.}XmlChildEa; + return {self.}XmlChildEa and not {self.}XmlChildEa.Removed ? {self.}XmlChildEa : fallback_.Ea; +end; + +function RPr.WriteXmlChildEa(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEa) then + {self.}RemoveChild({self.}XmlChildEa); + end + else if v is class(Latin) then + begin + v.Parent := self; + {self.}XmlChildEa := v; + container_.Set({self.}XmlChildEa); + end + else begin + raise "Invalid assignment: Ea expects Latin or nil"; + end end; function RPr.ReadXmlChildCs(): Latin; @@ -8583,23 +12818,42 @@ begin {self.}XmlChildCs := new Latin(self, {self.}Prefix, "cs"); container_.Set({self.}XmlChildCs); end - return {self.}XmlChildCs; + return {self.}XmlChildCs and not {self.}XmlChildCs.Removed ? {self.}XmlChildCs : fallback_.Cs; end; -function PPr.Create();overload; +function RPr.WriteXmlChildCs(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "pPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCs) then + {self.}RemoveChild({self.}XmlChildCs); + end + else if v is class(Latin) then + begin + v.Parent := self; + {self.}XmlChildCs := v; + container_.Set({self.}XmlChildCs); + end + else begin + raise "Invalid assignment: Cs expects Latin or nil"; + end end; -function PPr.Create(_node: XmlNode);overload; +function PPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "pPr"); end; -function PPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function PPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PPr.Init();override; @@ -8618,12 +12872,27 @@ function PPr.Copy(_obj: PPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildDefRPr) then {self.}DefRPr.Copy(_obj.XmlChildDefRPr); tslassigning := tslassigning_backup; end; +function PPr.Clone(): PPr;override; +begin + obj := new PPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "defRPr": obj.DefRPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function PPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildDefRPr) then @@ -8637,23 +12906,42 @@ begin {self.}XmlChildDefRPr := new RPr(self, {self.}Prefix, "defRPr"); container_.Set({self.}XmlChildDefRPr); end - return {self.}XmlChildDefRPr; + return {self.}XmlChildDefRPr and not {self.}XmlChildDefRPr.Removed ? {self.}XmlChildDefRPr : fallback_.DefRPr; end; -function Latin.Create();overload; +function PPr.WriteXmlChildDefRPr(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "latin"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDefRPr) then + {self.}RemoveChild({self.}XmlChildDefRPr); + end + else if v is class(RPr) then + begin + v.Parent := self; + {self.}XmlChildDefRPr := v; + container_.Set({self.}XmlChildDefRPr); + end + else begin + raise "Invalid assignment: DefRPr expects RPr or nil"; + end end; -function Latin.Create(_node: XmlNode);overload; +function Latin.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "latin"); end; -function Latin.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Latin.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Latin.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Latin.Init();override; @@ -8672,12 +12960,20 @@ function Latin.Copy(_obj: Latin);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Typeface) then {self.}Typeface := _obj.Typeface; tslassigning := tslassigning_backup; end; +function Latin.Clone(): Latin;override; +begin + obj := new Latin(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Typeface) then + obj.Typeface := {self.}Typeface; + return obj; +end; + function Latin.ConvertToPoint();override; begin @@ -8685,33 +12981,33 @@ end; function Latin.ReadXmlAttrTypeface(); begin - return {self.}XmlAttrTypeface.Value; + return ifnil({self.}XmlAttrTypeface.Value) ? fallback_.XmlAttrTypeface.Value : {self.}XmlAttrTypeface.Value; end; -function Latin.WriteXmlAttrTypeface(_value); +function Latin.WriteXmlAttrTypeface(_value: any); begin if ifnil({self.}XmlAttrTypeface) then begin {self.}XmlAttrTypeface := new OpenXmlAttribute("", "typeface", nil); - attributes_[length(attributes_)] := {self.}XmlAttrTypeface; + attributes_["typeface"] := {self.}XmlAttrTypeface; end {self.}XmlAttrTypeface.Value := _value; end; -function R.Create();overload; +function R.create();overload; begin - {self.}Create(nil, "a", "r"); + {self.}create(nil, "a", "r"); end; -function R.Create(_node: XmlNode);overload; +function R.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function R.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function R.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function R.Init();override; @@ -8731,7 +13027,7 @@ function R.Copy(_obj: R);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRPr) then {self.}RPr.Copy(_obj.XmlChildRPr); if not ifnil(_obj.XmlChildT) then @@ -8739,6 +13035,22 @@ begin tslassigning := tslassigning_backup; end; +function R.Clone(): R;override; +begin + obj := new R(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rPr": obj.RPr := element.Clone(); + pre + "t": obj.T := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function R.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRPr) then @@ -8754,7 +13066,26 @@ begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; +end; + +function R.WriteXmlChildRPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRPr) then + {self.}RemoveChild({self.}XmlChildRPr); + end + else if v is class(RPr) then + begin + v.Parent := self; + {self.}XmlChildRPr := v; + container_.Set({self.}XmlChildRPr); + end + else begin + raise "Invalid assignment: RPr expects RPr or nil"; + end end; function R.ReadXmlChildT(): T; @@ -8764,23 +13095,42 @@ begin {self.}XmlChildT := new T(self, {self.}Prefix, "t"); container_.Set({self.}XmlChildT); end - return {self.}XmlChildT; + return {self.}XmlChildT and not {self.}XmlChildT.Removed ? {self.}XmlChildT : fallback_.T; end; -function ExternalData.Create();overload; +function R.WriteXmlChildT(_p1: any; _p2: any); begin - {self.}Create(nil, "c", "externalData"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildT) then + {self.}RemoveChild({self.}XmlChildT); + end + else if v is class(T) then + begin + v.Parent := self; + {self.}XmlChildT := v; + container_.Set({self.}XmlChildT); + end + else begin + raise "Invalid assignment: T expects T or nil"; + end end; -function ExternalData.Create(_node: XmlNode);overload; +function ExternalData.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "c", "externalData"); end; -function ExternalData.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function ExternalData.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function ExternalData.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function ExternalData.Init();override; @@ -8800,7 +13150,7 @@ function ExternalData.Copy(_obj: ExternalData);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.XmlChildAutoUpdate) then @@ -8808,6 +13158,23 @@ begin tslassigning := tslassigning_backup; end; +function ExternalData.Clone(): ExternalData;override; +begin + obj := new ExternalData(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "autoUpdate": obj.AutoUpdate := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function ExternalData.ConvertToPoint();override; begin if not ifnil({self.}XmlChildAutoUpdate) then @@ -8816,15 +13183,15 @@ end; function ExternalData.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function ExternalData.WriteXmlAttrId(_value); +function ExternalData.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("r", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["r:id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; @@ -8836,23 +13203,42 @@ begin {self.}XmlChildAutoUpdate := new PureVal(self, {self.}Prefix, "autoUpdate"); container_.Set({self.}XmlChildAutoUpdate); end - return {self.}XmlChildAutoUpdate; + return {self.}XmlChildAutoUpdate and not {self.}XmlChildAutoUpdate.Removed ? {self.}XmlChildAutoUpdate : fallback_.AutoUpdate; end; -function _Inline.Create();overload; +function ExternalData.WriteXmlChildAutoUpdate(_p1: any; _p2: any); begin - {self.}Create(nil, "wp", "inline"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAutoUpdate) then + {self.}RemoveChild({self.}XmlChildAutoUpdate); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildAutoUpdate := v; + container_.Set({self.}XmlChildAutoUpdate); + end + else begin + raise "Invalid assignment: AutoUpdate expects PureVal or nil"; + end end; -function _Inline.Create(_node: XmlNode);overload; +function _Inline.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wp", "inline"); end; -function _Inline.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function _Inline.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function _Inline.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function _Inline.Init();override; @@ -8881,7 +13267,7 @@ function _Inline.Copy(_obj: _Inline);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.DistT) then {self.}DistT := _obj.DistT; if not ifnil(_obj.DistB) then @@ -8907,6 +13293,37 @@ begin tslassigning := tslassigning_backup; end; +function _Inline.Clone(): _Inline;override; +begin + obj := new _Inline(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}DistT) then + obj.DistT := {self.}DistT; + if not ifnil({self.}DistB) then + obj.DistB := {self.}DistB; + if not ifnil({self.}DistL) then + obj.DistL := {self.}DistL; + if not ifnil({self.}DistR) then + obj.DistR := {self.}DistR; + if not ifnil({self.}AnchorId) then + obj.AnchorId := {self.}AnchorId; + if not ifnil({self.}EditId) then + obj.EditId := {self.}EditId; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "extent": obj.Extent := element.Clone(); + pre + "effectExtent": obj.EffectExtent := element.Clone(); + pre + "docPr": obj.DocPr := element.Clone(); + pre + "cNvGraphicFramePr": obj.CNvGraphicFramePr := element.Clone(); + "a:graphic": obj.Graphic := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function _Inline.ConvertToPoint();override; begin if not ifnil({self.}XmlChildExtent) then @@ -8923,90 +13340,90 @@ end; function _Inline.ReadXmlAttrDistT(); begin - return {self.}XmlAttrDistT.Value; + return ifnil({self.}XmlAttrDistT.Value) ? fallback_.XmlAttrDistT.Value : {self.}XmlAttrDistT.Value; end; -function _Inline.WriteXmlAttrDistT(_value); +function _Inline.WriteXmlAttrDistT(_value: any); begin if ifnil({self.}XmlAttrDistT) then begin {self.}XmlAttrDistT := new OpenXmlAttribute("", "distT", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDistT; + attributes_["distT"] := {self.}XmlAttrDistT; end {self.}XmlAttrDistT.Value := _value; end; function _Inline.ReadXmlAttrDistB(); begin - return {self.}XmlAttrDistB.Value; + return ifnil({self.}XmlAttrDistB.Value) ? fallback_.XmlAttrDistB.Value : {self.}XmlAttrDistB.Value; end; -function _Inline.WriteXmlAttrDistB(_value); +function _Inline.WriteXmlAttrDistB(_value: any); begin if ifnil({self.}XmlAttrDistB) then begin {self.}XmlAttrDistB := new OpenXmlAttribute("", "distB", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDistB; + attributes_["distB"] := {self.}XmlAttrDistB; end {self.}XmlAttrDistB.Value := _value; end; function _Inline.ReadXmlAttrDistL(); begin - return {self.}XmlAttrDistL.Value; + return ifnil({self.}XmlAttrDistL.Value) ? fallback_.XmlAttrDistL.Value : {self.}XmlAttrDistL.Value; end; -function _Inline.WriteXmlAttrDistL(_value); +function _Inline.WriteXmlAttrDistL(_value: any); begin if ifnil({self.}XmlAttrDistL) then begin {self.}XmlAttrDistL := new OpenXmlAttribute("", "distL", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDistL; + attributes_["distL"] := {self.}XmlAttrDistL; end {self.}XmlAttrDistL.Value := _value; end; function _Inline.ReadXmlAttrDistR(); begin - return {self.}XmlAttrDistR.Value; + return ifnil({self.}XmlAttrDistR.Value) ? fallback_.XmlAttrDistR.Value : {self.}XmlAttrDistR.Value; end; -function _Inline.WriteXmlAttrDistR(_value); +function _Inline.WriteXmlAttrDistR(_value: any); begin if ifnil({self.}XmlAttrDistR) then begin {self.}XmlAttrDistR := new OpenXmlAttribute("", "distR", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDistR; + attributes_["distR"] := {self.}XmlAttrDistR; end {self.}XmlAttrDistR.Value := _value; end; function _Inline.ReadXmlAttrAnchorId(); begin - return {self.}XmlAttrAnchorId.Value; + return ifnil({self.}XmlAttrAnchorId.Value) ? fallback_.XmlAttrAnchorId.Value : {self.}XmlAttrAnchorId.Value; end; -function _Inline.WriteXmlAttrAnchorId(_value); +function _Inline.WriteXmlAttrAnchorId(_value: any); begin if ifnil({self.}XmlAttrAnchorId) then begin {self.}XmlAttrAnchorId := new OpenXmlAttribute("wp14", "anchorId", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAnchorId; + attributes_["wp14:anchorId"] := {self.}XmlAttrAnchorId; end {self.}XmlAttrAnchorId.Value := _value; end; function _Inline.ReadXmlAttrEditId(); begin - return {self.}XmlAttrEditId.Value; + return ifnil({self.}XmlAttrEditId.Value) ? fallback_.XmlAttrEditId.Value : {self.}XmlAttrEditId.Value; end; -function _Inline.WriteXmlAttrEditId(_value); +function _Inline.WriteXmlAttrEditId(_value: any); begin if ifnil({self.}XmlAttrEditId) then begin {self.}XmlAttrEditId := new OpenXmlAttribute("wp14", "editId", nil); - attributes_[length(attributes_)] := {self.}XmlAttrEditId; + attributes_["wp14:editId"] := {self.}XmlAttrEditId; end {self.}XmlAttrEditId.Value := _value; end; @@ -9018,7 +13435,26 @@ begin {self.}XmlChildExtent := new CXY(self, {self.}Prefix, "extent"); container_.Set({self.}XmlChildExtent); end - return {self.}XmlChildExtent; + return {self.}XmlChildExtent and not {self.}XmlChildExtent.Removed ? {self.}XmlChildExtent : fallback_.Extent; +end; + +function _Inline.WriteXmlChildExtent(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildExtent) then + {self.}RemoveChild({self.}XmlChildExtent); + end + else if v is class(CXY) then + begin + v.Parent := self; + {self.}XmlChildExtent := v; + container_.Set({self.}XmlChildExtent); + end + else begin + raise "Invalid assignment: Extent expects CXY or nil"; + end end; function _Inline.ReadXmlChildEffectExtent(): EffectExtent; @@ -9028,7 +13464,26 @@ begin {self.}XmlChildEffectExtent := new EffectExtent(self, {self.}Prefix, "effectExtent"); container_.Set({self.}XmlChildEffectExtent); end - return {self.}XmlChildEffectExtent; + return {self.}XmlChildEffectExtent and not {self.}XmlChildEffectExtent.Removed ? {self.}XmlChildEffectExtent : fallback_.EffectExtent; +end; + +function _Inline.WriteXmlChildEffectExtent(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEffectExtent) then + {self.}RemoveChild({self.}XmlChildEffectExtent); + end + else if v is class(EffectExtent) then + begin + v.Parent := self; + {self.}XmlChildEffectExtent := v; + container_.Set({self.}XmlChildEffectExtent); + end + else begin + raise "Invalid assignment: EffectExtent expects EffectExtent or nil"; + end end; function _Inline.ReadXmlChildDocPr(): DocPr; @@ -9038,7 +13493,26 @@ begin {self.}XmlChildDocPr := new DocPr(self, {self.}Prefix, "docPr"); container_.Set({self.}XmlChildDocPr); end - return {self.}XmlChildDocPr; + return {self.}XmlChildDocPr and not {self.}XmlChildDocPr.Removed ? {self.}XmlChildDocPr : fallback_.DocPr; +end; + +function _Inline.WriteXmlChildDocPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDocPr) then + {self.}RemoveChild({self.}XmlChildDocPr); + end + else if v is class(DocPr) then + begin + v.Parent := self; + {self.}XmlChildDocPr := v; + container_.Set({self.}XmlChildDocPr); + end + else begin + raise "Invalid assignment: DocPr expects DocPr or nil"; + end end; function _Inline.ReadXmlChildCNvGraphicFramePr(): CNvGraphicFramePr; @@ -9048,7 +13522,26 @@ begin {self.}XmlChildCNvGraphicFramePr := new CNvGraphicFramePr(self, {self.}Prefix, "cNvGraphicFramePr"); container_.Set({self.}XmlChildCNvGraphicFramePr); end - return {self.}XmlChildCNvGraphicFramePr; + return {self.}XmlChildCNvGraphicFramePr and not {self.}XmlChildCNvGraphicFramePr.Removed ? {self.}XmlChildCNvGraphicFramePr : fallback_.CNvGraphicFramePr; +end; + +function _Inline.WriteXmlChildCNvGraphicFramePr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCNvGraphicFramePr) then + {self.}RemoveChild({self.}XmlChildCNvGraphicFramePr); + end + else if v is class(CNvGraphicFramePr) then + begin + v.Parent := self; + {self.}XmlChildCNvGraphicFramePr := v; + container_.Set({self.}XmlChildCNvGraphicFramePr); + end + else begin + raise "Invalid assignment: CNvGraphicFramePr expects CNvGraphicFramePr or nil"; + end end; function _Inline.ReadXmlChildGraphic(): Graphic; @@ -9058,23 +13551,42 @@ begin {self.}XmlChildGraphic := new Graphic(self, "a", "graphic"); container_.Set({self.}XmlChildGraphic); end - return {self.}XmlChildGraphic; + return {self.}XmlChildGraphic and not {self.}XmlChildGraphic.Removed ? {self.}XmlChildGraphic : fallback_.Graphic; end; -function EffectExtent.Create();overload; +function _Inline.WriteXmlChildGraphic(_p1: any; _p2: any); begin - {self.}Create(nil, "wp", "effectExtent"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildGraphic) then + {self.}RemoveChild({self.}XmlChildGraphic); + end + else if v is class(Graphic) then + begin + v.Parent := self; + {self.}XmlChildGraphic := v; + container_.Set({self.}XmlChildGraphic); + end + else begin + raise "Invalid assignment: Graphic expects Graphic or nil"; + end end; -function EffectExtent.Create(_node: XmlNode);overload; +function EffectExtent.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wp", "effectExtent"); end; -function EffectExtent.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function EffectExtent.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function EffectExtent.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function EffectExtent.Init();override; @@ -9096,7 +13608,7 @@ function EffectExtent.Copy(_obj: EffectExtent);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.L) then {self.}L := _obj.L; if not ifnil(_obj.T) then @@ -9108,6 +13620,20 @@ begin tslassigning := tslassigning_backup; end; +function EffectExtent.Clone(): EffectExtent;override; +begin + obj := new EffectExtent(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}L) then + obj.L := {self.}L; + if not ifnil({self.}T) then + obj.T := {self.}T; + if not ifnil({self.}R) then + obj.R := {self.}R; + if not ifnil({self.}B) then + obj.B := {self.}B; + return obj; +end; + function EffectExtent.ConvertToPoint();override; begin @@ -9115,78 +13641,78 @@ end; function EffectExtent.ReadXmlAttrL(); begin - return {self.}XmlAttrL.Value; + return ifnil({self.}XmlAttrL.Value) ? fallback_.XmlAttrL.Value : {self.}XmlAttrL.Value; end; -function EffectExtent.WriteXmlAttrL(_value); +function EffectExtent.WriteXmlAttrL(_value: any); begin if ifnil({self.}XmlAttrL) then begin {self.}XmlAttrL := new OpenXmlAttribute("", "l", nil); - attributes_[length(attributes_)] := {self.}XmlAttrL; + attributes_["l"] := {self.}XmlAttrL; end {self.}XmlAttrL.Value := _value; end; function EffectExtent.ReadXmlAttrT(); begin - return {self.}XmlAttrT.Value; + return ifnil({self.}XmlAttrT.Value) ? fallback_.XmlAttrT.Value : {self.}XmlAttrT.Value; end; -function EffectExtent.WriteXmlAttrT(_value); +function EffectExtent.WriteXmlAttrT(_value: any); begin if ifnil({self.}XmlAttrT) then begin {self.}XmlAttrT := new OpenXmlAttribute("", "t", nil); - attributes_[length(attributes_)] := {self.}XmlAttrT; + attributes_["t"] := {self.}XmlAttrT; end {self.}XmlAttrT.Value := _value; end; function EffectExtent.ReadXmlAttrR(); begin - return {self.}XmlAttrR.Value; + return ifnil({self.}XmlAttrR.Value) ? fallback_.XmlAttrR.Value : {self.}XmlAttrR.Value; end; -function EffectExtent.WriteXmlAttrR(_value); +function EffectExtent.WriteXmlAttrR(_value: any); begin if ifnil({self.}XmlAttrR) then begin {self.}XmlAttrR := new OpenXmlAttribute("", "r", nil); - attributes_[length(attributes_)] := {self.}XmlAttrR; + attributes_["r"] := {self.}XmlAttrR; end {self.}XmlAttrR.Value := _value; end; function EffectExtent.ReadXmlAttrB(); begin - return {self.}XmlAttrB.Value; + return ifnil({self.}XmlAttrB.Value) ? fallback_.XmlAttrB.Value : {self.}XmlAttrB.Value; end; -function EffectExtent.WriteXmlAttrB(_value); +function EffectExtent.WriteXmlAttrB(_value: any); begin if ifnil({self.}XmlAttrB) then begin {self.}XmlAttrB := new OpenXmlAttribute("", "b", nil); - attributes_[length(attributes_)] := {self.}XmlAttrB; + attributes_["b"] := {self.}XmlAttrB; end {self.}XmlAttrB.Value := _value; end; -function DocPr.Create();overload; +function DocPr.create();overload; begin - {self.}Create(nil, "wp", "docPr"); + {self.}create(nil, "wp", "docPr"); end; -function DocPr.Create(_node: XmlNode);overload; +function DocPr.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function DocPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function DocPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function DocPr.Init();override; @@ -9208,7 +13734,7 @@ function DocPr.Copy(_obj: DocPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.Name) then @@ -9220,6 +13746,27 @@ begin tslassigning := tslassigning_backup; end; +function DocPr.Clone(): DocPr;override; +begin + obj := new DocPr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + if not ifnil({self.}Descr) then + obj.Descr := {self.}Descr; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "extLst": obj.ExtLst := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function DocPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildExtLst) then @@ -9228,45 +13775,45 @@ end; function DocPr.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function DocPr.WriteXmlAttrId(_value); +function DocPr.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; function DocPr.ReadXmlAttrName(); begin - return {self.}XmlAttrName.Value; + return ifnil({self.}XmlAttrName.Value) ? fallback_.XmlAttrName.Value : {self.}XmlAttrName.Value; end; -function DocPr.WriteXmlAttrName(_value); +function DocPr.WriteXmlAttrName(_value: any); begin if ifnil({self.}XmlAttrName) then begin {self.}XmlAttrName := new OpenXmlAttribute("", "name", nil); - attributes_[length(attributes_)] := {self.}XmlAttrName; + attributes_["name"] := {self.}XmlAttrName; end {self.}XmlAttrName.Value := _value; end; function DocPr.ReadXmlAttrDescr(); begin - return {self.}XmlAttrDescr.Value; + return ifnil({self.}XmlAttrDescr.Value) ? fallback_.XmlAttrDescr.Value : {self.}XmlAttrDescr.Value; end; -function DocPr.WriteXmlAttrDescr(_value); +function DocPr.WriteXmlAttrDescr(_value: any); begin if ifnil({self.}XmlAttrDescr) then begin {self.}XmlAttrDescr := new OpenXmlAttribute("", "descr", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDescr; + attributes_["descr"] := {self.}XmlAttrDescr; end {self.}XmlAttrDescr.Value := _value; end; @@ -9278,23 +13825,42 @@ begin {self.}XmlChildExtLst := new ExtLst(self, {self.}Prefix, "extLst"); container_.Set({self.}XmlChildExtLst); end - return {self.}XmlChildExtLst; + return {self.}XmlChildExtLst and not {self.}XmlChildExtLst.Removed ? {self.}XmlChildExtLst : fallback_.ExtLst; end; -function CNvGraphicFramePr.Create();overload; +function DocPr.WriteXmlChildExtLst(_p1: any; _p2: any); begin - {self.}Create(nil, "w", "cNvGraphicFramePr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildExtLst) then + {self.}RemoveChild({self.}XmlChildExtLst); + end + else if v is class(ExtLst) then + begin + v.Parent := self; + {self.}XmlChildExtLst := v; + container_.Set({self.}XmlChildExtLst); + end + else begin + raise "Invalid assignment: ExtLst expects ExtLst or nil"; + end end; -function CNvGraphicFramePr.Create(_node: XmlNode);overload; +function CNvGraphicFramePr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "w", "cNvGraphicFramePr"); end; -function CNvGraphicFramePr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CNvGraphicFramePr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function CNvGraphicFramePr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CNvGraphicFramePr.Init();override; @@ -9313,12 +13879,27 @@ function CNvGraphicFramePr.Copy(_obj: CNvGraphicFramePr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildGraphicFrameLocks) then {self.}GraphicFrameLocks.Copy(_obj.XmlChildGraphicFrameLocks); tslassigning := tslassigning_backup; end; +function CNvGraphicFramePr.Clone(): CNvGraphicFramePr;override; +begin + obj := new CNvGraphicFramePr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "graphicFrameLocks": obj.GraphicFrameLocks := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function CNvGraphicFramePr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildGraphicFrameLocks) then @@ -9332,23 +13913,42 @@ begin {self.}XmlChildGraphicFrameLocks := new GraphicFrameLocks(self, {self.}Prefix, "graphicFrameLocks"); container_.Set({self.}XmlChildGraphicFrameLocks); end - return {self.}XmlChildGraphicFrameLocks; + return {self.}XmlChildGraphicFrameLocks and not {self.}XmlChildGraphicFrameLocks.Removed ? {self.}XmlChildGraphicFrameLocks : fallback_.GraphicFrameLocks; end; -function GraphicFrameLocks.Create();overload; +function CNvGraphicFramePr.WriteXmlChildGraphicFrameLocks(_p1: any; _p2: any); begin - {self.}Create(nil, "", ""); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildGraphicFrameLocks) then + {self.}RemoveChild({self.}XmlChildGraphicFrameLocks); + end + else if v is class(GraphicFrameLocks) then + begin + v.Parent := self; + {self.}XmlChildGraphicFrameLocks := v; + container_.Set({self.}XmlChildGraphicFrameLocks); + end + else begin + raise "Invalid assignment: GraphicFrameLocks expects GraphicFrameLocks or nil"; + end end; -function GraphicFrameLocks.Create(_node: XmlNode);overload; +function GraphicFrameLocks.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "", ""); end; -function GraphicFrameLocks.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function GraphicFrameLocks.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function GraphicFrameLocks.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function GraphicFrameLocks.Init();override; @@ -9367,12 +13967,20 @@ function GraphicFrameLocks.Copy(_obj: GraphicFrameLocks);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.NoChangeAspect) then {self.}NoChangeAspect := _obj.NoChangeAspect; tslassigning := tslassigning_backup; end; +function GraphicFrameLocks.Clone(): GraphicFrameLocks;override; +begin + obj := new GraphicFrameLocks(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}NoChangeAspect) then + obj.NoChangeAspect := {self.}NoChangeAspect; + return obj; +end; + function GraphicFrameLocks.ConvertToPoint();override; begin @@ -9380,33 +13988,33 @@ end; function GraphicFrameLocks.ReadXmlAttrNoChangeAspect(); begin - return {self.}XmlAttrNoChangeAspect.Value; + return ifnil({self.}XmlAttrNoChangeAspect.Value) ? fallback_.XmlAttrNoChangeAspect.Value : {self.}XmlAttrNoChangeAspect.Value; end; -function GraphicFrameLocks.WriteXmlAttrNoChangeAspect(_value); +function GraphicFrameLocks.WriteXmlAttrNoChangeAspect(_value: any); begin if ifnil({self.}XmlAttrNoChangeAspect) then begin {self.}XmlAttrNoChangeAspect := new OpenXmlAttribute("", "noChangeAspect", nil); - attributes_[length(attributes_)] := {self.}XmlAttrNoChangeAspect; + attributes_["noChangeAspect"] := {self.}XmlAttrNoChangeAspect; end {self.}XmlAttrNoChangeAspect.Value := _value; end; -function Graphic.Create();overload; +function Graphic.create();overload; begin - {self.}Create(nil, "a", "graphic"); + {self.}create(nil, "a", "graphic"); end; -function Graphic.Create(_node: XmlNode);overload; +function Graphic.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Graphic.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Graphic.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Graphic.Init();override; @@ -9425,12 +14033,27 @@ function Graphic.Copy(_obj: Graphic);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildGraphicData) then {self.}GraphicData.Copy(_obj.XmlChildGraphicData); tslassigning := tslassigning_backup; end; +function Graphic.Clone(): Graphic;override; +begin + obj := new Graphic(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:graphicData": obj.GraphicData := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Graphic.ConvertToPoint();override; begin if not ifnil({self.}XmlChildGraphicData) then @@ -9444,23 +14067,42 @@ begin {self.}XmlChildGraphicData := new GraphicData(self, "a", "graphicData"); container_.Set({self.}XmlChildGraphicData); end - return {self.}XmlChildGraphicData; + return {self.}XmlChildGraphicData and not {self.}XmlChildGraphicData.Removed ? {self.}XmlChildGraphicData : fallback_.GraphicData; end; -function GraphicData.Create();overload; +function Graphic.WriteXmlChildGraphicData(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "graphicData"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildGraphicData) then + {self.}RemoveChild({self.}XmlChildGraphicData); + end + else if v is class(GraphicData) then + begin + v.Parent := self; + {self.}XmlChildGraphicData := v; + container_.Set({self.}XmlChildGraphicData); + end + else begin + raise "Invalid assignment: GraphicData expects GraphicData or nil"; + end end; -function GraphicData.Create(_node: XmlNode);overload; +function GraphicData.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "graphicData"); end; -function GraphicData.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function GraphicData.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function GraphicData.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function GraphicData.Init();override; @@ -9482,7 +14124,7 @@ function GraphicData.Copy(_obj: GraphicData);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Uri) then {self.}Uri := _obj.Uri; if not ifnil(_obj.XmlChildPic) then @@ -9494,6 +14136,25 @@ begin tslassigning := tslassigning_backup; end; +function GraphicData.Clone(): GraphicData;override; +begin + obj := new GraphicData(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Uri) then + obj.Uri := {self.}Uri; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "pic:pic": obj.Pic := element.Clone(); + "c:chart": obj.Chart := element.Clone(); + "wps:wsp": obj.Wsp := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function GraphicData.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPic) then @@ -9506,15 +14167,15 @@ end; function GraphicData.ReadXmlAttrUri(); begin - return {self.}XmlAttrUri.Value; + return ifnil({self.}XmlAttrUri.Value) ? fallback_.XmlAttrUri.Value : {self.}XmlAttrUri.Value; end; -function GraphicData.WriteXmlAttrUri(_value); +function GraphicData.WriteXmlAttrUri(_value: any); begin if ifnil({self.}XmlAttrUri) then begin {self.}XmlAttrUri := new OpenXmlAttribute("", "uri", nil); - attributes_[length(attributes_)] := {self.}XmlAttrUri; + attributes_["uri"] := {self.}XmlAttrUri; end {self.}XmlAttrUri.Value := _value; end; @@ -9526,7 +14187,26 @@ begin {self.}XmlChildPic := new Pic(self, "pic", "pic"); container_.Set({self.}XmlChildPic); end - return {self.}XmlChildPic; + return {self.}XmlChildPic and not {self.}XmlChildPic.Removed ? {self.}XmlChildPic : fallback_.Pic; +end; + +function GraphicData.WriteXmlChildPic(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPic) then + {self.}RemoveChild({self.}XmlChildPic); + end + else if v is class(Pic) then + begin + v.Parent := self; + {self.}XmlChildPic := v; + container_.Set({self.}XmlChildPic); + end + else begin + raise "Invalid assignment: Pic expects Pic or nil"; + end end; function GraphicData.ReadXmlChildChart(): Chart; @@ -9536,7 +14216,26 @@ begin {self.}XmlChildChart := new Chart(self, "c", "chart"); container_.Set({self.}XmlChildChart); end - return {self.}XmlChildChart; + return {self.}XmlChildChart and not {self.}XmlChildChart.Removed ? {self.}XmlChildChart : fallback_.Chart; +end; + +function GraphicData.WriteXmlChildChart(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildChart) then + {self.}RemoveChild({self.}XmlChildChart); + end + else if v is class(Chart) then + begin + v.Parent := self; + {self.}XmlChildChart := v; + container_.Set({self.}XmlChildChart); + end + else begin + raise "Invalid assignment: Chart expects Chart or nil"; + end end; function GraphicData.ReadXmlChildWsp(): Wsp; @@ -9546,23 +14245,42 @@ begin {self.}XmlChildWsp := new Wsp(self, "wps", "wsp"); container_.Set({self.}XmlChildWsp); end - return {self.}XmlChildWsp; + return {self.}XmlChildWsp and not {self.}XmlChildWsp.Removed ? {self.}XmlChildWsp : fallback_.Wsp; end; -function Wsp.Create();overload; +function GraphicData.WriteXmlChildWsp(_p1: any; _p2: any); begin - {self.}Create(nil, "wps", "wsp"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildWsp) then + {self.}RemoveChild({self.}XmlChildWsp); + end + else if v is class(Wsp) then + begin + v.Parent := self; + {self.}XmlChildWsp := v; + container_.Set({self.}XmlChildWsp); + end + else begin + raise "Invalid assignment: Wsp expects Wsp or nil"; + end end; -function Wsp.Create(_node: XmlNode);overload; +function Wsp.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wps", "wsp"); end; -function Wsp.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Wsp.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Wsp.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Wsp.Init();override; @@ -9585,7 +14303,7 @@ function Wsp.Copy(_obj: Wsp);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCNvSpPr) then {self.}CNvSpPr.Copy(_obj.XmlChildCNvSpPr); if not ifnil(_obj.XmlChildSpPr) then @@ -9599,6 +14317,25 @@ begin tslassigning := tslassigning_backup; end; +function Wsp.Clone(): Wsp;override; +begin + obj := new Wsp(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "cNvSpPr": obj.CNvSpPr := element.Clone(); + pre + "spPr": obj.SpPr := element.Clone(); + pre + "txbx": obj.Txbx := element.Clone(); + pre + "style": obj.Style := element.Clone(); + pre + "bodyPr": obj.BodyPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Wsp.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCNvSpPr) then @@ -9620,7 +14357,26 @@ begin {self.}XmlChildCNvSpPr := new CNvSpPr(self, {self.}Prefix, "cNvSpPr"); container_.Set({self.}XmlChildCNvSpPr); end - return {self.}XmlChildCNvSpPr; + return {self.}XmlChildCNvSpPr and not {self.}XmlChildCNvSpPr.Removed ? {self.}XmlChildCNvSpPr : fallback_.CNvSpPr; +end; + +function Wsp.WriteXmlChildCNvSpPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCNvSpPr) then + {self.}RemoveChild({self.}XmlChildCNvSpPr); + end + else if v is class(CNvSpPr) then + begin + v.Parent := self; + {self.}XmlChildCNvSpPr := v; + container_.Set({self.}XmlChildCNvSpPr); + end + else begin + raise "Invalid assignment: CNvSpPr expects CNvSpPr or nil"; + end end; function Wsp.ReadXmlChildSpPr(): SpPr; @@ -9630,7 +14386,26 @@ begin {self.}XmlChildSpPr := new SpPr(self, {self.}Prefix, "spPr"); container_.Set({self.}XmlChildSpPr); end - return {self.}XmlChildSpPr; + return {self.}XmlChildSpPr and not {self.}XmlChildSpPr.Removed ? {self.}XmlChildSpPr : fallback_.SpPr; +end; + +function Wsp.WriteXmlChildSpPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSpPr) then + {self.}RemoveChild({self.}XmlChildSpPr); + end + else if v is class(SpPr) then + begin + v.Parent := self; + {self.}XmlChildSpPr := v; + container_.Set({self.}XmlChildSpPr); + end + else begin + raise "Invalid assignment: SpPr expects SpPr or nil"; + end end; function Wsp.ReadXmlChildTxbx(): Txbx; @@ -9640,7 +14415,26 @@ begin {self.}XmlChildTxbx := new Txbx(self, {self.}Prefix, "txbx"); container_.Set({self.}XmlChildTxbx); end - return {self.}XmlChildTxbx; + return {self.}XmlChildTxbx and not {self.}XmlChildTxbx.Removed ? {self.}XmlChildTxbx : fallback_.Txbx; +end; + +function Wsp.WriteXmlChildTxbx(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTxbx) then + {self.}RemoveChild({self.}XmlChildTxbx); + end + else if v is class(Txbx) then + begin + v.Parent := self; + {self.}XmlChildTxbx := v; + container_.Set({self.}XmlChildTxbx); + end + else begin + raise "Invalid assignment: Txbx expects Txbx or nil"; + end end; function Wsp.ReadXmlChildStyle(): WpsStyle; @@ -9650,7 +14444,26 @@ begin {self.}XmlChildStyle := new WpsStyle(self, {self.}Prefix, "style"); container_.Set({self.}XmlChildStyle); end - return {self.}XmlChildStyle; + return {self.}XmlChildStyle and not {self.}XmlChildStyle.Removed ? {self.}XmlChildStyle : fallback_.Style; +end; + +function Wsp.WriteXmlChildStyle(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildStyle) then + {self.}RemoveChild({self.}XmlChildStyle); + end + else if v is class(WpsStyle) then + begin + v.Parent := self; + {self.}XmlChildStyle := v; + container_.Set({self.}XmlChildStyle); + end + else begin + raise "Invalid assignment: Style expects WpsStyle or nil"; + end end; function Wsp.ReadXmlChildBodyPr(): BodyPr; @@ -9660,23 +14473,42 @@ begin {self.}XmlChildBodyPr := new BodyPr(self, {self.}Prefix, "bodyPr"); container_.Set({self.}XmlChildBodyPr); end - return {self.}XmlChildBodyPr; + return {self.}XmlChildBodyPr and not {self.}XmlChildBodyPr.Removed ? {self.}XmlChildBodyPr : fallback_.BodyPr; end; -function WpsStyle.Create();overload; +function Wsp.WriteXmlChildBodyPr(_p1: any; _p2: any); begin - {self.}Create(nil, "wps", "style"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBodyPr) then + {self.}RemoveChild({self.}XmlChildBodyPr); + end + else if v is class(BodyPr) then + begin + v.Parent := self; + {self.}XmlChildBodyPr := v; + container_.Set({self.}XmlChildBodyPr); + end + else begin + raise "Invalid assignment: BodyPr expects BodyPr or nil"; + end end; -function WpsStyle.Create(_node: XmlNode);overload; +function WpsStyle.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wps", "style"); end; -function WpsStyle.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function WpsStyle.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function WpsStyle.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function WpsStyle.Init();override; @@ -9698,7 +14530,7 @@ function WpsStyle.Copy(_obj: WpsStyle);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildLnRef) then {self.}LnRef.Copy(_obj.XmlChildLnRef); if not ifnil(_obj.XmlChildFillRef) then @@ -9710,6 +14542,24 @@ begin tslassigning := tslassigning_backup; end; +function WpsStyle.Clone(): WpsStyle;override; +begin + obj := new WpsStyle(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:lnRef": obj.LnRef := element.Clone(); + "a:fillRef": obj.FillRef := element.Clone(); + "a:effectRef": obj.EffectRef := element.Clone(); + "a:fontRef": obj.FontRef := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function WpsStyle.ConvertToPoint();override; begin if not ifnil({self.}XmlChildLnRef) then @@ -9729,7 +14579,26 @@ begin {self.}XmlChildLnRef := new XRef(self, "a", "lnRef"); container_.Set({self.}XmlChildLnRef); end - return {self.}XmlChildLnRef; + return {self.}XmlChildLnRef and not {self.}XmlChildLnRef.Removed ? {self.}XmlChildLnRef : fallback_.LnRef; +end; + +function WpsStyle.WriteXmlChildLnRef(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLnRef) then + {self.}RemoveChild({self.}XmlChildLnRef); + end + else if v is class(XRef) then + begin + v.Parent := self; + {self.}XmlChildLnRef := v; + container_.Set({self.}XmlChildLnRef); + end + else begin + raise "Invalid assignment: LnRef expects XRef or nil"; + end end; function WpsStyle.ReadXmlChildFillRef(): XRef; @@ -9739,7 +14608,26 @@ begin {self.}XmlChildFillRef := new XRef(self, "a", "fillRef"); container_.Set({self.}XmlChildFillRef); end - return {self.}XmlChildFillRef; + return {self.}XmlChildFillRef and not {self.}XmlChildFillRef.Removed ? {self.}XmlChildFillRef : fallback_.FillRef; +end; + +function WpsStyle.WriteXmlChildFillRef(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFillRef) then + {self.}RemoveChild({self.}XmlChildFillRef); + end + else if v is class(XRef) then + begin + v.Parent := self; + {self.}XmlChildFillRef := v; + container_.Set({self.}XmlChildFillRef); + end + else begin + raise "Invalid assignment: FillRef expects XRef or nil"; + end end; function WpsStyle.ReadXmlChildEffectRef(): XRef; @@ -9749,7 +14637,26 @@ begin {self.}XmlChildEffectRef := new XRef(self, "a", "effectRef"); container_.Set({self.}XmlChildEffectRef); end - return {self.}XmlChildEffectRef; + return {self.}XmlChildEffectRef and not {self.}XmlChildEffectRef.Removed ? {self.}XmlChildEffectRef : fallback_.EffectRef; +end; + +function WpsStyle.WriteXmlChildEffectRef(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEffectRef) then + {self.}RemoveChild({self.}XmlChildEffectRef); + end + else if v is class(XRef) then + begin + v.Parent := self; + {self.}XmlChildEffectRef := v; + container_.Set({self.}XmlChildEffectRef); + end + else begin + raise "Invalid assignment: EffectRef expects XRef or nil"; + end end; function WpsStyle.ReadXmlChildFontRef(): XRef; @@ -9759,23 +14666,42 @@ begin {self.}XmlChildFontRef := new XRef(self, "a", "fontRef"); container_.Set({self.}XmlChildFontRef); end - return {self.}XmlChildFontRef; + return {self.}XmlChildFontRef and not {self.}XmlChildFontRef.Removed ? {self.}XmlChildFontRef : fallback_.FontRef; end; -function XRef.Create();overload; +function WpsStyle.WriteXmlChildFontRef(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "lnRef"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFontRef) then + {self.}RemoveChild({self.}XmlChildFontRef); + end + else if v is class(XRef) then + begin + v.Parent := self; + {self.}XmlChildFontRef := v; + container_.Set({self.}XmlChildFontRef); + end + else begin + raise "Invalid assignment: FontRef expects XRef or nil"; + end end; -function XRef.Create(_node: XmlNode);overload; +function XRef.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "lnRef"); end; -function XRef.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function XRef.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function XRef.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function XRef.Init();override; @@ -9795,7 +14721,7 @@ function XRef.Copy(_obj: XRef);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Idx) then {self.}Idx := _obj.Idx; if not ifnil(_obj.XmlChildSchemeClr) then @@ -9803,6 +14729,23 @@ begin tslassigning := tslassigning_backup; end; +function XRef.Clone(): XRef;override; +begin + obj := new XRef(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Idx) then + obj.Idx := {self.}Idx; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:schemeClr": obj.SchemeClr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function XRef.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSchemeClr) then @@ -9811,15 +14754,15 @@ end; function XRef.ReadXmlAttrIdx(); begin - return {self.}XmlAttrIdx.Value; + return ifnil({self.}XmlAttrIdx.Value) ? fallback_.XmlAttrIdx.Value : {self.}XmlAttrIdx.Value; end; -function XRef.WriteXmlAttrIdx(_value); +function XRef.WriteXmlAttrIdx(_value: any); begin if ifnil({self.}XmlAttrIdx) then begin {self.}XmlAttrIdx := new OpenXmlAttribute("", "idx", nil); - attributes_[length(attributes_)] := {self.}XmlAttrIdx; + attributes_["idx"] := {self.}XmlAttrIdx; end {self.}XmlAttrIdx.Value := _value; end; @@ -9831,23 +14774,42 @@ begin {self.}XmlChildSchemeClr := new SchemeClr(self, "a", "schemeClr"); container_.Set({self.}XmlChildSchemeClr); end - return {self.}XmlChildSchemeClr; + return {self.}XmlChildSchemeClr and not {self.}XmlChildSchemeClr.Removed ? {self.}XmlChildSchemeClr : fallback_.SchemeClr; end; -function Txbx.Create();overload; +function XRef.WriteXmlChildSchemeClr(_p1: any; _p2: any); begin - {self.}Create(nil, "wps", "txbx"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSchemeClr) then + {self.}RemoveChild({self.}XmlChildSchemeClr); + end + else if v is class(SchemeClr) then + begin + v.Parent := self; + {self.}XmlChildSchemeClr := v; + container_.Set({self.}XmlChildSchemeClr); + end + else begin + raise "Invalid assignment: SchemeClr expects SchemeClr or nil"; + end end; -function Txbx.Create(_node: XmlNode);overload; +function Txbx.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wps", "txbx"); end; -function Txbx.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Txbx.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Txbx.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Txbx.Init();override; @@ -9866,12 +14828,27 @@ function Txbx.Copy(_obj: Txbx);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTxbxContent) then {self.}TxbxContent.Copy(_obj.XmlChildTxbxContent); tslassigning := tslassigning_backup; end; +function Txbx.Clone(): Txbx;override; +begin + obj := new Txbx(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "w:txbxContent": obj.TxbxContent := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Txbx.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTxbxContent) then @@ -9885,23 +14862,42 @@ begin {self.}XmlChildTxbxContent := new DocxML.TxbxContent(self, "w", "txbxContent"); container_.Set({self.}XmlChildTxbxContent); end - return {self.}XmlChildTxbxContent; + return {self.}XmlChildTxbxContent and not {self.}XmlChildTxbxContent.Removed ? {self.}XmlChildTxbxContent : fallback_.TxbxContent; end; -function CNvSpPr.Create();overload; +function Txbx.WriteXmlChildTxbxContent(_p1: any; _p2: any); begin - {self.}Create(nil, "wps", "cNvSpPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTxbxContent) then + {self.}RemoveChild({self.}XmlChildTxbxContent); + end + else if v is class(TxbxContent) then + begin + v.Parent := self; + {self.}XmlChildTxbxContent := v; + container_.Set({self.}XmlChildTxbxContent); + end + else begin + raise "Invalid assignment: TxbxContent expects TxbxContent or nil"; + end end; -function CNvSpPr.Create(_node: XmlNode);overload; +function CNvSpPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wps", "cNvSpPr"); end; -function CNvSpPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CNvSpPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function CNvSpPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CNvSpPr.Init();override; @@ -9921,7 +14917,7 @@ function CNvSpPr.Copy(_obj: CNvSpPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.TxBox) then {self.}TxBox := _obj.TxBox; if not ifnil(_obj.XmlChildSpLocks) then @@ -9929,6 +14925,23 @@ begin tslassigning := tslassigning_backup; end; +function CNvSpPr.Clone(): CNvSpPr;override; +begin + obj := new CNvSpPr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}TxBox) then + obj.TxBox := {self.}TxBox; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:spLocks": obj.SpLocks := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function CNvSpPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSpLocks) then @@ -9937,15 +14950,15 @@ end; function CNvSpPr.ReadXmlAttrTxBox(); begin - return {self.}XmlAttrTxBox.Value; + return ifnil({self.}XmlAttrTxBox.Value) ? fallback_.XmlAttrTxBox.Value : {self.}XmlAttrTxBox.Value; end; -function CNvSpPr.WriteXmlAttrTxBox(_value); +function CNvSpPr.WriteXmlAttrTxBox(_value: any); begin if ifnil({self.}XmlAttrTxBox) then begin {self.}XmlAttrTxBox := new OpenXmlAttribute("", "txBox", nil); - attributes_[length(attributes_)] := {self.}XmlAttrTxBox; + attributes_["txBox"] := {self.}XmlAttrTxBox; end {self.}XmlAttrTxBox.Value := _value; end; @@ -9957,23 +14970,42 @@ begin {self.}XmlChildSpLocks := new SpLocks(self, "a", "spLocks"); container_.Set({self.}XmlChildSpLocks); end - return {self.}XmlChildSpLocks; + return {self.}XmlChildSpLocks and not {self.}XmlChildSpLocks.Removed ? {self.}XmlChildSpLocks : fallback_.SpLocks; end; -function SpLocks.Create();overload; +function CNvSpPr.WriteXmlChildSpLocks(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "spLocks"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSpLocks) then + {self.}RemoveChild({self.}XmlChildSpLocks); + end + else if v is class(SpLocks) then + begin + v.Parent := self; + {self.}XmlChildSpLocks := v; + container_.Set({self.}XmlChildSpLocks); + end + else begin + raise "Invalid assignment: SpLocks expects SpLocks or nil"; + end end; -function SpLocks.Create(_node: XmlNode);overload; +function SpLocks.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "spLocks"); end; -function SpLocks.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SpLocks.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SpLocks.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SpLocks.Init();override; @@ -9992,12 +15024,20 @@ function SpLocks.Copy(_obj: SpLocks);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.NoChangeArrowheads) then {self.}NoChangeArrowheads := _obj.NoChangeArrowheads; tslassigning := tslassigning_backup; end; +function SpLocks.Clone(): SpLocks;override; +begin + obj := new SpLocks(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}NoChangeArrowheads) then + obj.NoChangeArrowheads := {self.}NoChangeArrowheads; + return obj; +end; + function SpLocks.ConvertToPoint();override; begin @@ -10005,33 +15045,33 @@ end; function SpLocks.ReadXmlAttrNoChangeArrowheads(); begin - return {self.}XmlAttrNoChangeArrowheads.Value; + return ifnil({self.}XmlAttrNoChangeArrowheads.Value) ? fallback_.XmlAttrNoChangeArrowheads.Value : {self.}XmlAttrNoChangeArrowheads.Value; end; -function SpLocks.WriteXmlAttrNoChangeArrowheads(_value); +function SpLocks.WriteXmlAttrNoChangeArrowheads(_value: any); begin if ifnil({self.}XmlAttrNoChangeArrowheads) then begin {self.}XmlAttrNoChangeArrowheads := new OpenXmlAttribute("", "noChangeArrowheads", nil); - attributes_[length(attributes_)] := {self.}XmlAttrNoChangeArrowheads; + attributes_["noChangeArrowheads"] := {self.}XmlAttrNoChangeArrowheads; end {self.}XmlAttrNoChangeArrowheads.Value := _value; end; -function Pic.Create();overload; +function Pic.create();overload; begin - {self.}Create(nil, "pic", "pic"); + {self.}create(nil, "pic", "pic"); end; -function Pic.Create(_node: XmlNode);overload; +function Pic.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Pic.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Pic.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Pic.Init();override; @@ -10052,7 +15092,7 @@ function Pic.Copy(_obj: Pic);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildNvPicPr) then {self.}NvPicPr.Copy(_obj.XmlChildNvPicPr); if not ifnil(_obj.XmlChildBlipFill) then @@ -10062,6 +15102,23 @@ begin tslassigning := tslassigning_backup; end; +function Pic.Clone(): Pic;override; +begin + obj := new Pic(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "nvPicPr": obj.NvPicPr := element.Clone(); + pre + "blipFill": obj.BlipFill := element.Clone(); + pre + "spPr": obj.SpPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Pic.ConvertToPoint();override; begin if not ifnil({self.}XmlChildNvPicPr) then @@ -10079,7 +15136,26 @@ begin {self.}XmlChildNvPicPr := new NvPicPr(self, {self.}Prefix, "nvPicPr"); container_.Set({self.}XmlChildNvPicPr); end - return {self.}XmlChildNvPicPr; + return {self.}XmlChildNvPicPr and not {self.}XmlChildNvPicPr.Removed ? {self.}XmlChildNvPicPr : fallback_.NvPicPr; +end; + +function Pic.WriteXmlChildNvPicPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNvPicPr) then + {self.}RemoveChild({self.}XmlChildNvPicPr); + end + else if v is class(NvPicPr) then + begin + v.Parent := self; + {self.}XmlChildNvPicPr := v; + container_.Set({self.}XmlChildNvPicPr); + end + else begin + raise "Invalid assignment: NvPicPr expects NvPicPr or nil"; + end end; function Pic.ReadXmlChildBlipFill(): BlipFill; @@ -10089,7 +15165,26 @@ begin {self.}XmlChildBlipFill := new BlipFill(self, {self.}Prefix, "blipFill"); container_.Set({self.}XmlChildBlipFill); end - return {self.}XmlChildBlipFill; + return {self.}XmlChildBlipFill and not {self.}XmlChildBlipFill.Removed ? {self.}XmlChildBlipFill : fallback_.BlipFill; +end; + +function Pic.WriteXmlChildBlipFill(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBlipFill) then + {self.}RemoveChild({self.}XmlChildBlipFill); + end + else if v is class(BlipFill) then + begin + v.Parent := self; + {self.}XmlChildBlipFill := v; + container_.Set({self.}XmlChildBlipFill); + end + else begin + raise "Invalid assignment: BlipFill expects BlipFill or nil"; + end end; function Pic.ReadXmlChildSpPr(): SpPr; @@ -10099,23 +15194,42 @@ begin {self.}XmlChildSpPr := new SpPr(self, {self.}Prefix, "spPr"); container_.Set({self.}XmlChildSpPr); end - return {self.}XmlChildSpPr; + return {self.}XmlChildSpPr and not {self.}XmlChildSpPr.Removed ? {self.}XmlChildSpPr : fallback_.SpPr; end; -function NvPicPr.Create();overload; +function Pic.WriteXmlChildSpPr(_p1: any; _p2: any); begin - {self.}Create(nil, "pic", "nvPicPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSpPr) then + {self.}RemoveChild({self.}XmlChildSpPr); + end + else if v is class(SpPr) then + begin + v.Parent := self; + {self.}XmlChildSpPr := v; + container_.Set({self.}XmlChildSpPr); + end + else begin + raise "Invalid assignment: SpPr expects SpPr or nil"; + end end; -function NvPicPr.Create(_node: XmlNode);overload; +function NvPicPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "pic", "nvPicPr"); end; -function NvPicPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function NvPicPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function NvPicPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function NvPicPr.Init();override; @@ -10135,7 +15249,7 @@ function NvPicPr.Copy(_obj: NvPicPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCNvPr) then {self.}CNvPr.Copy(_obj.XmlChildCNvPr); if not ifnil(_obj.XmlChildCNvPicPr) then @@ -10143,6 +15257,22 @@ begin tslassigning := tslassigning_backup; end; +function NvPicPr.Clone(): NvPicPr;override; +begin + obj := new NvPicPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "pic:cNvPr": obj.CNvPr := element.Clone(); + "pic:cNvPicPr": obj.CNvPicPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function NvPicPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCNvPr) then @@ -10158,7 +15288,26 @@ begin {self.}XmlChildCNvPr := new CNvPr(self, "pic", "cNvPr"); container_.Set({self.}XmlChildCNvPr); end - return {self.}XmlChildCNvPr; + return {self.}XmlChildCNvPr and not {self.}XmlChildCNvPr.Removed ? {self.}XmlChildCNvPr : fallback_.CNvPr; +end; + +function NvPicPr.WriteXmlChildCNvPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCNvPr) then + {self.}RemoveChild({self.}XmlChildCNvPr); + end + else if v is class(CNvPr) then + begin + v.Parent := self; + {self.}XmlChildCNvPr := v; + container_.Set({self.}XmlChildCNvPr); + end + else begin + raise "Invalid assignment: CNvPr expects CNvPr or nil"; + end end; function NvPicPr.ReadXmlChildCNvPicPr(): CNvPicPr; @@ -10168,23 +15317,42 @@ begin {self.}XmlChildCNvPicPr := new CNvPicPr(self, "pic", "cNvPicPr"); container_.Set({self.}XmlChildCNvPicPr); end - return {self.}XmlChildCNvPicPr; + return {self.}XmlChildCNvPicPr and not {self.}XmlChildCNvPicPr.Removed ? {self.}XmlChildCNvPicPr : fallback_.CNvPicPr; end; -function CNvPr.Create();overload; +function NvPicPr.WriteXmlChildCNvPicPr(_p1: any; _p2: any); begin - {self.}Create(nil, "pic", "cNvPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCNvPicPr) then + {self.}RemoveChild({self.}XmlChildCNvPicPr); + end + else if v is class(CNvPicPr) then + begin + v.Parent := self; + {self.}XmlChildCNvPicPr := v; + container_.Set({self.}XmlChildCNvPicPr); + end + else begin + raise "Invalid assignment: CNvPicPr expects CNvPicPr or nil"; + end end; -function CNvPr.Create(_node: XmlNode);overload; +function CNvPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "pic", "cNvPr"); end; -function CNvPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CNvPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function CNvPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CNvPr.Init();override; @@ -10205,7 +15373,7 @@ function CNvPr.Copy(_obj: CNvPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.Name) then @@ -10215,6 +15383,18 @@ begin tslassigning := tslassigning_backup; end; +function CNvPr.Clone(): CNvPr;override; +begin + obj := new CNvPr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Name) then + obj.Name := {self.}Name; + if not ifnil({self.}Descr) then + obj.Descr := {self.}Descr; + return obj; +end; + function CNvPr.ConvertToPoint();override; begin @@ -10222,63 +15402,63 @@ end; function CNvPr.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function CNvPr.WriteXmlAttrId(_value); +function CNvPr.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; function CNvPr.ReadXmlAttrName(); begin - return {self.}XmlAttrName.Value; + return ifnil({self.}XmlAttrName.Value) ? fallback_.XmlAttrName.Value : {self.}XmlAttrName.Value; end; -function CNvPr.WriteXmlAttrName(_value); +function CNvPr.WriteXmlAttrName(_value: any); begin if ifnil({self.}XmlAttrName) then begin {self.}XmlAttrName := new OpenXmlAttribute("", "name", nil); - attributes_[length(attributes_)] := {self.}XmlAttrName; + attributes_["name"] := {self.}XmlAttrName; end {self.}XmlAttrName.Value := _value; end; function CNvPr.ReadXmlAttrDescr(); begin - return {self.}XmlAttrDescr.Value; + return ifnil({self.}XmlAttrDescr.Value) ? fallback_.XmlAttrDescr.Value : {self.}XmlAttrDescr.Value; end; -function CNvPr.WriteXmlAttrDescr(_value); +function CNvPr.WriteXmlAttrDescr(_value: any); begin if ifnil({self.}XmlAttrDescr) then begin {self.}XmlAttrDescr := new OpenXmlAttribute("", "descr", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDescr; + attributes_["descr"] := {self.}XmlAttrDescr; end {self.}XmlAttrDescr.Value := _value; end; -function CNvPicPr.Create();overload; +function CNvPicPr.create();overload; begin - {self.}Create(nil, "pic", "cNvPicPr"); + {self.}create(nil, "pic", "cNvPicPr"); end; -function CNvPicPr.Create(_node: XmlNode);overload; +function CNvPicPr.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function CNvPicPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CNvPicPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CNvPicPr.Init();override; @@ -10297,12 +15477,27 @@ function CNvPicPr.Copy(_obj: CNvPicPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildPicLocks) then {self.}PicLocks.Copy(_obj.XmlChildPicLocks); tslassigning := tslassigning_backup; end; +function CNvPicPr.Clone(): CNvPicPr;override; +begin + obj := new CNvPicPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:picLocks": obj.PicLocks := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function CNvPicPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPicLocks) then @@ -10316,23 +15511,42 @@ begin {self.}XmlChildPicLocks := new PicLocks(self, "a", "picLocks"); container_.Set({self.}XmlChildPicLocks); end - return {self.}XmlChildPicLocks; + return {self.}XmlChildPicLocks and not {self.}XmlChildPicLocks.Removed ? {self.}XmlChildPicLocks : fallback_.PicLocks; end; -function PicLocks.Create();overload; +function CNvPicPr.WriteXmlChildPicLocks(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "picLocks"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPicLocks) then + {self.}RemoveChild({self.}XmlChildPicLocks); + end + else if v is class(PicLocks) then + begin + v.Parent := self; + {self.}XmlChildPicLocks := v; + container_.Set({self.}XmlChildPicLocks); + end + else begin + raise "Invalid assignment: PicLocks expects PicLocks or nil"; + end end; -function PicLocks.Create(_node: XmlNode);overload; +function PicLocks.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "picLocks"); end; -function PicLocks.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PicLocks.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function PicLocks.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PicLocks.Init();override; @@ -10351,12 +15565,20 @@ function PicLocks.Copy(_obj: PicLocks);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.NoChangeAspect) then {self.}NoChangeAspect := _obj.NoChangeAspect; tslassigning := tslassigning_backup; end; +function PicLocks.Clone(): PicLocks;override; +begin + obj := new PicLocks(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}NoChangeAspect) then + obj.NoChangeAspect := {self.}NoChangeAspect; + return obj; +end; + function PicLocks.ConvertToPoint();override; begin @@ -10364,33 +15586,33 @@ end; function PicLocks.ReadXmlAttrNoChangeAspect(); begin - return {self.}XmlAttrNoChangeAspect.Value; + return ifnil({self.}XmlAttrNoChangeAspect.Value) ? fallback_.XmlAttrNoChangeAspect.Value : {self.}XmlAttrNoChangeAspect.Value; end; -function PicLocks.WriteXmlAttrNoChangeAspect(_value); +function PicLocks.WriteXmlAttrNoChangeAspect(_value: any); begin if ifnil({self.}XmlAttrNoChangeAspect) then begin {self.}XmlAttrNoChangeAspect := new OpenXmlAttribute("", "noChangeAspect", nil); - attributes_[length(attributes_)] := {self.}XmlAttrNoChangeAspect; + attributes_["noChangeAspect"] := {self.}XmlAttrNoChangeAspect; end {self.}XmlAttrNoChangeAspect.Value := _value; end; -function BlipFill.Create();overload; +function BlipFill.create();overload; begin - {self.}Create(nil, "pic", "blipFill"); + {self.}create(nil, "pic", "blipFill"); end; -function BlipFill.Create(_node: XmlNode);overload; +function BlipFill.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function BlipFill.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function BlipFill.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function BlipFill.Init();override; @@ -10410,7 +15632,7 @@ function BlipFill.Copy(_obj: BlipFill);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildBlip) then {self.}Blip.Copy(_obj.XmlChildBlip); if not ifnil(_obj.XmlChildStretch) then @@ -10418,6 +15640,22 @@ begin tslassigning := tslassigning_backup; end; +function BlipFill.Clone(): BlipFill;override; +begin + obj := new BlipFill(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:blip": obj.Blip := element.Clone(); + "a:stretch": obj.Stretch := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function BlipFill.ConvertToPoint();override; begin if not ifnil({self.}XmlChildBlip) then @@ -10433,7 +15671,26 @@ begin {self.}XmlChildBlip := new Blip(self, "a", "blip"); container_.Set({self.}XmlChildBlip); end - return {self.}XmlChildBlip; + return {self.}XmlChildBlip and not {self.}XmlChildBlip.Removed ? {self.}XmlChildBlip : fallback_.Blip; +end; + +function BlipFill.WriteXmlChildBlip(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBlip) then + {self.}RemoveChild({self.}XmlChildBlip); + end + else if v is class(Blip) then + begin + v.Parent := self; + {self.}XmlChildBlip := v; + container_.Set({self.}XmlChildBlip); + end + else begin + raise "Invalid assignment: Blip expects Blip or nil"; + end end; function BlipFill.ReadXmlChildStretch(): Stretch; @@ -10443,23 +15700,42 @@ begin {self.}XmlChildStretch := new Stretch(self, "a", "stretch"); container_.Set({self.}XmlChildStretch); end - return {self.}XmlChildStretch; + return {self.}XmlChildStretch and not {self.}XmlChildStretch.Removed ? {self.}XmlChildStretch : fallback_.Stretch; end; -function Blip.Create();overload; +function BlipFill.WriteXmlChildStretch(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "blip"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildStretch) then + {self.}RemoveChild({self.}XmlChildStretch); + end + else if v is class(Stretch) then + begin + v.Parent := self; + {self.}XmlChildStretch := v; + container_.Set({self.}XmlChildStretch); + end + else begin + raise "Invalid assignment: Stretch expects Stretch or nil"; + end end; -function Blip.Create(_node: XmlNode);overload; +function Blip.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "blip"); end; -function Blip.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Blip.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Blip.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Blip.Init();override; @@ -10479,7 +15755,7 @@ function Blip.Copy(_obj: Blip);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Embed) then {self.}Embed := _obj.Embed; if not ifnil(_obj.Cstate) then @@ -10487,6 +15763,16 @@ begin tslassigning := tslassigning_backup; end; +function Blip.Clone(): Blip;override; +begin + obj := new Blip(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Embed) then + obj.Embed := {self.}Embed; + if not ifnil({self.}Cstate) then + obj.Cstate := {self.}Cstate; + return obj; +end; + function Blip.ConvertToPoint();override; begin @@ -10494,48 +15780,48 @@ end; function Blip.ReadXmlAttrEmbed(); begin - return {self.}XmlAttrEmbed.Value; + return ifnil({self.}XmlAttrEmbed.Value) ? fallback_.XmlAttrEmbed.Value : {self.}XmlAttrEmbed.Value; end; -function Blip.WriteXmlAttrEmbed(_value); +function Blip.WriteXmlAttrEmbed(_value: any); begin if ifnil({self.}XmlAttrEmbed) then begin {self.}XmlAttrEmbed := new OpenXmlAttribute("r", "embed", nil); - attributes_[length(attributes_)] := {self.}XmlAttrEmbed; + attributes_["r:embed"] := {self.}XmlAttrEmbed; end {self.}XmlAttrEmbed.Value := _value; end; function Blip.ReadXmlAttrCstate(); begin - return {self.}XmlAttrCstate.Value; + return ifnil({self.}XmlAttrCstate.Value) ? fallback_.XmlAttrCstate.Value : {self.}XmlAttrCstate.Value; end; -function Blip.WriteXmlAttrCstate(_value); +function Blip.WriteXmlAttrCstate(_value: any); begin if ifnil({self.}XmlAttrCstate) then begin {self.}XmlAttrCstate := new OpenXmlAttribute("", "cstate", nil); - attributes_[length(attributes_)] := {self.}XmlAttrCstate; + attributes_["cstate"] := {self.}XmlAttrCstate; end {self.}XmlAttrCstate.Value := _value; end; -function Stretch.Create();overload; +function Stretch.create();overload; begin - {self.}Create(nil, "a", "stretch"); + {self.}create(nil, "a", "stretch"); end; -function Stretch.Create(_node: XmlNode);overload; +function Stretch.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Stretch.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Stretch.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Stretch.Init();override; @@ -10554,12 +15840,27 @@ function Stretch.Copy(_obj: Stretch);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildFillRect) then {self.}FillRect.Copy(_obj.XmlChildFillRect); tslassigning := tslassigning_backup; end; +function Stretch.Clone(): Stretch;override; +begin + obj := new Stretch(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:fillRect": obj.FillRect := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Stretch.ConvertToPoint();override; begin if not ifnil({self.}XmlChildFillRect) then @@ -10573,23 +15874,42 @@ begin {self.}XmlChildFillRect := new PureVal(self, "a", "fillRect"); container_.Set({self.}XmlChildFillRect); end - return {self.}XmlChildFillRect; + return {self.}XmlChildFillRect and not {self.}XmlChildFillRect.Removed ? {self.}XmlChildFillRect : fallback_.FillRect; end; -function SpPr.Create();overload; +function Stretch.WriteXmlChildFillRect(_p1: any; _p2: any); begin - {self.}Create(nil, "pic", "spPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFillRect) then + {self.}RemoveChild({self.}XmlChildFillRect); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildFillRect := v; + container_.Set({self.}XmlChildFillRect); + end + else begin + raise "Invalid assignment: FillRect expects PureVal or nil"; + end end; -function SpPr.Create(_node: XmlNode);overload; +function SpPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "pic", "spPr"); end; -function SpPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SpPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SpPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SpPr.Init();override; @@ -10614,7 +15934,7 @@ function SpPr.Copy(_obj: SpPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.BwMode) then {self.}BwMode := _obj.BwMode; if not ifnil(_obj.XmlChildXfrm) then @@ -10632,6 +15952,28 @@ begin tslassigning := tslassigning_backup; end; +function SpPr.Clone(): SpPr;override; +begin + obj := new SpPr(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}BwMode) then + obj.BwMode := {self.}BwMode; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "a:xfrm": obj.Xfrm := element.Clone(); + "a:prstGeom": obj.PrstGeom := element.Clone(); + "a:noFill": obj.NoFill := element.Clone(); + "a:solidFill": obj.SolidFill := element.Clone(); + "a:ln": obj.Ln := element.Clone(); + "a:effectLst": obj.EffectLst := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SpPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildXfrm) then @@ -10648,15 +15990,15 @@ end; function SpPr.ReadXmlAttrBwMode(); begin - return {self.}XmlAttrBwMode.Value; + return ifnil({self.}XmlAttrBwMode.Value) ? fallback_.XmlAttrBwMode.Value : {self.}XmlAttrBwMode.Value; end; -function SpPr.WriteXmlAttrBwMode(_value); +function SpPr.WriteXmlAttrBwMode(_value: any); begin if ifnil({self.}XmlAttrBwMode) then begin {self.}XmlAttrBwMode := new OpenXmlAttribute("", "bwMode", nil); - attributes_[length(attributes_)] := {self.}XmlAttrBwMode; + attributes_["bwMode"] := {self.}XmlAttrBwMode; end {self.}XmlAttrBwMode.Value := _value; end; @@ -10668,7 +16010,25 @@ begin {self.}XmlChildNoFill := new OpenXmlSimpleType(self, "a", "noFill"); container_.Set({self.}XmlChildNoFill); end - return {self.}XmlChildNoFill; + return {self.}XmlChildNoFill and not {self.}XmlChildNoFill.Removed ? {self.}XmlChildNoFill : fallback_.NoFill; +end; + +function SpPr.WriteXmlChildNoFill(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildNoFill) then + {self.}RemoveChild({self.}XmlChildNoFill); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildNoFill := _value; + container_.Set({self.}XmlChildNoFill); + end + else begin + raise "Invalid assignment: NoFill expects nil or OpenXmlSimpleType"; + end end; function SpPr.ReadXmlChildXfrm(): Xfrm; @@ -10678,7 +16038,26 @@ begin {self.}XmlChildXfrm := new Xfrm(self, "a", "xfrm"); container_.Set({self.}XmlChildXfrm); end - return {self.}XmlChildXfrm; + return {self.}XmlChildXfrm and not {self.}XmlChildXfrm.Removed ? {self.}XmlChildXfrm : fallback_.Xfrm; +end; + +function SpPr.WriteXmlChildXfrm(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildXfrm) then + {self.}RemoveChild({self.}XmlChildXfrm); + end + else if v is class(Xfrm) then + begin + v.Parent := self; + {self.}XmlChildXfrm := v; + container_.Set({self.}XmlChildXfrm); + end + else begin + raise "Invalid assignment: Xfrm expects Xfrm or nil"; + end end; function SpPr.ReadXmlChildPrstGeom(): PrstGeom; @@ -10688,7 +16067,26 @@ begin {self.}XmlChildPrstGeom := new PrstGeom(self, "a", "prstGeom"); container_.Set({self.}XmlChildPrstGeom); end - return {self.}XmlChildPrstGeom; + return {self.}XmlChildPrstGeom and not {self.}XmlChildPrstGeom.Removed ? {self.}XmlChildPrstGeom : fallback_.PrstGeom; +end; + +function SpPr.WriteXmlChildPrstGeom(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPrstGeom) then + {self.}RemoveChild({self.}XmlChildPrstGeom); + end + else if v is class(PrstGeom) then + begin + v.Parent := self; + {self.}XmlChildPrstGeom := v; + container_.Set({self.}XmlChildPrstGeom); + end + else begin + raise "Invalid assignment: PrstGeom expects PrstGeom or nil"; + end end; function SpPr.ReadXmlChildSolidFill(): SolidFill; @@ -10698,7 +16096,26 @@ begin {self.}XmlChildSolidFill := new SolidFill(self, "a", "solidFill"); container_.Set({self.}XmlChildSolidFill); end - return {self.}XmlChildSolidFill; + return {self.}XmlChildSolidFill and not {self.}XmlChildSolidFill.Removed ? {self.}XmlChildSolidFill : fallback_.SolidFill; +end; + +function SpPr.WriteXmlChildSolidFill(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSolidFill) then + {self.}RemoveChild({self.}XmlChildSolidFill); + end + else if v is class(SolidFill) then + begin + v.Parent := self; + {self.}XmlChildSolidFill := v; + container_.Set({self.}XmlChildSolidFill); + end + else begin + raise "Invalid assignment: SolidFill expects SolidFill or nil"; + end end; function SpPr.ReadXmlChildLn(): Ln; @@ -10708,7 +16125,26 @@ begin {self.}XmlChildLn := new Ln(self, "a", "ln"); container_.Set({self.}XmlChildLn); end - return {self.}XmlChildLn; + return {self.}XmlChildLn and not {self.}XmlChildLn.Removed ? {self.}XmlChildLn : fallback_.Ln; +end; + +function SpPr.WriteXmlChildLn(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLn) then + {self.}RemoveChild({self.}XmlChildLn); + end + else if v is class(Ln) then + begin + v.Parent := self; + {self.}XmlChildLn := v; + container_.Set({self.}XmlChildLn); + end + else begin + raise "Invalid assignment: Ln expects Ln or nil"; + end end; function SpPr.ReadXmlChildEffectLst(): EffectLst; @@ -10718,23 +16154,42 @@ begin {self.}XmlChildEffectLst := new EffectLst(self, "a", "effectLst"); container_.Set({self.}XmlChildEffectLst); end - return {self.}XmlChildEffectLst; + return {self.}XmlChildEffectLst and not {self.}XmlChildEffectLst.Removed ? {self.}XmlChildEffectLst : fallback_.EffectLst; end; -function EffectLst.Create();overload; +function SpPr.WriteXmlChildEffectLst(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "effectLst"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEffectLst) then + {self.}RemoveChild({self.}XmlChildEffectLst); + end + else if v is class(EffectLst) then + begin + v.Parent := self; + {self.}XmlChildEffectLst := v; + container_.Set({self.}XmlChildEffectLst); + end + else begin + raise "Invalid assignment: EffectLst expects EffectLst or nil"; + end end; -function EffectLst.Create(_node: XmlNode);overload; +function EffectLst.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "effectLst"); end; -function EffectLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function EffectLst.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function EffectLst.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function EffectLst.Init();override; @@ -10753,12 +16208,27 @@ function EffectLst.Copy(_obj: EffectLst);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildOuterShdw) then {self.}OuterShdw.Copy(_obj.XmlChildOuterShdw); tslassigning := tslassigning_backup; end; +function EffectLst.Clone(): EffectLst;override; +begin + obj := new EffectLst(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "outerShdw": obj.OuterShdw := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function EffectLst.ConvertToPoint();override; begin if not ifnil({self.}XmlChildOuterShdw) then @@ -10772,23 +16242,42 @@ begin {self.}XmlChildOuterShdw := new OuterShdw(self, {self.}Prefix, "outerShdw"); container_.Set({self.}XmlChildOuterShdw); end - return {self.}XmlChildOuterShdw; + return {self.}XmlChildOuterShdw and not {self.}XmlChildOuterShdw.Removed ? {self.}XmlChildOuterShdw : fallback_.OuterShdw; end; -function Ln.Create();overload; +function EffectLst.WriteXmlChildOuterShdw(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "ln"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildOuterShdw) then + {self.}RemoveChild({self.}XmlChildOuterShdw); + end + else if v is class(OuterShdw) then + begin + v.Parent := self; + {self.}XmlChildOuterShdw := v; + container_.Set({self.}XmlChildOuterShdw); + end + else begin + raise "Invalid assignment: OuterShdw expects OuterShdw or nil"; + end end; -function Ln.Create(_node: XmlNode);overload; +function Ln.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "ln"); end; -function Ln.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Ln.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Ln.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Ln.Init();override; @@ -10816,7 +16305,7 @@ function Ln.Copy(_obj: Ln);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.W) then {self.}W := _obj.W; if not ifnil(_obj.Cap) then @@ -10840,6 +16329,34 @@ begin tslassigning := tslassigning_backup; end; +function Ln.Clone(): Ln;override; +begin + obj := new Ln(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}W) then + obj.W := {self.}W; + if not ifnil({self.}Cap) then + obj.Cap := {self.}Cap; + if not ifnil({self.}Cmpd) then + obj.Cmpd := {self.}Cmpd; + if not ifnil({self.}Algn) then + obj.Algn := {self.}Algn; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "noFill": obj.NoFill := element.Clone(); + pre + "solidFill": obj.SolidFill := element.Clone(); + pre + "prstDash": obj.PrstDash := element.Clone(); + pre + "miter": obj.Miter := element.Clone(); + pre + "headEnd": obj.HeadEnd := element.Clone(); + pre + "tailEnd": obj.TailEnd := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Ln.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSolidFill) then @@ -10852,60 +16369,60 @@ end; function Ln.ReadXmlAttrW(); begin - return {self.}XmlAttrW.Value; + return ifnil({self.}XmlAttrW.Value) ? fallback_.XmlAttrW.Value : {self.}XmlAttrW.Value; end; -function Ln.WriteXmlAttrW(_value); +function Ln.WriteXmlAttrW(_value: any); begin if ifnil({self.}XmlAttrW) then begin {self.}XmlAttrW := new OpenXmlAttribute("", "w", nil); - attributes_[length(attributes_)] := {self.}XmlAttrW; + attributes_["w"] := {self.}XmlAttrW; end {self.}XmlAttrW.Value := _value; end; function Ln.ReadXmlAttrCap(); begin - return {self.}XmlAttrCap.Value; + return ifnil({self.}XmlAttrCap.Value) ? fallback_.XmlAttrCap.Value : {self.}XmlAttrCap.Value; end; -function Ln.WriteXmlAttrCap(_value); +function Ln.WriteXmlAttrCap(_value: any); begin if ifnil({self.}XmlAttrCap) then begin {self.}XmlAttrCap := new OpenXmlAttribute("", "cap", nil); - attributes_[length(attributes_)] := {self.}XmlAttrCap; + attributes_["cap"] := {self.}XmlAttrCap; end {self.}XmlAttrCap.Value := _value; end; function Ln.ReadXmlAttrCmpd(); begin - return {self.}XmlAttrCmpd.Value; + return ifnil({self.}XmlAttrCmpd.Value) ? fallback_.XmlAttrCmpd.Value : {self.}XmlAttrCmpd.Value; end; -function Ln.WriteXmlAttrCmpd(_value); +function Ln.WriteXmlAttrCmpd(_value: any); begin if ifnil({self.}XmlAttrCmpd) then begin {self.}XmlAttrCmpd := new OpenXmlAttribute("", "cmpd", nil); - attributes_[length(attributes_)] := {self.}XmlAttrCmpd; + attributes_["cmpd"] := {self.}XmlAttrCmpd; end {self.}XmlAttrCmpd.Value := _value; end; function Ln.ReadXmlAttrAlgn(); begin - return {self.}XmlAttrAlgn.Value; + return ifnil({self.}XmlAttrAlgn.Value) ? fallback_.XmlAttrAlgn.Value : {self.}XmlAttrAlgn.Value; end; -function Ln.WriteXmlAttrAlgn(_value); +function Ln.WriteXmlAttrAlgn(_value: any); begin if ifnil({self.}XmlAttrAlgn) then begin {self.}XmlAttrAlgn := new OpenXmlAttribute("", "algn", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAlgn; + attributes_["algn"] := {self.}XmlAttrAlgn; end {self.}XmlAttrAlgn.Value := _value; end; @@ -10917,7 +16434,25 @@ begin {self.}XmlChildNoFill := new OpenXmlSimpleType(self, {self.}Prefix, "noFill"); container_.Set({self.}XmlChildNoFill); end - return {self.}XmlChildNoFill; + return {self.}XmlChildNoFill and not {self.}XmlChildNoFill.Removed ? {self.}XmlChildNoFill : fallback_.NoFill; +end; + +function Ln.WriteXmlChildNoFill(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildNoFill) then + {self.}RemoveChild({self.}XmlChildNoFill); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildNoFill := _value; + container_.Set({self.}XmlChildNoFill); + end + else begin + raise "Invalid assignment: NoFill expects nil or OpenXmlSimpleType"; + end end; function Ln.ReadXmlChildHeadEnd(); @@ -10927,7 +16462,25 @@ begin {self.}XmlChildHeadEnd := new OpenXmlSimpleType(self, {self.}Prefix, "headEnd"); container_.Set({self.}XmlChildHeadEnd); end - return {self.}XmlChildHeadEnd; + return {self.}XmlChildHeadEnd and not {self.}XmlChildHeadEnd.Removed ? {self.}XmlChildHeadEnd : fallback_.HeadEnd; +end; + +function Ln.WriteXmlChildHeadEnd(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildHeadEnd) then + {self.}RemoveChild({self.}XmlChildHeadEnd); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildHeadEnd := _value; + container_.Set({self.}XmlChildHeadEnd); + end + else begin + raise "Invalid assignment: HeadEnd expects nil or OpenXmlSimpleType"; + end end; function Ln.ReadXmlChildTailEnd(); @@ -10937,7 +16490,25 @@ begin {self.}XmlChildTailEnd := new OpenXmlSimpleType(self, {self.}Prefix, "tailEnd"); container_.Set({self.}XmlChildTailEnd); end - return {self.}XmlChildTailEnd; + return {self.}XmlChildTailEnd and not {self.}XmlChildTailEnd.Removed ? {self.}XmlChildTailEnd : fallback_.TailEnd; +end; + +function Ln.WriteXmlChildTailEnd(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildTailEnd) then + {self.}RemoveChild({self.}XmlChildTailEnd); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildTailEnd := _value; + container_.Set({self.}XmlChildTailEnd); + end + else begin + raise "Invalid assignment: TailEnd expects nil or OpenXmlSimpleType"; + end end; function Ln.ReadXmlChildSolidFill(): SolidFill; @@ -10947,7 +16518,26 @@ begin {self.}XmlChildSolidFill := new SolidFill(self, {self.}Prefix, "solidFill"); container_.Set({self.}XmlChildSolidFill); end - return {self.}XmlChildSolidFill; + return {self.}XmlChildSolidFill and not {self.}XmlChildSolidFill.Removed ? {self.}XmlChildSolidFill : fallback_.SolidFill; +end; + +function Ln.WriteXmlChildSolidFill(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSolidFill) then + {self.}RemoveChild({self.}XmlChildSolidFill); + end + else if v is class(SolidFill) then + begin + v.Parent := self; + {self.}XmlChildSolidFill := v; + container_.Set({self.}XmlChildSolidFill); + end + else begin + raise "Invalid assignment: SolidFill expects SolidFill or nil"; + end end; function Ln.ReadXmlChildPrstDash(): PureVal; @@ -10957,7 +16547,26 @@ begin {self.}XmlChildPrstDash := new PureVal(self, {self.}Prefix, "prstDash"); container_.Set({self.}XmlChildPrstDash); end - return {self.}XmlChildPrstDash; + return {self.}XmlChildPrstDash and not {self.}XmlChildPrstDash.Removed ? {self.}XmlChildPrstDash : fallback_.PrstDash; +end; + +function Ln.WriteXmlChildPrstDash(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPrstDash) then + {self.}RemoveChild({self.}XmlChildPrstDash); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildPrstDash := v; + container_.Set({self.}XmlChildPrstDash); + end + else begin + raise "Invalid assignment: PrstDash expects PureVal or nil"; + end end; function Ln.ReadXmlChildMiter(): Miter; @@ -10967,23 +16576,42 @@ begin {self.}XmlChildMiter := new Miter(self, {self.}Prefix, "miter"); container_.Set({self.}XmlChildMiter); end - return {self.}XmlChildMiter; + return {self.}XmlChildMiter and not {self.}XmlChildMiter.Removed ? {self.}XmlChildMiter : fallback_.Miter; end; -function Miter.Create();overload; +function Ln.WriteXmlChildMiter(_p1: any; _p2: any); begin - {self.}Create(nil, "a", "miter"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildMiter) then + {self.}RemoveChild({self.}XmlChildMiter); + end + else if v is class(Miter) then + begin + v.Parent := self; + {self.}XmlChildMiter := v; + container_.Set({self.}XmlChildMiter); + end + else begin + raise "Invalid assignment: Miter expects Miter or nil"; + end end; -function Miter.Create(_node: XmlNode);overload; +function Miter.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "a", "miter"); end; -function Miter.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Miter.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Miter.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Miter.Init();override; @@ -11002,12 +16630,20 @@ function Miter.Copy(_obj: Miter);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Lim) then {self.}Lim := _obj.Lim; tslassigning := tslassigning_backup; end; +function Miter.Clone(): Miter;override; +begin + obj := new Miter(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Lim) then + obj.Lim := {self.}Lim; + return obj; +end; + function Miter.ConvertToPoint();override; begin @@ -11015,33 +16651,33 @@ end; function Miter.ReadXmlAttrLim(); begin - return {self.}XmlAttrLim.Value; + return ifnil({self.}XmlAttrLim.Value) ? fallback_.XmlAttrLim.Value : {self.}XmlAttrLim.Value; end; -function Miter.WriteXmlAttrLim(_value); +function Miter.WriteXmlAttrLim(_value: any); begin if ifnil({self.}XmlAttrLim) then begin {self.}XmlAttrLim := new OpenXmlAttribute("", "lim", nil); - attributes_[length(attributes_)] := {self.}XmlAttrLim; + attributes_["lim"] := {self.}XmlAttrLim; end {self.}XmlAttrLim.Value := _value; end; -function Xfrm.Create();overload; +function Xfrm.create();overload; begin - {self.}Create(nil, "a", "xfrm"); + {self.}create(nil, "a", "xfrm"); end; -function Xfrm.Create(_node: XmlNode);overload; +function Xfrm.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Xfrm.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Xfrm.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Xfrm.Init();override; @@ -11064,7 +16700,7 @@ function Xfrm.Copy(_obj: Xfrm);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.FlipH) then {self.}FlipH := _obj.FlipH; if not ifnil(_obj.FlipV) then @@ -11078,6 +16714,28 @@ begin tslassigning := tslassigning_backup; end; +function Xfrm.Clone(): Xfrm;override; +begin + obj := new Xfrm(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}FlipH) then + obj.FlipH := {self.}FlipH; + if not ifnil({self.}FlipV) then + obj.FlipV := {self.}FlipV; + if not ifnil({self.}Rot) then + obj.Rot := {self.}Rot; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "off": obj.Off := element.Clone(); + pre + "ext": obj.Ext := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Xfrm.ConvertToPoint();override; begin if not ifnil({self.}XmlChildOff) then @@ -11088,45 +16746,45 @@ end; function Xfrm.ReadXmlAttrFlipH(); begin - return {self.}XmlAttrFlipH.Value; + return ifnil({self.}XmlAttrFlipH.Value) ? fallback_.XmlAttrFlipH.Value : {self.}XmlAttrFlipH.Value; end; -function Xfrm.WriteXmlAttrFlipH(_value); +function Xfrm.WriteXmlAttrFlipH(_value: any); begin if ifnil({self.}XmlAttrFlipH) then begin {self.}XmlAttrFlipH := new OpenXmlAttribute("", "filpH", nil); - attributes_[length(attributes_)] := {self.}XmlAttrFlipH; + attributes_["filpH"] := {self.}XmlAttrFlipH; end {self.}XmlAttrFlipH.Value := _value; end; function Xfrm.ReadXmlAttrFlipV(); begin - return {self.}XmlAttrFlipV.Value; + return ifnil({self.}XmlAttrFlipV.Value) ? fallback_.XmlAttrFlipV.Value : {self.}XmlAttrFlipV.Value; end; -function Xfrm.WriteXmlAttrFlipV(_value); +function Xfrm.WriteXmlAttrFlipV(_value: any); begin if ifnil({self.}XmlAttrFlipV) then begin {self.}XmlAttrFlipV := new OpenXmlAttribute("", "filpV", nil); - attributes_[length(attributes_)] := {self.}XmlAttrFlipV; + attributes_["filpV"] := {self.}XmlAttrFlipV; end {self.}XmlAttrFlipV.Value := _value; end; function Xfrm.ReadXmlAttrRot(); begin - return {self.}XmlAttrRot.Value; + return ifnil({self.}XmlAttrRot.Value) ? fallback_.XmlAttrRot.Value : {self.}XmlAttrRot.Value; end; -function Xfrm.WriteXmlAttrRot(_value); +function Xfrm.WriteXmlAttrRot(_value: any); begin if ifnil({self.}XmlAttrRot) then begin {self.}XmlAttrRot := new OpenXmlAttribute("", "rot", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRot; + attributes_["rot"] := {self.}XmlAttrRot; end {self.}XmlAttrRot.Value := _value; end; @@ -11138,7 +16796,26 @@ begin {self.}XmlChildOff := new XY(self, {self.}Prefix, "off"); container_.Set({self.}XmlChildOff); end - return {self.}XmlChildOff; + return {self.}XmlChildOff and not {self.}XmlChildOff.Removed ? {self.}XmlChildOff : fallback_.Off; +end; + +function Xfrm.WriteXmlChildOff(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildOff) then + {self.}RemoveChild({self.}XmlChildOff); + end + else if v is class(XY) then + begin + v.Parent := self; + {self.}XmlChildOff := v; + container_.Set({self.}XmlChildOff); + end + else begin + raise "Invalid assignment: Off expects XY or nil"; + end end; function Xfrm.ReadXmlChildExt(): CXY; @@ -11148,23 +16825,42 @@ begin {self.}XmlChildExt := new CXY(self, {self.}Prefix, "ext"); container_.Set({self.}XmlChildExt); end - return {self.}XmlChildExt; + return {self.}XmlChildExt and not {self.}XmlChildExt.Removed ? {self.}XmlChildExt : fallback_.Ext; end; -function XY.Create();overload; +function Xfrm.WriteXmlChildExt(_p1: any; _p2: any); begin - {self.}Create(nil, "", ""); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildExt) then + {self.}RemoveChild({self.}XmlChildExt); + end + else if v is class(CXY) then + begin + v.Parent := self; + {self.}XmlChildExt := v; + container_.Set({self.}XmlChildExt); + end + else begin + raise "Invalid assignment: Ext expects CXY or nil"; + end end; -function XY.Create(_node: XmlNode);overload; +function XY.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "", ""); end; -function XY.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function XY.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function XY.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function XY.Init();override; @@ -11184,7 +16880,7 @@ function XY.Copy(_obj: XY);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.X) then {self.}X := _obj.X; if not ifnil(_obj.Y) then @@ -11192,6 +16888,16 @@ begin tslassigning := tslassigning_backup; end; +function XY.Clone(): XY;override; +begin + obj := new XY(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}X) then + obj.X := {self.}X; + if not ifnil({self.}Y) then + obj.Y := {self.}Y; + return obj; +end; + function XY.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrX) then @@ -11202,48 +16908,48 @@ end; function XY.ReadXmlAttrX(); begin - return {self.}XmlAttrX.Value; + return ifnil({self.}XmlAttrX.Value) ? fallback_.XmlAttrX.Value : {self.}XmlAttrX.Value; end; -function XY.WriteXmlAttrX(_value); +function XY.WriteXmlAttrX(_value: any); begin if ifnil({self.}XmlAttrX) then begin {self.}XmlAttrX := new OpenXmlAttribute("", "x", nil); - attributes_[length(attributes_)] := {self.}XmlAttrX; + attributes_["x"] := {self.}XmlAttrX; end {self.}XmlAttrX.Value := _value; end; function XY.ReadXmlAttrY(); begin - return {self.}XmlAttrY.Value; + return ifnil({self.}XmlAttrY.Value) ? fallback_.XmlAttrY.Value : {self.}XmlAttrY.Value; end; -function XY.WriteXmlAttrY(_value); +function XY.WriteXmlAttrY(_value: any); begin if ifnil({self.}XmlAttrY) then begin {self.}XmlAttrY := new OpenXmlAttribute("", "y", nil); - attributes_[length(attributes_)] := {self.}XmlAttrY; + attributes_["y"] := {self.}XmlAttrY; end {self.}XmlAttrY.Value := _value; end; -function CXY.Create();overload; +function CXY.create();overload; begin - {self.}Create(nil, "", ""); + {self.}create(nil, "", ""); end; -function CXY.Create(_node: XmlNode);overload; +function CXY.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function CXY.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CXY.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CXY.Init();override; @@ -11263,7 +16969,7 @@ function CXY.Copy(_obj: CXY);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Cx) then {self.}Cx := _obj.Cx; if not ifnil(_obj.Cy) then @@ -11271,6 +16977,16 @@ begin tslassigning := tslassigning_backup; end; +function CXY.Clone(): CXY;override; +begin + obj := new CXY(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Cx) then + obj.Cx := {self.}Cx; + if not ifnil({self.}Cy) then + obj.Cy := {self.}Cy; + return obj; +end; + function CXY.ConvertToPoint();override; begin if not ifnil({self.}XmlAttrCx) then @@ -11281,48 +16997,48 @@ end; function CXY.ReadXmlAttrCx(); begin - return {self.}XmlAttrCx.Value; + return ifnil({self.}XmlAttrCx.Value) ? fallback_.XmlAttrCx.Value : {self.}XmlAttrCx.Value; end; -function CXY.WriteXmlAttrCx(_value); +function CXY.WriteXmlAttrCx(_value: any); begin if ifnil({self.}XmlAttrCx) then begin {self.}XmlAttrCx := new OpenXmlAttribute("", "cx", nil); - attributes_[length(attributes_)] := {self.}XmlAttrCx; + attributes_["cx"] := {self.}XmlAttrCx; end {self.}XmlAttrCx.Value := _value; end; function CXY.ReadXmlAttrCy(); begin - return {self.}XmlAttrCy.Value; + return ifnil({self.}XmlAttrCy.Value) ? fallback_.XmlAttrCy.Value : {self.}XmlAttrCy.Value; end; -function CXY.WriteXmlAttrCy(_value); +function CXY.WriteXmlAttrCy(_value: any); begin if ifnil({self.}XmlAttrCy) then begin {self.}XmlAttrCy := new OpenXmlAttribute("", "cy", nil); - attributes_[length(attributes_)] := {self.}XmlAttrCy; + attributes_["cy"] := {self.}XmlAttrCy; end {self.}XmlAttrCy.Value := _value; end; -function PrstGeom.Create();overload; +function PrstGeom.create();overload; begin - {self.}Create(nil, "a", "prstGeom"); + {self.}create(nil, "a", "prstGeom"); end; -function PrstGeom.Create(_node: XmlNode);overload; +function PrstGeom.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function PrstGeom.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PrstGeom.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PrstGeom.Init();override; @@ -11342,7 +17058,7 @@ function PrstGeom.Copy(_obj: PrstGeom);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Prst) then {self.}Prst := _obj.Prst; if not ifnil(_obj.XmlChildAvLst) then @@ -11350,6 +17066,23 @@ begin tslassigning := tslassigning_backup; end; +function PrstGeom.Clone(): PrstGeom;override; +begin + obj := new PrstGeom(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Prst) then + obj.Prst := {self.}Prst; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "avLst": obj.AvLst := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function PrstGeom.ConvertToPoint();override; begin if not ifnil({self.}XmlChildAvLst) then @@ -11358,15 +17091,15 @@ end; function PrstGeom.ReadXmlAttrPrst(); begin - return {self.}XmlAttrPrst.Value; + return ifnil({self.}XmlAttrPrst.Value) ? fallback_.XmlAttrPrst.Value : {self.}XmlAttrPrst.Value; end; -function PrstGeom.WriteXmlAttrPrst(_value); +function PrstGeom.WriteXmlAttrPrst(_value: any); begin if ifnil({self.}XmlAttrPrst) then begin {self.}XmlAttrPrst := new OpenXmlAttribute("", "prst", nil); - attributes_[length(attributes_)] := {self.}XmlAttrPrst; + attributes_["prst"] := {self.}XmlAttrPrst; end {self.}XmlAttrPrst.Value := _value; end; @@ -11378,23 +17111,42 @@ begin {self.}XmlChildAvLst := new PureVal(self, {self.}Prefix, "avLst"); container_.Set({self.}XmlChildAvLst); end - return {self.}XmlChildAvLst; + return {self.}XmlChildAvLst and not {self.}XmlChildAvLst.Removed ? {self.}XmlChildAvLst : fallback_.AvLst; end; -function Anchor.Create();overload; +function PrstGeom.WriteXmlChildAvLst(_p1: any; _p2: any); begin - {self.}Create(nil, "wp", "anchor"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildAvLst) then + {self.}RemoveChild({self.}XmlChildAvLst); + end + else if v is class(PureVal) then + begin + v.Parent := self; + {self.}XmlChildAvLst := v; + container_.Set({self.}XmlChildAvLst); + end + else begin + raise "Invalid assignment: AvLst expects PureVal or nil"; + end end; -function Anchor.Create(_node: XmlNode);overload; +function Anchor.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wp", "anchor"); end; -function Anchor.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Anchor.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Anchor.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Anchor.Init();override; @@ -11436,7 +17188,7 @@ function Anchor.Copy(_obj: Anchor);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.DistT) then {self.}DistT := _obj.DistT; if not ifnil(_obj.DistB) then @@ -11488,6 +17240,57 @@ begin tslassigning := tslassigning_backup; end; +function Anchor.Clone(): Anchor;override; +begin + obj := new Anchor(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}DistT) then + obj.DistT := {self.}DistT; + if not ifnil({self.}DistB) then + obj.DistB := {self.}DistB; + if not ifnil({self.}DistL) then + obj.DistL := {self.}DistL; + if not ifnil({self.}DistR) then + obj.DistR := {self.}DistR; + if not ifnil({self.}SimplePos) then + obj.SimplePos := {self.}SimplePos; + if not ifnil({self.}RelativeHeight) then + obj.RelativeHeight := {self.}RelativeHeight; + if not ifnil({self.}BehindDoc) then + obj.BehindDoc := {self.}BehindDoc; + if not ifnil({self.}Locked) then + obj.Locked := {self.}Locked; + if not ifnil({self.}Hidden) then + obj.Hidden := {self.}Hidden; + if not ifnil({self.}LayoutInCell) then + obj.LayoutInCell := {self.}LayoutInCell; + if not ifnil({self.}AllowOverlap) then + obj.AllowOverlap := {self.}AllowOverlap; + if not ifnil({self.}AnchorId) then + obj.AnchorId := {self.}AnchorId; + if not ifnil({self.}EditId) then + obj.EditId := {self.}EditId; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "simplePos": obj.SimplePos := element.Clone(); + pre + "positionH": obj.PositionH := element.Clone(); + pre + "positionV": obj.PositionV := element.Clone(); + pre + "extent": obj.Extent := element.Clone(); + pre + "effectExtent": obj.EffectExtent := element.Clone(); + pre + "wrapNone": obj.WrapNone := element.Clone(); + pre + "docPr": obj.DocPr := element.Clone(); + pre + "cNvGraphicFramePr": obj.CNvGraphicFramePr := element.Clone(); + "a:graphic": obj.Graphic := element.Clone(); + "wp14:sizeRelH": obj.SizeRelH := element.Clone(); + "wp14:sizeRelV": obj.SizeRelV := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Anchor.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSimplePos) then @@ -11514,195 +17317,195 @@ end; function Anchor.ReadXmlAttrDistT(); begin - return {self.}XmlAttrDistT.Value; + return ifnil({self.}XmlAttrDistT.Value) ? fallback_.XmlAttrDistT.Value : {self.}XmlAttrDistT.Value; end; -function Anchor.WriteXmlAttrDistT(_value); +function Anchor.WriteXmlAttrDistT(_value: any); begin if ifnil({self.}XmlAttrDistT) then begin {self.}XmlAttrDistT := new OpenXmlAttribute("", "distT", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDistT; + attributes_["distT"] := {self.}XmlAttrDistT; end {self.}XmlAttrDistT.Value := _value; end; function Anchor.ReadXmlAttrDistB(); begin - return {self.}XmlAttrDistB.Value; + return ifnil({self.}XmlAttrDistB.Value) ? fallback_.XmlAttrDistB.Value : {self.}XmlAttrDistB.Value; end; -function Anchor.WriteXmlAttrDistB(_value); +function Anchor.WriteXmlAttrDistB(_value: any); begin if ifnil({self.}XmlAttrDistB) then begin {self.}XmlAttrDistB := new OpenXmlAttribute("", "distB", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDistB; + attributes_["distB"] := {self.}XmlAttrDistB; end {self.}XmlAttrDistB.Value := _value; end; function Anchor.ReadXmlAttrDistL(); begin - return {self.}XmlAttrDistL.Value; + return ifnil({self.}XmlAttrDistL.Value) ? fallback_.XmlAttrDistL.Value : {self.}XmlAttrDistL.Value; end; -function Anchor.WriteXmlAttrDistL(_value); +function Anchor.WriteXmlAttrDistL(_value: any); begin if ifnil({self.}XmlAttrDistL) then begin {self.}XmlAttrDistL := new OpenXmlAttribute("", "distL", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDistL; + attributes_["distL"] := {self.}XmlAttrDistL; end {self.}XmlAttrDistL.Value := _value; end; function Anchor.ReadXmlAttrDistR(); begin - return {self.}XmlAttrDistR.Value; + return ifnil({self.}XmlAttrDistR.Value) ? fallback_.XmlAttrDistR.Value : {self.}XmlAttrDistR.Value; end; -function Anchor.WriteXmlAttrDistR(_value); +function Anchor.WriteXmlAttrDistR(_value: any); begin if ifnil({self.}XmlAttrDistR) then begin {self.}XmlAttrDistR := new OpenXmlAttribute("", "distR", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDistR; + attributes_["distR"] := {self.}XmlAttrDistR; end {self.}XmlAttrDistR.Value := _value; end; function Anchor.ReadXmlAttrSimplePos(); begin - return {self.}XmlAttrSimplePos.Value; + return ifnil({self.}XmlAttrSimplePos.Value) ? fallback_.XmlAttrSimplePos.Value : {self.}XmlAttrSimplePos.Value; end; -function Anchor.WriteXmlAttrSimplePos(_value); +function Anchor.WriteXmlAttrSimplePos(_value: any); begin if ifnil({self.}XmlAttrSimplePos) then begin {self.}XmlAttrSimplePos := new OpenXmlAttribute("", "simplePos", nil); - attributes_[length(attributes_)] := {self.}XmlAttrSimplePos; + attributes_["simplePos"] := {self.}XmlAttrSimplePos; end {self.}XmlAttrSimplePos.Value := _value; end; function Anchor.ReadXmlAttrRelativeHeight(); begin - return {self.}XmlAttrRelativeHeight.Value; + return ifnil({self.}XmlAttrRelativeHeight.Value) ? fallback_.XmlAttrRelativeHeight.Value : {self.}XmlAttrRelativeHeight.Value; end; -function Anchor.WriteXmlAttrRelativeHeight(_value); +function Anchor.WriteXmlAttrRelativeHeight(_value: any); begin if ifnil({self.}XmlAttrRelativeHeight) then begin {self.}XmlAttrRelativeHeight := new OpenXmlAttribute("", "relativeHeight", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRelativeHeight; + attributes_["relativeHeight"] := {self.}XmlAttrRelativeHeight; end {self.}XmlAttrRelativeHeight.Value := _value; end; function Anchor.ReadXmlAttrBehindDoc(); begin - return {self.}XmlAttrBehindDoc.Value; + return ifnil({self.}XmlAttrBehindDoc.Value) ? fallback_.XmlAttrBehindDoc.Value : {self.}XmlAttrBehindDoc.Value; end; -function Anchor.WriteXmlAttrBehindDoc(_value); +function Anchor.WriteXmlAttrBehindDoc(_value: any); begin if ifnil({self.}XmlAttrBehindDoc) then begin {self.}XmlAttrBehindDoc := new OpenXmlAttribute("", "behindDoc", nil); - attributes_[length(attributes_)] := {self.}XmlAttrBehindDoc; + attributes_["behindDoc"] := {self.}XmlAttrBehindDoc; end {self.}XmlAttrBehindDoc.Value := _value; end; function Anchor.ReadXmlAttrLocked(); begin - return {self.}XmlAttrLocked.Value; + return ifnil({self.}XmlAttrLocked.Value) ? fallback_.XmlAttrLocked.Value : {self.}XmlAttrLocked.Value; end; -function Anchor.WriteXmlAttrLocked(_value); +function Anchor.WriteXmlAttrLocked(_value: any); begin if ifnil({self.}XmlAttrLocked) then begin {self.}XmlAttrLocked := new OpenXmlAttribute("", "locked", nil); - attributes_[length(attributes_)] := {self.}XmlAttrLocked; + attributes_["locked"] := {self.}XmlAttrLocked; end {self.}XmlAttrLocked.Value := _value; end; function Anchor.ReadXmlAttrHidden(); begin - return {self.}XmlAttrHidden.Value; + return ifnil({self.}XmlAttrHidden.Value) ? fallback_.XmlAttrHidden.Value : {self.}XmlAttrHidden.Value; end; -function Anchor.WriteXmlAttrHidden(_value); +function Anchor.WriteXmlAttrHidden(_value: any); begin if ifnil({self.}XmlAttrHidden) then begin {self.}XmlAttrHidden := new OpenXmlAttribute("", "hidden", nil); - attributes_[length(attributes_)] := {self.}XmlAttrHidden; + attributes_["hidden"] := {self.}XmlAttrHidden; end {self.}XmlAttrHidden.Value := _value; end; function Anchor.ReadXmlAttrLayoutInCell(); begin - return {self.}XmlAttrLayoutInCell.Value; + return ifnil({self.}XmlAttrLayoutInCell.Value) ? fallback_.XmlAttrLayoutInCell.Value : {self.}XmlAttrLayoutInCell.Value; end; -function Anchor.WriteXmlAttrLayoutInCell(_value); +function Anchor.WriteXmlAttrLayoutInCell(_value: any); begin if ifnil({self.}XmlAttrLayoutInCell) then begin {self.}XmlAttrLayoutInCell := new OpenXmlAttribute("", "layoutInCell", nil); - attributes_[length(attributes_)] := {self.}XmlAttrLayoutInCell; + attributes_["layoutInCell"] := {self.}XmlAttrLayoutInCell; end {self.}XmlAttrLayoutInCell.Value := _value; end; function Anchor.ReadXmlAttrAllowOverlap(); begin - return {self.}XmlAttrAllowOverlap.Value; + return ifnil({self.}XmlAttrAllowOverlap.Value) ? fallback_.XmlAttrAllowOverlap.Value : {self.}XmlAttrAllowOverlap.Value; end; -function Anchor.WriteXmlAttrAllowOverlap(_value); +function Anchor.WriteXmlAttrAllowOverlap(_value: any); begin if ifnil({self.}XmlAttrAllowOverlap) then begin {self.}XmlAttrAllowOverlap := new OpenXmlAttribute("", "allowOverlap", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAllowOverlap; + attributes_["allowOverlap"] := {self.}XmlAttrAllowOverlap; end {self.}XmlAttrAllowOverlap.Value := _value; end; function Anchor.ReadXmlAttrAnchorId(); begin - return {self.}XmlAttrAnchorId.Value; + return ifnil({self.}XmlAttrAnchorId.Value) ? fallback_.XmlAttrAnchorId.Value : {self.}XmlAttrAnchorId.Value; end; -function Anchor.WriteXmlAttrAnchorId(_value); +function Anchor.WriteXmlAttrAnchorId(_value: any); begin if ifnil({self.}XmlAttrAnchorId) then begin {self.}XmlAttrAnchorId := new OpenXmlAttribute("wp14", "anchorId", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAnchorId; + attributes_["wp14:anchorId"] := {self.}XmlAttrAnchorId; end {self.}XmlAttrAnchorId.Value := _value; end; function Anchor.ReadXmlAttrEditId(); begin - return {self.}XmlAttrEditId.Value; + return ifnil({self.}XmlAttrEditId.Value) ? fallback_.XmlAttrEditId.Value : {self.}XmlAttrEditId.Value; end; -function Anchor.WriteXmlAttrEditId(_value); +function Anchor.WriteXmlAttrEditId(_value: any); begin if ifnil({self.}XmlAttrEditId) then begin {self.}XmlAttrEditId := new OpenXmlAttribute("wp14", "editId", nil); - attributes_[length(attributes_)] := {self.}XmlAttrEditId; + attributes_["wp14:editId"] := {self.}XmlAttrEditId; end {self.}XmlAttrEditId.Value := _value; end; @@ -11714,7 +17517,25 @@ begin {self.}XmlChildWrapNone := new OpenXmlSimpleType(self, {self.}Prefix, "wrapNone"); container_.Set({self.}XmlChildWrapNone); end - return {self.}XmlChildWrapNone; + return {self.}XmlChildWrapNone and not {self.}XmlChildWrapNone.Removed ? {self.}XmlChildWrapNone : fallback_.WrapNone; +end; + +function Anchor.WriteXmlChildWrapNone(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildWrapNone) then + {self.}RemoveChild({self.}XmlChildWrapNone); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildWrapNone := _value; + container_.Set({self.}XmlChildWrapNone); + end + else begin + raise "Invalid assignment: WrapNone expects nil or OpenXmlSimpleType"; + end end; function Anchor.ReadXmlChildSimplePos(): XY; @@ -11724,7 +17545,26 @@ begin {self.}XmlChildSimplePos := new XY(self, {self.}Prefix, "simplePos"); container_.Set({self.}XmlChildSimplePos); end - return {self.}XmlChildSimplePos; + return {self.}XmlChildSimplePos and not {self.}XmlChildSimplePos.Removed ? {self.}XmlChildSimplePos : fallback_.SimplePos; +end; + +function Anchor.WriteXmlChildSimplePos(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSimplePos) then + {self.}RemoveChild({self.}XmlChildSimplePos); + end + else if v is class(XY) then + begin + v.Parent := self; + {self.}XmlChildSimplePos := v; + container_.Set({self.}XmlChildSimplePos); + end + else begin + raise "Invalid assignment: SimplePos expects XY or nil"; + end end; function Anchor.ReadXmlChildPositionH(): PositionH; @@ -11734,7 +17574,26 @@ begin {self.}XmlChildPositionH := new PositionH(self, {self.}Prefix, "positionH"); container_.Set({self.}XmlChildPositionH); end - return {self.}XmlChildPositionH; + return {self.}XmlChildPositionH and not {self.}XmlChildPositionH.Removed ? {self.}XmlChildPositionH : fallback_.PositionH; +end; + +function Anchor.WriteXmlChildPositionH(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPositionH) then + {self.}RemoveChild({self.}XmlChildPositionH); + end + else if v is class(PositionH) then + begin + v.Parent := self; + {self.}XmlChildPositionH := v; + container_.Set({self.}XmlChildPositionH); + end + else begin + raise "Invalid assignment: PositionH expects PositionH or nil"; + end end; function Anchor.ReadXmlChildPositionV(): PositionV; @@ -11744,7 +17603,26 @@ begin {self.}XmlChildPositionV := new PositionV(self, {self.}Prefix, "positionV"); container_.Set({self.}XmlChildPositionV); end - return {self.}XmlChildPositionV; + return {self.}XmlChildPositionV and not {self.}XmlChildPositionV.Removed ? {self.}XmlChildPositionV : fallback_.PositionV; +end; + +function Anchor.WriteXmlChildPositionV(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPositionV) then + {self.}RemoveChild({self.}XmlChildPositionV); + end + else if v is class(PositionV) then + begin + v.Parent := self; + {self.}XmlChildPositionV := v; + container_.Set({self.}XmlChildPositionV); + end + else begin + raise "Invalid assignment: PositionV expects PositionV or nil"; + end end; function Anchor.ReadXmlChildExtent(): CXY; @@ -11754,7 +17632,26 @@ begin {self.}XmlChildExtent := new CXY(self, {self.}Prefix, "extent"); container_.Set({self.}XmlChildExtent); end - return {self.}XmlChildExtent; + return {self.}XmlChildExtent and not {self.}XmlChildExtent.Removed ? {self.}XmlChildExtent : fallback_.Extent; +end; + +function Anchor.WriteXmlChildExtent(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildExtent) then + {self.}RemoveChild({self.}XmlChildExtent); + end + else if v is class(CXY) then + begin + v.Parent := self; + {self.}XmlChildExtent := v; + container_.Set({self.}XmlChildExtent); + end + else begin + raise "Invalid assignment: Extent expects CXY or nil"; + end end; function Anchor.ReadXmlChildEffectExtent(): EffectExtent; @@ -11764,7 +17661,26 @@ begin {self.}XmlChildEffectExtent := new EffectExtent(self, {self.}Prefix, "effectExtent"); container_.Set({self.}XmlChildEffectExtent); end - return {self.}XmlChildEffectExtent; + return {self.}XmlChildEffectExtent and not {self.}XmlChildEffectExtent.Removed ? {self.}XmlChildEffectExtent : fallback_.EffectExtent; +end; + +function Anchor.WriteXmlChildEffectExtent(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEffectExtent) then + {self.}RemoveChild({self.}XmlChildEffectExtent); + end + else if v is class(EffectExtent) then + begin + v.Parent := self; + {self.}XmlChildEffectExtent := v; + container_.Set({self.}XmlChildEffectExtent); + end + else begin + raise "Invalid assignment: EffectExtent expects EffectExtent or nil"; + end end; function Anchor.ReadXmlChildDocPr(): DocPr; @@ -11774,7 +17690,26 @@ begin {self.}XmlChildDocPr := new DocPr(self, {self.}Prefix, "docPr"); container_.Set({self.}XmlChildDocPr); end - return {self.}XmlChildDocPr; + return {self.}XmlChildDocPr and not {self.}XmlChildDocPr.Removed ? {self.}XmlChildDocPr : fallback_.DocPr; +end; + +function Anchor.WriteXmlChildDocPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDocPr) then + {self.}RemoveChild({self.}XmlChildDocPr); + end + else if v is class(DocPr) then + begin + v.Parent := self; + {self.}XmlChildDocPr := v; + container_.Set({self.}XmlChildDocPr); + end + else begin + raise "Invalid assignment: DocPr expects DocPr or nil"; + end end; function Anchor.ReadXmlChildCNvGraphicFramePr(): CNvGraphicFramePr; @@ -11784,7 +17719,26 @@ begin {self.}XmlChildCNvGraphicFramePr := new CNvGraphicFramePr(self, {self.}Prefix, "cNvGraphicFramePr"); container_.Set({self.}XmlChildCNvGraphicFramePr); end - return {self.}XmlChildCNvGraphicFramePr; + return {self.}XmlChildCNvGraphicFramePr and not {self.}XmlChildCNvGraphicFramePr.Removed ? {self.}XmlChildCNvGraphicFramePr : fallback_.CNvGraphicFramePr; +end; + +function Anchor.WriteXmlChildCNvGraphicFramePr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCNvGraphicFramePr) then + {self.}RemoveChild({self.}XmlChildCNvGraphicFramePr); + end + else if v is class(CNvGraphicFramePr) then + begin + v.Parent := self; + {self.}XmlChildCNvGraphicFramePr := v; + container_.Set({self.}XmlChildCNvGraphicFramePr); + end + else begin + raise "Invalid assignment: CNvGraphicFramePr expects CNvGraphicFramePr or nil"; + end end; function Anchor.ReadXmlChildGraphic(): Graphic; @@ -11794,7 +17748,26 @@ begin {self.}XmlChildGraphic := new Graphic(self, "a", "graphic"); container_.Set({self.}XmlChildGraphic); end - return {self.}XmlChildGraphic; + return {self.}XmlChildGraphic and not {self.}XmlChildGraphic.Removed ? {self.}XmlChildGraphic : fallback_.Graphic; +end; + +function Anchor.WriteXmlChildGraphic(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildGraphic) then + {self.}RemoveChild({self.}XmlChildGraphic); + end + else if v is class(Graphic) then + begin + v.Parent := self; + {self.}XmlChildGraphic := v; + container_.Set({self.}XmlChildGraphic); + end + else begin + raise "Invalid assignment: Graphic expects Graphic or nil"; + end end; function Anchor.ReadXmlChildSizeRelH(): SizeRelH; @@ -11804,7 +17777,26 @@ begin {self.}XmlChildSizeRelH := new SizeRelH(self, "wp14", "sizeRelH"); container_.Set({self.}XmlChildSizeRelH); end - return {self.}XmlChildSizeRelH; + return {self.}XmlChildSizeRelH and not {self.}XmlChildSizeRelH.Removed ? {self.}XmlChildSizeRelH : fallback_.SizeRelH; +end; + +function Anchor.WriteXmlChildSizeRelH(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSizeRelH) then + {self.}RemoveChild({self.}XmlChildSizeRelH); + end + else if v is class(SizeRelH) then + begin + v.Parent := self; + {self.}XmlChildSizeRelH := v; + container_.Set({self.}XmlChildSizeRelH); + end + else begin + raise "Invalid assignment: SizeRelH expects SizeRelH or nil"; + end end; function Anchor.ReadXmlChildSizeRelV(): SizeRelV; @@ -11814,23 +17806,42 @@ begin {self.}XmlChildSizeRelV := new SizeRelV(self, "wp14", "sizeRelV"); container_.Set({self.}XmlChildSizeRelV); end - return {self.}XmlChildSizeRelV; + return {self.}XmlChildSizeRelV and not {self.}XmlChildSizeRelV.Removed ? {self.}XmlChildSizeRelV : fallback_.SizeRelV; end; -function PositionV.Create();overload; +function Anchor.WriteXmlChildSizeRelV(_p1: any; _p2: any); begin - {self.}Create(nil, "wp", "positionV"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSizeRelV) then + {self.}RemoveChild({self.}XmlChildSizeRelV); + end + else if v is class(SizeRelV) then + begin + v.Parent := self; + {self.}XmlChildSizeRelV := v; + container_.Set({self.}XmlChildSizeRelV); + end + else begin + raise "Invalid assignment: SizeRelV expects SizeRelV or nil"; + end end; -function PositionV.Create(_node: XmlNode);overload; +function PositionV.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wp", "positionV"); end; -function PositionV.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PositionV.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function PositionV.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PositionV.Init();override; @@ -11850,7 +17861,7 @@ function PositionV.Copy(_obj: PositionV);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.RelativeFrom) then {self.}RelativeFrom := _obj.RelativeFrom; if not ifnil(_obj.XmlChildPosOffset) then @@ -11858,6 +17869,23 @@ begin tslassigning := tslassigning_backup; end; +function PositionV.Clone(): PositionV;override; +begin + obj := new PositionV(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}RelativeFrom) then + obj.RelativeFrom := {self.}RelativeFrom; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "posOffset": obj.PosOffset := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function PositionV.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPosOffset) then @@ -11866,15 +17894,15 @@ end; function PositionV.ReadXmlAttrRelativeFrom(); begin - return {self.}XmlAttrRelativeFrom.Value; + return ifnil({self.}XmlAttrRelativeFrom.Value) ? fallback_.XmlAttrRelativeFrom.Value : {self.}XmlAttrRelativeFrom.Value; end; -function PositionV.WriteXmlAttrRelativeFrom(_value); +function PositionV.WriteXmlAttrRelativeFrom(_value: any); begin if ifnil({self.}XmlAttrRelativeFrom) then begin {self.}XmlAttrRelativeFrom := new OpenXmlAttribute("", "relativeFrom", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRelativeFrom; + attributes_["relativeFrom"] := {self.}XmlAttrRelativeFrom; end {self.}XmlAttrRelativeFrom.Value := _value; end; @@ -11886,23 +17914,41 @@ begin {self.}XmlChildPosOffset := new OpenXmlTextElement(self, {self.}Prefix, "posOffset"); container_.Set({self.}XmlChildPosOffset); end - return {self.}XmlChildPosOffset; + return {self.}XmlChildPosOffset and not {self.}XmlChildPosOffset.Removed ? {self.}XmlChildPosOffset : fallback_.PosOffset; end; -function PositionH.Create();overload; +function PositionV.WriteXmlChildPosOffset(_value: nil_or_OpenXmlTextElement); begin - {self.}Create(nil, "wp", "positionH"); + if ifnil(_value) then + begin + if ifObj({self.}XmlChildPosOffset) then + {self.}RemoveChild({self.}XmlChildPosOffset); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildPosOffset := _value; + container_.Set({self.}XmlChildPosOffset); + end + else begin + raise "Invalid assignment: PosOffset expects nil or OpenXmlTextElement"; + end end; -function PositionH.Create(_node: XmlNode);overload; +function PositionH.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wp", "positionH"); end; -function PositionH.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PositionH.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function PositionH.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PositionH.Init();override; @@ -11922,7 +17968,7 @@ function PositionH.Copy(_obj: PositionH);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.RelativeFrom) then {self.}RelativeFrom := _obj.RelativeFrom; if not ifnil(_obj.XmlChildPosOffset) then @@ -11930,6 +17976,23 @@ begin tslassigning := tslassigning_backup; end; +function PositionH.Clone(): PositionH;override; +begin + obj := new PositionH(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}RelativeFrom) then + obj.RelativeFrom := {self.}RelativeFrom; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "posOffset": obj.PosOffset := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function PositionH.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPosOffset) then @@ -11938,15 +18001,15 @@ end; function PositionH.ReadXmlAttrRelativeFrom(); begin - return {self.}XmlAttrRelativeFrom.Value; + return ifnil({self.}XmlAttrRelativeFrom.Value) ? fallback_.XmlAttrRelativeFrom.Value : {self.}XmlAttrRelativeFrom.Value; end; -function PositionH.WriteXmlAttrRelativeFrom(_value); +function PositionH.WriteXmlAttrRelativeFrom(_value: any); begin if ifnil({self.}XmlAttrRelativeFrom) then begin {self.}XmlAttrRelativeFrom := new OpenXmlAttribute("", "relativeFrom", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRelativeFrom; + attributes_["relativeFrom"] := {self.}XmlAttrRelativeFrom; end {self.}XmlAttrRelativeFrom.Value := _value; end; @@ -11958,23 +18021,41 @@ begin {self.}XmlChildPosOffset := new OpenXmlTextElement(self, {self.}Prefix, "posOffset"); container_.Set({self.}XmlChildPosOffset); end - return {self.}XmlChildPosOffset; + return {self.}XmlChildPosOffset and not {self.}XmlChildPosOffset.Removed ? {self.}XmlChildPosOffset : fallback_.PosOffset; end; -function SizeRelH.Create();overload; +function PositionH.WriteXmlChildPosOffset(_value: nil_or_OpenXmlTextElement); begin - {self.}Create(nil, "wp14", "sizeRelH"); + if ifnil(_value) then + begin + if ifObj({self.}XmlChildPosOffset) then + {self.}RemoveChild({self.}XmlChildPosOffset); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildPosOffset := _value; + container_.Set({self.}XmlChildPosOffset); + end + else begin + raise "Invalid assignment: PosOffset expects nil or OpenXmlTextElement"; + end end; -function SizeRelH.Create(_node: XmlNode);overload; +function SizeRelH.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wp14", "sizeRelH"); end; -function SizeRelH.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SizeRelH.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SizeRelH.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SizeRelH.Init();override; @@ -11994,7 +18075,7 @@ function SizeRelH.Copy(_obj: SizeRelH);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.RelativeFrom) then {self.}RelativeFrom := _obj.RelativeFrom; if not ifnil(_obj.XmlChildPctWidth) then @@ -12002,6 +18083,23 @@ begin tslassigning := tslassigning_backup; end; +function SizeRelH.Clone(): SizeRelH;override; +begin + obj := new SizeRelH(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}RelativeFrom) then + obj.RelativeFrom := {self.}RelativeFrom; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "pctWidth": obj.PctWidth := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SizeRelH.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPctWidth) then @@ -12010,15 +18108,15 @@ end; function SizeRelH.ReadXmlAttrRelativeFrom(); begin - return {self.}XmlAttrRelativeFrom.Value; + return ifnil({self.}XmlAttrRelativeFrom.Value) ? fallback_.XmlAttrRelativeFrom.Value : {self.}XmlAttrRelativeFrom.Value; end; -function SizeRelH.WriteXmlAttrRelativeFrom(_value); +function SizeRelH.WriteXmlAttrRelativeFrom(_value: any); begin if ifnil({self.}XmlAttrRelativeFrom) then begin {self.}XmlAttrRelativeFrom := new OpenXmlAttribute("", "relativeFrom", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRelativeFrom; + attributes_["relativeFrom"] := {self.}XmlAttrRelativeFrom; end {self.}XmlAttrRelativeFrom.Value := _value; end; @@ -12030,23 +18128,41 @@ begin {self.}XmlChildPctWidth := new OpenXmlTextElement(self, {self.}Prefix, "pctWidth"); container_.Set({self.}XmlChildPctWidth); end - return {self.}XmlChildPctWidth; + return {self.}XmlChildPctWidth and not {self.}XmlChildPctWidth.Removed ? {self.}XmlChildPctWidth : fallback_.PctWidth; end; -function SizeRelV.Create();overload; +function SizeRelH.WriteXmlChildPctWidth(_value: nil_or_OpenXmlTextElement); begin - {self.}Create(nil, "wp14", "sizeRelV"); + if ifnil(_value) then + begin + if ifObj({self.}XmlChildPctWidth) then + {self.}RemoveChild({self.}XmlChildPctWidth); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildPctWidth := _value; + container_.Set({self.}XmlChildPctWidth); + end + else begin + raise "Invalid assignment: PctWidth expects nil or OpenXmlTextElement"; + end end; -function SizeRelV.Create(_node: XmlNode);overload; +function SizeRelV.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "wp14", "sizeRelV"); end; -function SizeRelV.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SizeRelV.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SizeRelV.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SizeRelV.Init();override; @@ -12066,7 +18182,7 @@ function SizeRelV.Copy(_obj: SizeRelV);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.RelativeFrom) then {self.}RelativeFrom := _obj.RelativeFrom; if not ifnil(_obj.XmlChildPctHeight) then @@ -12074,6 +18190,23 @@ begin tslassigning := tslassigning_backup; end; +function SizeRelV.Clone(): SizeRelV;override; +begin + obj := new SizeRelV(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}RelativeFrom) then + obj.RelativeFrom := {self.}RelativeFrom; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "pctHeight": obj.PctHeight := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SizeRelV.ConvertToPoint();override; begin if not ifnil({self.}XmlChildPctHeight) then @@ -12082,15 +18215,15 @@ end; function SizeRelV.ReadXmlAttrRelativeFrom(); begin - return {self.}XmlAttrRelativeFrom.Value; + return ifnil({self.}XmlAttrRelativeFrom.Value) ? fallback_.XmlAttrRelativeFrom.Value : {self.}XmlAttrRelativeFrom.Value; end; -function SizeRelV.WriteXmlAttrRelativeFrom(_value); +function SizeRelV.WriteXmlAttrRelativeFrom(_value: any); begin if ifnil({self.}XmlAttrRelativeFrom) then begin {self.}XmlAttrRelativeFrom := new OpenXmlAttribute("", "relativeFrom", nil); - attributes_[length(attributes_)] := {self.}XmlAttrRelativeFrom; + attributes_["relativeFrom"] := {self.}XmlAttrRelativeFrom; end {self.}XmlAttrRelativeFrom.Value := _value; end; @@ -12102,7 +18235,25 @@ begin {self.}XmlChildPctHeight := new OpenXmlTextElement(self, {self.}Prefix, "pctHeight"); container_.Set({self.}XmlChildPctHeight); end - return {self.}XmlChildPctHeight; + return {self.}XmlChildPctHeight and not {self.}XmlChildPctHeight.Removed ? {self.}XmlChildPctHeight : fallback_.PctHeight; +end; + +function SizeRelV.WriteXmlChildPctHeight(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildPctHeight) then + {self.}RemoveChild({self.}XmlChildPctHeight); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildPctHeight := _value; + container_.Set({self.}XmlChildPctHeight); + end + else begin + raise "Invalid assignment: PctHeight expects nil or OpenXmlTextElement"; + end end; end. \ No newline at end of file diff --git a/autounit/PptxML.tsf b/autounit/PptxML.tsf index b4ee429..8d2c304 100644 --- a/autounit/PptxML.tsf +++ b/autounit/PptxML.tsf @@ -3,28 +3,30 @@ interface type SldLayoutId = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; - function Init();override; - function Copy(_obj: SldLayoutId);override; -public - // attributes property - property Id read ReadXmlAttrId write WriteXmlAttrId; - property Id read ReadXmlAttrId write WriteXmlAttrId; - property Id read ReadXmlAttrId write WriteXmlAttrId; - function ReadXmlAttrId(); - function WriteXmlAttrId(_value); - function ReadXmlAttrId(); - function WriteXmlAttrId(_value); - function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function Copy(_obj: SldLayoutId);override; + function ConvertToPoint();override; public - // Attributes - XmlAttrId: OpenXmlAttribute; - XmlAttrId: OpenXmlAttribute; - XmlAttrId: OpenXmlAttribute; + // attributes property + property Id read ReadXmlAttrId write WriteXmlAttrId; + property IdN read ReadXmlAttrIdN write WriteXmlAttrIdN; + property RId read ReadXmlAttrRId write WriteXmlAttrRId; + function ReadXmlAttrId(_ns: string); + function WriteXmlAttrId(_p1: any; _p2: any); + function ReadXmlAttrIdN(); + function WriteXmlAttrIdN(_value: any); + function ReadXmlAttrRId(); + function WriteXmlAttrRId(_value: any); + +public + // Attributes + XmlAttrId: OpenXmlAttribute; + XmlAttrIdN: OpenXmlAttribute; + XmlAttrRId: OpenXmlAttribute; end; @@ -32,91 +34,107 @@ implementation function SldLayoutId.Create();overload; begin - {self.}Create(nil, "p", "sldLayoutId"); + {self.}Create(nil, "p", "sldLayoutId"); end; function SldLayoutId.Create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited Create(_node); end; function SldLayoutId.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin - setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); + inherited Create(_parent, _prefix, _local_name); end; function SldLayoutId.Init();override; begin - pre := {self.}Prefix ? {self.}Prefix + ":" : ""; - attributes_ := array(); - attributes_pf_ := array( - pre + "id": makeweakref(thisFunction(WriteXmlAttrId)), - "id": makeweakref(thisFunction(WriteXmlAttrId)), - "r:id": makeweakref(thisFunction(WriteXmlAttrId)), - ); - sorted_child_ := array( - ); - container_ := new TSOfficeContainer(sorted_child_); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + attributes_ := array(); + attributes_pf_ := array( + pre + "id": makeweakref(thisFunction(WriteXmlAttrId)), + "id": makeweakref(thisFunction(WriteXmlAttrIdN)), + "r:id": makeweakref(thisFunction(WriteXmlAttrRId)), + ); + sorted_child_ := array( + ); + container_ := new TSOfficeContainer(sorted_child_); end; function SldLayoutId.Copy(_obj: SldLayoutId);override; begin - tslassigning_backup := tslassigning; - tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); - if not ifnil(_obj.Id) then - {self.}Id := _obj.Id; - if not ifnil(_obj.Id) then - {self.}Id := _obj.Id; - if not ifnil(_obj.Id) then - {self.}Id := _obj.Id; - tslassigning := tslassigning_backup; + tslassigning_backup := tslassigning; + tslassigning := 1; + class(OpenXmlCompositeElement).Copy(_obj); + if not ifnil(_obj.Id) then + {self.}Id := _obj.Id; + if not ifnil(_obj.IdN) then + {self.}IdN := _obj.IdN; + if not ifnil(_obj.RId) then + {self.}RId := _obj.RId; + tslassigning := tslassigning_backup; end; -function SldLayoutId.ReadXmlAttrId(); +function SldLayoutId.ConvertToPoint();override; begin - return {self.}XmlAttrId.Value; + end; -function SldLayoutId.WriteXmlAttrId(_value); +function SldLayoutId.ReadXmlAttrId(_ns: string); begin - if ifnil({self.}XmlAttrId) then - begin - {self.}XmlAttrId := new OpenXmlAttribute({self.}Prefix, "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; - end - {self.}XmlAttrId.Value := _value; + if _ns = "" then + return {self.}ReadXmlAttrIdN(); + if _ns = "r" then + return {self.}ReadXmlAttrRId(); + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function SldLayoutId.ReadXmlAttrId(); +function SldLayoutId.WriteXmlAttrId(_p1: any; _p2: any); begin - return {self.}XmlAttrId.Value; + if realparamcount = 2 then + begin + if _p1 = "" then + return {self.}WriteXmlAttrIdN(_p2); + if _p1 = "r" then + return {self.}WriteXmlAttrRId(_p2); + end + if ifnil({self.}XmlAttrId) then + begin + {self.}XmlAttrId := new OpenXmlAttribute({self.}Prefix, "id", nil); + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "id" : "id"] := {self.}XmlAttrId; + end + {self.}XmlAttrId.Value := realparamcount = 1 ? _p1 : _p2; end; -function SldLayoutId.WriteXmlAttrId(_value); +function SldLayoutId.ReadXmlAttrIdN(); begin - if ifnil({self.}XmlAttrId) then - begin - {self.}XmlAttrId := new OpenXmlAttribute("", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; - end - {self.}XmlAttrId.Value := _value; + return ifnil({self.}XmlAttrIdN.Value) ? fallback_.XmlAttrIdN.Value : {self.}XmlAttrIdN.Value; end; -function SldLayoutId.ReadXmlAttrId(); +function SldLayoutId.WriteXmlAttrIdN(_value: any); begin - return {self.}XmlAttrId.Value; + if ifnil({self.}XmlAttrIdN) then + begin + {self.}XmlAttrIdN := new OpenXmlAttribute("", "id", nil); + attributes_["id"] := {self.}XmlAttrIdN; + end + {self.}XmlAttrIdN.Value := _value; end; -function SldLayoutId.WriteXmlAttrId(_value); +function SldLayoutId.ReadXmlAttrRId(); begin - if ifnil({self.}XmlAttrId) then - begin - {self.}XmlAttrId := new OpenXmlAttribute("r", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; - end - {self.}XmlAttrId.Value := _value; + return ifnil({self.}XmlAttrRId.Value) ? fallback_.XmlAttrRId.Value : {self.}XmlAttrRId.Value; +end; + +function SldLayoutId.WriteXmlAttrRId(_value: any); +begin + if ifnil({self.}XmlAttrRId) then + begin + {self.}XmlAttrRId := new OpenXmlAttribute("r", "id", nil); + attributes_["r:id"] := {self.}XmlAttrRId; + end + {self.}XmlAttrRId.Value := _value; end; end. \ No newline at end of file diff --git a/autounit/SharedML.tsf b/autounit/SharedML.tsf index 6eedb44..e00dad7 100644 --- a/autounit/SharedML.tsf +++ b/autounit/SharedML.tsf @@ -4,40 +4,52 @@ uses TSSafeUnitConverter, DrawingML, DocxML; type MathPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: MathPr);override; + function Clone(): MathPr;override; function ConvertToPoint();override; public // simple_type property - property DispDef read ReadXmlChildDispDef; + property DispDef read ReadXmlChildDispDef write WriteXmlChildDispDef; function ReadXmlChildDispDef(): OpenXmlSimpleType; + function WriteXmlChildDispDef(_value: nil_or_OpenXmlSimpleType); // normal property - property MathFont read ReadXmlChildMathFont; - property BrkBin read ReadXmlChildBrkBin; - property BrkBinSub read ReadXmlChildBrkBinSub; - property SmallFrac read ReadXmlChildSmallFrac; - property LMargin read ReadXmlChildLMargin; - property RMargin read ReadXmlChildRMargin; - property DefJc read ReadXmlChildDefJc; - property WrapIndent read ReadXmlChildWrapIndent; - property IntLim read ReadXmlChildIntLim; - property NaryLim read ReadXmlChildNaryLim; + property MathFont read ReadXmlChildMathFont write WriteXmlChildMathFont; + property BrkBin read ReadXmlChildBrkBin write WriteXmlChildBrkBin; + property BrkBinSub read ReadXmlChildBrkBinSub write WriteXmlChildBrkBinSub; + property SmallFrac read ReadXmlChildSmallFrac write WriteXmlChildSmallFrac; + property LMargin read ReadXmlChildLMargin write WriteXmlChildLMargin; + property RMargin read ReadXmlChildRMargin write WriteXmlChildRMargin; + property DefJc read ReadXmlChildDefJc write WriteXmlChildDefJc; + property WrapIndent read ReadXmlChildWrapIndent write WriteXmlChildWrapIndent; + property IntLim read ReadXmlChildIntLim write WriteXmlChildIntLim; + property NaryLim read ReadXmlChildNaryLim write WriteXmlChildNaryLim; function ReadXmlChildMathFont(): PureMVal; + function WriteXmlChildMathFont(_p1: any; _p2: any); function ReadXmlChildBrkBin(): PureMVal; + function WriteXmlChildBrkBin(_p1: any; _p2: any); function ReadXmlChildBrkBinSub(): PureMVal; + function WriteXmlChildBrkBinSub(_p1: any; _p2: any); function ReadXmlChildSmallFrac(): PureMVal; + function WriteXmlChildSmallFrac(_p1: any; _p2: any); function ReadXmlChildLMargin(): PureMVal; + function WriteXmlChildLMargin(_p1: any; _p2: any); function ReadXmlChildRMargin(): PureMVal; + function WriteXmlChildRMargin(_p1: any; _p2: any); function ReadXmlChildDefJc(): PureMVal; + function WriteXmlChildDefJc(_p1: any; _p2: any); function ReadXmlChildWrapIndent(): PureMVal; + function WriteXmlChildWrapIndent(_p1: any; _p2: any); function ReadXmlChildIntLim(): PureMVal; + function WriteXmlChildIntLim(_p1: any; _p2: any); function ReadXmlChildNaryLim(): PureMVal; + function WriteXmlChildNaryLim(_p1: any; _p2: any); public // Children @@ -56,20 +68,23 @@ end; type OMathPara = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: OMathPara);override; + function Clone(): OMathPara;override; function ConvertToPoint();override; public // normal property - property OMathParaPr read ReadXmlChildOMathParaPr; - property OMath read ReadXmlChildOMath; + property OMathParaPr read ReadXmlChildOMathParaPr write WriteXmlChildOMathParaPr; + property OMath read ReadXmlChildOMath write WriteXmlChildOMath; function ReadXmlChildOMathParaPr(): OMathParaPr; + function WriteXmlChildOMathParaPr(_p1: any; _p2: any); function ReadXmlChildOMath(): OMath; + function WriteXmlChildOMath(_p1: any; _p2: any); public // Children @@ -79,18 +94,20 @@ end; type OMathParaPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: OMathParaPr);override; + function Clone(): OMathParaPr;override; function ConvertToPoint();override; public // normal property - property Jc read ReadXmlChildJc; + property Jc read ReadXmlChildJc write WriteXmlChildJc; function ReadXmlChildJc(): PureMVal; + function WriteXmlChildJc(_p1: any; _p2: any); public // Children @@ -99,18 +116,19 @@ end; type PureMVal = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: PureMVal);override; + function Clone(): PureMVal;override; function ConvertToPoint();override; public // attributes property property Val read ReadXmlAttrVal write WriteXmlAttrVal; function ReadXmlAttrVal(); - function WriteXmlAttrVal(_value); + function WriteXmlAttrVal(_value: any); public // Attributes @@ -120,32 +138,41 @@ end; type OMath = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: OMath);override; + function Clone(): OMath;override; function ConvertToPoint();override; public // multi property - property Rs read ReadRs; - property Ds read ReadDs; - property Fs read ReadFs; - property Rads read ReadRads; - property SSubs read ReadSSubs; - property SSups read ReadSSups; - property Naries read ReadNaries; - property Funcs read ReadFuncs; - function ReadRs(_index); - function ReadDs(_index); - function ReadFs(_index); - function ReadRads(_index); - function ReadSSubs(_index); - function ReadSSups(_index); - function ReadNaries(_index); - function ReadFuncs(_index); + property Rs read ReadRs write WriteRs; + property Ds read ReadDs write WriteDs; + property Fs read ReadFs write WriteFs; + property Rads read ReadRads write WriteRads; + property SSubs read ReadSSubs write WriteSSubs; + property SSups read ReadSSups write WriteSSups; + property Naries read ReadNaries write WriteNaries; + property Funcs read ReadFuncs write WriteFuncs; + function ReadRs(_index: integer); + function WriteRs(_index: integer; _value: nil_OR_R); + function ReadDs(_index: integer); + function WriteDs(_index: integer; _value: nil_OR_D); + function ReadFs(_index: integer); + function WriteFs(_index: integer; _value: nil_OR_F); + function ReadRads(_index: integer); + function WriteRads(_index: integer; _value: nil_OR_Rad); + function ReadSSubs(_index: integer); + function WriteSSubs(_index: integer; _value: nil_OR_SSub); + function ReadSSups(_index: integer); + function WriteSSups(_index: integer; _value: nil_OR_SSup); + function ReadNaries(_index: integer); + function WriteNaries(_index: integer; _value: nil_OR_Nary); + function ReadFuncs(_index: integer); + function WriteFuncs(_index: integer; _value: nil_OR_Func); function AddR(): R; function AddD(): D; function AddF(): F; @@ -169,24 +196,29 @@ end; type R = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: R);override; + function Clone(): R;override; function ConvertToPoint();override; public // normal property - property RPr read ReadXmlChildRPr; - property ARPr read ReadXmlChildARPr; - property WRPr read ReadXmlChildWRPr; - property T read ReadXmlChildT; + property RPr read ReadXmlChildRPr write WriteXmlChildRPr; + property ARPr read ReadXmlChildARPr write WriteXmlChildARPr; + property WRPr read ReadXmlChildWRPr write WriteXmlChildWRPr; + property T read ReadXmlChildT write WriteXmlChildT; function ReadXmlChildRPr(_ns: string): RPr; + function WriteXmlChildRPr(_p1: any; _p2: any); function ReadXmlChildARPr(): RPr; + function WriteXmlChildARPr(_p1: any; _p2: any); function ReadXmlChildWRPr(): RPr; + function WriteXmlChildWRPr(_p1: any; _p2: any); function ReadXmlChildT(): T; + function WriteXmlChildT(_p1: any; _p2: any); public // Children @@ -198,18 +230,20 @@ end; type RPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: RPr);override; + function Clone(): RPr;override; function ConvertToPoint();override; public // normal property - property Sty read ReadXmlChildSty; + property Sty read ReadXmlChildSty write WriteXmlChildSty; function ReadXmlChildSty(): PureMVal; + function WriteXmlChildSty(_p1: any; _p2: any); public // Children @@ -218,18 +252,19 @@ end; type T = class(OpenXmlTextElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: T);override; + function Clone(): T;override; function ConvertToPoint();override; public // attributes property property Space read ReadXmlAttrSpace write WriteXmlAttrSpace; function ReadXmlAttrSpace(); - function WriteXmlAttrSpace(_value); + function WriteXmlAttrSpace(_value: any); public // Attributes @@ -239,20 +274,23 @@ end; type D = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: D);override; + function Clone(): D;override; function ConvertToPoint();override; public // normal property - property DPr read ReadXmlChildDPr; - property E read ReadXmlChildE; + property DPr read ReadXmlChildDPr write WriteXmlChildDPr; + property E read ReadXmlChildE write WriteXmlChildE; function ReadXmlChildDPr(): DPr; + function WriteXmlChildDPr(_p1: any; _p2: any); function ReadXmlChildE(): E; + function WriteXmlChildE(_p1: any; _p2: any); public // Children @@ -262,30 +300,38 @@ end; type DPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: DPr);override; + function Clone(): DPr;override; function ConvertToPoint();override; public // normal property - property BegChr read ReadXmlChildBegChr; - property EndChr read ReadXmlChildEndChr; - property SepChr read ReadXmlChildSepChr; - property Shp read ReadXmlChildShp; - property Grow read ReadXmlChildGrow; - property CtrlPr read ReadXmlChildCtrlPr; - property RPr read ReadXmlChildRPr; + property BegChr read ReadXmlChildBegChr write WriteXmlChildBegChr; + property EndChr read ReadXmlChildEndChr write WriteXmlChildEndChr; + property SepChr read ReadXmlChildSepChr write WriteXmlChildSepChr; + property Shp read ReadXmlChildShp write WriteXmlChildShp; + property Grow read ReadXmlChildGrow write WriteXmlChildGrow; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; + property RPr read ReadXmlChildRPr write WriteXmlChildRPr; function ReadXmlChildBegChr(): PureMVal; + function WriteXmlChildBegChr(_p1: any; _p2: any); function ReadXmlChildEndChr(): PureMVal; + function WriteXmlChildEndChr(_p1: any; _p2: any); function ReadXmlChildSepChr(): PureMVal; + function WriteXmlChildSepChr(_p1: any; _p2: any); function ReadXmlChildShp(): PureMVal; + function WriteXmlChildShp(_p1: any; _p2: any); function ReadXmlChildGrow(): PureMVal; + function WriteXmlChildGrow(_p1: any; _p2: any); function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); function ReadXmlChildRPr(): RPr; + function WriteXmlChildRPr(_p1: any; _p2: any); public // Children @@ -300,20 +346,23 @@ end; type CtrlPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CtrlPr);override; + function Clone(): CtrlPr;override; function ConvertToPoint();override; public // normal property - property RPr read ReadXmlChildRPr; - property Del read ReadXmlChildDel; + property RPr read ReadXmlChildRPr write WriteXmlChildRPr; + property Del read ReadXmlChildDel write WriteXmlChildDel; function ReadXmlChildRPr(): RPr; + function WriteXmlChildRPr(_p1: any; _p2: any); function ReadXmlChildDel(): Del; + function WriteXmlChildDel(_p1: any; _p2: any); public // Children @@ -323,22 +372,26 @@ end; type SSup = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SSup);override; + function Clone(): SSup;override; function ConvertToPoint();override; public // normal property - property SSupPr read ReadXmlChildSSupPr; - property E read ReadXmlChildE; - property Sup read ReadXmlChildSup; + property SSupPr read ReadXmlChildSSupPr write WriteXmlChildSSupPr; + property E read ReadXmlChildE write WriteXmlChildE; + property Sup read ReadXmlChildSup write WriteXmlChildSup; function ReadXmlChildSSupPr(): SSupPr; + function WriteXmlChildSSupPr(_p1: any; _p2: any); function ReadXmlChildE(): E; + function WriteXmlChildE(_p1: any; _p2: any); function ReadXmlChildSup(): Sup; + function WriteXmlChildSup(_p1: any; _p2: any); public // Children @@ -349,18 +402,20 @@ end; type SSupPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SSupPr);override; + function Clone(): SSupPr;override; function ConvertToPoint();override; public // normal property - property CtrlPr read ReadXmlChildCtrlPr; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); public // Children @@ -369,22 +424,26 @@ end; type F = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: F);override; + function Clone(): F;override; function ConvertToPoint();override; public // normal property - property FPr read ReadXmlChildFPr; - property Num read ReadXmlChildNum; - property Den read ReadXmlChildDen; + property FPr read ReadXmlChildFPr write WriteXmlChildFPr; + property Num read ReadXmlChildNum write WriteXmlChildNum; + property Den read ReadXmlChildDen write WriteXmlChildDen; function ReadXmlChildFPr(): FPr; + function WriteXmlChildFPr(_p1: any; _p2: any); function ReadXmlChildNum(): Num; + function WriteXmlChildNum(_p1: any; _p2: any); function ReadXmlChildDen(): Den; + function WriteXmlChildDen(_p1: any; _p2: any); public // Children @@ -395,20 +454,23 @@ end; type FPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FPr);override; + function Clone(): FPr;override; function ConvertToPoint();override; public // normal property - property Type read ReadXmlChildType; - property CtrlPr read ReadXmlChildCtrlPr; + property Type read ReadXmlChildType write WriteXmlChildType; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildType(): PureMVal; + function WriteXmlChildType(_p1: any; _p2: any); function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); public // Children @@ -418,22 +480,26 @@ end; type Rad = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Rad);override; + function Clone(): Rad;override; function ConvertToPoint();override; public // normal property - property RadPr read ReadXmlChildRadPr; - property Deg read ReadXmlChildDeg; - property E read ReadXmlChildE; + property RadPr read ReadXmlChildRadPr write WriteXmlChildRadPr; + property Deg read ReadXmlChildDeg write WriteXmlChildDeg; + property E read ReadXmlChildE write WriteXmlChildE; function ReadXmlChildRadPr(): RadPr; + function WriteXmlChildRadPr(_p1: any; _p2: any); function ReadXmlChildDeg(): Deg; + function WriteXmlChildDeg(_p1: any; _p2: any); function ReadXmlChildE(): E; + function WriteXmlChildE(_p1: any; _p2: any); public // Children @@ -444,20 +510,23 @@ end; type RadPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: RadPr);override; + function Clone(): RadPr;override; function ConvertToPoint();override; public // normal property - property DegHide read ReadXmlChildDegHide; - property CtrlPr read ReadXmlChildCtrlPr; + property DegHide read ReadXmlChildDegHide write WriteXmlChildDegHide; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildDegHide(): PureMVal; + function WriteXmlChildDegHide(_p1: any; _p2: any); function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); public // Children @@ -467,22 +536,26 @@ end; type SSub = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SSub);override; + function Clone(): SSub;override; function ConvertToPoint();override; public // normal property - property SSubPr read ReadXmlChildSSubPr; - property E read ReadXmlChildE; - property Sub read ReadXmlChildSub; + property SSubPr read ReadXmlChildSSubPr write WriteXmlChildSSubPr; + property E read ReadXmlChildE write WriteXmlChildE; + property Sub read ReadXmlChildSub write WriteXmlChildSub; function ReadXmlChildSSubPr(): SSubPr; + function WriteXmlChildSSubPr(_p1: any; _p2: any); function ReadXmlChildE(): E; + function WriteXmlChildE(_p1: any; _p2: any); function ReadXmlChildSub(): Sub; + function WriteXmlChildSub(_p1: any; _p2: any); public // Children @@ -493,18 +566,20 @@ end; type SSubPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: SSubPr);override; + function Clone(): SSubPr;override; function ConvertToPoint();override; public // normal property - property CtrlPr read ReadXmlChildCtrlPr; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); public // Children @@ -513,24 +588,29 @@ end; type Nary = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Nary);override; + function Clone(): Nary;override; function ConvertToPoint();override; public // normal property - property NaryPr read ReadXmlChildNaryPr; - property Sub read ReadXmlChildSub; - property Sup read ReadXmlChildSup; - property E read ReadXmlChildE; + property NaryPr read ReadXmlChildNaryPr write WriteXmlChildNaryPr; + property Sub read ReadXmlChildSub write WriteXmlChildSub; + property Sup read ReadXmlChildSup write WriteXmlChildSup; + property E read ReadXmlChildE write WriteXmlChildE; function ReadXmlChildNaryPr(): NaryPr; + function WriteXmlChildNaryPr(_p1: any; _p2: any); function ReadXmlChildSub(): Sub; + function WriteXmlChildSub(_p1: any; _p2: any); function ReadXmlChildSup(): Sup; + function WriteXmlChildSup(_p1: any; _p2: any); function ReadXmlChildE(): E; + function WriteXmlChildE(_p1: any; _p2: any); public // Children @@ -542,28 +622,35 @@ end; type NaryPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: NaryPr);override; + function Clone(): NaryPr;override; function ConvertToPoint();override; public // normal property - property Chr read ReadXmlChildChr; - property Grow read ReadXmlChildGrow; - property SubHide read ReadXmlChildSubHide; - property SupHide read ReadXmlChildSupHide; - property LimLoc read ReadXmlChildLimLoc; - property CtrlPr read ReadXmlChildCtrlPr; + property Chr read ReadXmlChildChr write WriteXmlChildChr; + property Grow read ReadXmlChildGrow write WriteXmlChildGrow; + property SubHide read ReadXmlChildSubHide write WriteXmlChildSubHide; + property SupHide read ReadXmlChildSupHide write WriteXmlChildSupHide; + property LimLoc read ReadXmlChildLimLoc write WriteXmlChildLimLoc; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildChr(): PureMVal; + function WriteXmlChildChr(_p1: any; _p2: any); function ReadXmlChildGrow(): PureMVal; + function WriteXmlChildGrow(_p1: any; _p2: any); function ReadXmlChildSubHide(): PureMVal; + function WriteXmlChildSubHide(_p1: any; _p2: any); function ReadXmlChildSupHide(): PureMVal; + function WriteXmlChildSupHide(_p1: any; _p2: any); function ReadXmlChildLimLoc(): PureMVal; + function WriteXmlChildLimLoc(_p1: any; _p2: any); function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); public // Children @@ -577,22 +664,26 @@ end; type Func = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Func);override; + function Clone(): Func;override; function ConvertToPoint();override; public // normal property - property FuncPr read ReadXmlChildFuncPr; - property FName read ReadXmlChildFName; - property E read ReadXmlChildE; + property FuncPr read ReadXmlChildFuncPr write WriteXmlChildFuncPr; + property FName read ReadXmlChildFName write WriteXmlChildFName; + property E read ReadXmlChildE write WriteXmlChildE; function ReadXmlChildFuncPr(): FuncPr; + function WriteXmlChildFuncPr(_p1: any; _p2: any); function ReadXmlChildFName(): FName; + function WriteXmlChildFName(_p1: any; _p2: any); function ReadXmlChildE(): E; + function WriteXmlChildE(_p1: any; _p2: any); public // Children @@ -603,18 +694,20 @@ end; type FName = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FName);override; + function Clone(): FName;override; function ConvertToPoint();override; public // multi property - property Rs read ReadRs; - function ReadRs(_index); + property Rs read ReadRs write WriteRs; + function ReadRs(_index: integer); + function WriteRs(_index: integer; _value: nil_OR_R); function AddR(): R; function AppendR(): R; @@ -624,18 +717,20 @@ end; type FuncPr = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: FuncPr);override; + function Clone(): FuncPr;override; function ConvertToPoint();override; public // normal property - property CtrlPr read ReadXmlChildCtrlPr; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); public // Children @@ -644,36 +739,47 @@ end; type CoreProperties = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: CoreProperties);override; + function Clone(): CoreProperties;override; function ConvertToPoint();override; public // pcdata property - property Title read ReadXmlChildTitle; - property Subject read ReadXmlChildSubject; - property Creator read ReadXmlChildCreator; - property Keywords read ReadXmlChildKeywords; - property Description read ReadXmlChildDescription; - property LastModifiedBy read ReadXmlChildLastModifiedBy; - property Revision read ReadXmlChildRevision; - property LastPrinted read ReadXmlChildLastPrinted; - property Created read ReadXmlChildCreated; - property Modified read ReadXmlChildModified; + property Title read ReadXmlChildTitle write WriteXmlChildTitle; + property Subject read ReadXmlChildSubject write WriteXmlChildSubject; + property Creator read ReadXmlChildCreator write WriteXmlChildCreator; + property Keywords read ReadXmlChildKeywords write WriteXmlChildKeywords; + property Description read ReadXmlChildDescription write WriteXmlChildDescription; + property LastModifiedBy read ReadXmlChildLastModifiedBy write WriteXmlChildLastModifiedBy; + property Revision read ReadXmlChildRevision write WriteXmlChildRevision; + property LastPrinted read ReadXmlChildLastPrinted write WriteXmlChildLastPrinted; + property Created read ReadXmlChildCreated write WriteXmlChildCreated; + property Modified read ReadXmlChildModified write WriteXmlChildModified; function ReadXmlChildTitle(); + function WriteXmlChildTitle(_value: nil_or_OpenXmlTextElement); function ReadXmlChildSubject(); + function WriteXmlChildSubject(_value: nil_or_OpenXmlTextElement); function ReadXmlChildCreator(); + function WriteXmlChildCreator(_value: nil_or_OpenXmlTextElement); function ReadXmlChildKeywords(); + function WriteXmlChildKeywords(_value: nil_or_OpenXmlTextElement); function ReadXmlChildDescription(); + function WriteXmlChildDescription(_value: nil_or_OpenXmlTextElement); function ReadXmlChildLastModifiedBy(); + function WriteXmlChildLastModifiedBy(_value: nil_or_OpenXmlTextElement); function ReadXmlChildRevision(); + function WriteXmlChildRevision(_value: nil_or_OpenXmlTextElement); function ReadXmlChildLastPrinted(); + function WriteXmlChildLastPrinted(_value: nil_or_OpenXmlTextElement); function ReadXmlChildCreated(); + function WriteXmlChildCreated(_value: nil_or_Created); function ReadXmlChildModified(); + function WriteXmlChildModified(_value: nil_or_Modified); public // Children @@ -691,18 +797,19 @@ end; type Created = class(OpenXmlTextElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Created);override; + function Clone(): Created;override; function ConvertToPoint();override; public // attributes property property Type read ReadXmlAttrType write WriteXmlAttrType; function ReadXmlAttrType(); - function WriteXmlAttrType(_value); + function WriteXmlAttrType(_value: any); public // Attributes @@ -712,18 +819,19 @@ end; type Modified = class(OpenXmlTextElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Modified);override; + function Clone(): Modified;override; function ConvertToPoint();override; public // attributes property property Type read ReadXmlAttrType write WriteXmlAttrType; function ReadXmlAttrType(); - function WriteXmlAttrType(_value); + function WriteXmlAttrType(_value: any); public // Attributes @@ -733,18 +841,20 @@ end; type Relationships = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Relationships);override; + function Clone(): Relationships;override; function ConvertToPoint();override; public // multi property - property Relationships read ReadRelationships; - function ReadRelationships(_index); + property Relationships read ReadRelationships write WriteRelationships; + function ReadRelationships(_index: integer); + function WriteRelationships(_index: integer; _value: nil_OR_Relationship); function AddRelationship(): Relationship; function AppendRelationship(): Relationship; @@ -754,11 +864,12 @@ end; type Relationship = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Relationship);override; + function Clone(): Relationship;override; function ConvertToPoint();override; public @@ -767,11 +878,11 @@ public property Type read ReadXmlAttrType write WriteXmlAttrType; property Target read ReadXmlAttrTarget write WriteXmlAttrTarget; function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); function ReadXmlAttrType(); - function WriteXmlAttrType(_value); + function WriteXmlAttrType(_value: any); function ReadXmlAttrTarget(); - function WriteXmlAttrTarget(_value); + function WriteXmlAttrTarget(_value: any); public // Attributes @@ -783,20 +894,23 @@ end; type Types = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Types);override; + function Clone(): Types;override; function ConvertToPoint();override; public // multi property - property Defaults read ReadDefaults; - property Overrides read ReadOverrides; - function ReadDefaults(_index); - function ReadOverrides(_index); + property Defaults read ReadDefaults write WriteDefaults; + property Overrides read ReadOverrides write WriteOverrides; + function ReadDefaults(_index: integer); + function WriteDefaults(_index: integer; _value: nil_OR_Default); + function ReadOverrides(_index: integer); + function WriteOverrides(_index: integer; _value: nil_OR__Override); function AddDefault(): Default; function AddOverride(): _Override; function AppendDefault(): Default; @@ -808,11 +922,12 @@ end; type Default = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Default);override; + function Clone(): Default;override; function ConvertToPoint();override; public @@ -820,9 +935,9 @@ public property Extension read ReadXmlAttrExtension write WriteXmlAttrExtension; property ContentType read ReadXmlAttrContentType write WriteXmlAttrContentType; function ReadXmlAttrExtension(); - function WriteXmlAttrExtension(_value); + function WriteXmlAttrExtension(_value: any); function ReadXmlAttrContentType(); - function WriteXmlAttrContentType(_value); + function WriteXmlAttrContentType(_value: any); public // Attributes @@ -833,11 +948,12 @@ end; type _Override = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: _Override);override; + function Clone(): _Override;override; function ConvertToPoint();override; public @@ -845,9 +961,9 @@ public property PartName read ReadXmlAttrPartName write WriteXmlAttrPartName; property ContentType read ReadXmlAttrContentType write WriteXmlAttrContentType; function ReadXmlAttrPartName(); - function WriteXmlAttrPartName(_value); + function WriteXmlAttrPartName(_value: any); function ReadXmlAttrContentType(); - function WriteXmlAttrContentType(_value); + function WriteXmlAttrContentType(_value: any); public // Attributes @@ -858,36 +974,46 @@ end; type Num = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Num);override; + function Clone(): Num;override; function ConvertToPoint();override; public // normal property - property CtrlPr read ReadXmlChildCtrlPr; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); // multi property - property Rs read ReadRs; - property Ds read ReadDs; - property Fs read ReadFs; - property Rads read ReadRads; - property SSubs read ReadSSubs; - property SSups read ReadSSups; - property Naries read ReadNaries; - property Funcs read ReadFuncs; - function ReadRs(_index); - function ReadDs(_index); - function ReadFs(_index); - function ReadRads(_index); - function ReadSSubs(_index); - function ReadSSups(_index); - function ReadNaries(_index); - function ReadFuncs(_index); + property Rs read ReadRs write WriteRs; + property Ds read ReadDs write WriteDs; + property Fs read ReadFs write WriteFs; + property Rads read ReadRads write WriteRads; + property SSubs read ReadSSubs write WriteSSubs; + property SSups read ReadSSups write WriteSSups; + property Naries read ReadNaries write WriteNaries; + property Funcs read ReadFuncs write WriteFuncs; + function ReadRs(_index: integer); + function WriteRs(_index: integer; _value: nil_OR_R); + function ReadDs(_index: integer); + function WriteDs(_index: integer; _value: nil_OR_D); + function ReadFs(_index: integer); + function WriteFs(_index: integer; _value: nil_OR_F); + function ReadRads(_index: integer); + function WriteRads(_index: integer; _value: nil_OR_Rad); + function ReadSSubs(_index: integer); + function WriteSSubs(_index: integer; _value: nil_OR_SSub); + function ReadSSups(_index: integer); + function WriteSSups(_index: integer; _value: nil_OR_SSup); + function ReadNaries(_index: integer); + function WriteNaries(_index: integer; _value: nil_OR_Nary); + function ReadFuncs(_index: integer); + function WriteFuncs(_index: integer; _value: nil_OR_Func); function AddR(): R; function AddD(): D; function AddF(): F; @@ -912,36 +1038,46 @@ end; type Deg = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Deg);override; + function Clone(): Deg;override; function ConvertToPoint();override; public // normal property - property CtrlPr read ReadXmlChildCtrlPr; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); // multi property - property Rs read ReadRs; - property Ds read ReadDs; - property Fs read ReadFs; - property Rads read ReadRads; - property SSubs read ReadSSubs; - property SSups read ReadSSups; - property Naries read ReadNaries; - property Funcs read ReadFuncs; - function ReadRs(_index); - function ReadDs(_index); - function ReadFs(_index); - function ReadRads(_index); - function ReadSSubs(_index); - function ReadSSups(_index); - function ReadNaries(_index); - function ReadFuncs(_index); + property Rs read ReadRs write WriteRs; + property Ds read ReadDs write WriteDs; + property Fs read ReadFs write WriteFs; + property Rads read ReadRads write WriteRads; + property SSubs read ReadSSubs write WriteSSubs; + property SSups read ReadSSups write WriteSSups; + property Naries read ReadNaries write WriteNaries; + property Funcs read ReadFuncs write WriteFuncs; + function ReadRs(_index: integer); + function WriteRs(_index: integer; _value: nil_OR_R); + function ReadDs(_index: integer); + function WriteDs(_index: integer; _value: nil_OR_D); + function ReadFs(_index: integer); + function WriteFs(_index: integer; _value: nil_OR_F); + function ReadRads(_index: integer); + function WriteRads(_index: integer; _value: nil_OR_Rad); + function ReadSSubs(_index: integer); + function WriteSSubs(_index: integer; _value: nil_OR_SSub); + function ReadSSups(_index: integer); + function WriteSSups(_index: integer; _value: nil_OR_SSup); + function ReadNaries(_index: integer); + function WriteNaries(_index: integer; _value: nil_OR_Nary); + function ReadFuncs(_index: integer); + function WriteFuncs(_index: integer; _value: nil_OR_Func); function AddR(): R; function AddD(): D; function AddF(): F; @@ -966,36 +1102,46 @@ end; type E = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: E);override; + function Clone(): E;override; function ConvertToPoint();override; public // normal property - property CtrlPr read ReadXmlChildCtrlPr; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); // multi property - property Rs read ReadRs; - property Ds read ReadDs; - property Fs read ReadFs; - property Rads read ReadRads; - property SSubs read ReadSSubs; - property SSups read ReadSSups; - property Naries read ReadNaries; - property Funcs read ReadFuncs; - function ReadRs(_index); - function ReadDs(_index); - function ReadFs(_index); - function ReadRads(_index); - function ReadSSubs(_index); - function ReadSSups(_index); - function ReadNaries(_index); - function ReadFuncs(_index); + property Rs read ReadRs write WriteRs; + property Ds read ReadDs write WriteDs; + property Fs read ReadFs write WriteFs; + property Rads read ReadRads write WriteRads; + property SSubs read ReadSSubs write WriteSSubs; + property SSups read ReadSSups write WriteSSups; + property Naries read ReadNaries write WriteNaries; + property Funcs read ReadFuncs write WriteFuncs; + function ReadRs(_index: integer); + function WriteRs(_index: integer; _value: nil_OR_R); + function ReadDs(_index: integer); + function WriteDs(_index: integer; _value: nil_OR_D); + function ReadFs(_index: integer); + function WriteFs(_index: integer; _value: nil_OR_F); + function ReadRads(_index: integer); + function WriteRads(_index: integer; _value: nil_OR_Rad); + function ReadSSubs(_index: integer); + function WriteSSubs(_index: integer; _value: nil_OR_SSub); + function ReadSSups(_index: integer); + function WriteSSups(_index: integer; _value: nil_OR_SSup); + function ReadNaries(_index: integer); + function WriteNaries(_index: integer; _value: nil_OR_Nary); + function ReadFuncs(_index: integer); + function WriteFuncs(_index: integer; _value: nil_OR_Func); function AddR(): R; function AddD(): D; function AddF(): F; @@ -1020,36 +1166,46 @@ end; type Sup = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Sup);override; + function Clone(): Sup;override; function ConvertToPoint();override; public // normal property - property CtrlPr read ReadXmlChildCtrlPr; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); // multi property - property Rs read ReadRs; - property Ds read ReadDs; - property Fs read ReadFs; - property Rads read ReadRads; - property SSubs read ReadSSubs; - property SSups read ReadSSups; - property Naries read ReadNaries; - property Funcs read ReadFuncs; - function ReadRs(_index); - function ReadDs(_index); - function ReadFs(_index); - function ReadRads(_index); - function ReadSSubs(_index); - function ReadSSups(_index); - function ReadNaries(_index); - function ReadFuncs(_index); + property Rs read ReadRs write WriteRs; + property Ds read ReadDs write WriteDs; + property Fs read ReadFs write WriteFs; + property Rads read ReadRads write WriteRads; + property SSubs read ReadSSubs write WriteSSubs; + property SSups read ReadSSups write WriteSSups; + property Naries read ReadNaries write WriteNaries; + property Funcs read ReadFuncs write WriteFuncs; + function ReadRs(_index: integer); + function WriteRs(_index: integer; _value: nil_OR_R); + function ReadDs(_index: integer); + function WriteDs(_index: integer; _value: nil_OR_D); + function ReadFs(_index: integer); + function WriteFs(_index: integer; _value: nil_OR_F); + function ReadRads(_index: integer); + function WriteRads(_index: integer; _value: nil_OR_Rad); + function ReadSSubs(_index: integer); + function WriteSSubs(_index: integer; _value: nil_OR_SSub); + function ReadSSups(_index: integer); + function WriteSSups(_index: integer; _value: nil_OR_SSup); + function ReadNaries(_index: integer); + function WriteNaries(_index: integer; _value: nil_OR_Nary); + function ReadFuncs(_index: integer); + function WriteFuncs(_index: integer; _value: nil_OR_Func); function AddR(): R; function AddD(): D; function AddF(): F; @@ -1074,36 +1230,46 @@ end; type Den = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Den);override; + function Clone(): Den;override; function ConvertToPoint();override; public // normal property - property CtrlPr read ReadXmlChildCtrlPr; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); // multi property - property Rs read ReadRs; - property Ds read ReadDs; - property Fs read ReadFs; - property Rads read ReadRads; - property SSubs read ReadSSubs; - property SSups read ReadSSups; - property Naries read ReadNaries; - property Funcs read ReadFuncs; - function ReadRs(_index); - function ReadDs(_index); - function ReadFs(_index); - function ReadRads(_index); - function ReadSSubs(_index); - function ReadSSups(_index); - function ReadNaries(_index); - function ReadFuncs(_index); + property Rs read ReadRs write WriteRs; + property Ds read ReadDs write WriteDs; + property Fs read ReadFs write WriteFs; + property Rads read ReadRads write WriteRads; + property SSubs read ReadSSubs write WriteSSubs; + property SSups read ReadSSups write WriteSSups; + property Naries read ReadNaries write WriteNaries; + property Funcs read ReadFuncs write WriteFuncs; + function ReadRs(_index: integer); + function WriteRs(_index: integer; _value: nil_OR_R); + function ReadDs(_index: integer); + function WriteDs(_index: integer; _value: nil_OR_D); + function ReadFs(_index: integer); + function WriteFs(_index: integer; _value: nil_OR_F); + function ReadRads(_index: integer); + function WriteRads(_index: integer; _value: nil_OR_Rad); + function ReadSSubs(_index: integer); + function WriteSSubs(_index: integer; _value: nil_OR_SSub); + function ReadSSups(_index: integer); + function WriteSSups(_index: integer; _value: nil_OR_SSup); + function ReadNaries(_index: integer); + function WriteNaries(_index: integer; _value: nil_OR_Nary); + function ReadFuncs(_index: integer); + function WriteFuncs(_index: integer; _value: nil_OR_Func); function AddR(): R; function AddD(): D; function AddF(): F; @@ -1128,36 +1294,46 @@ end; type Sub = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Sub);override; + function Clone(): Sub;override; function ConvertToPoint();override; public // normal property - property CtrlPr read ReadXmlChildCtrlPr; + property CtrlPr read ReadXmlChildCtrlPr write WriteXmlChildCtrlPr; function ReadXmlChildCtrlPr(): CtrlPr; + function WriteXmlChildCtrlPr(_p1: any; _p2: any); // multi property - property Rs read ReadRs; - property Ds read ReadDs; - property Fs read ReadFs; - property Rads read ReadRads; - property SSubs read ReadSSubs; - property SSups read ReadSSups; - property Naries read ReadNaries; - property Funcs read ReadFuncs; - function ReadRs(_index); - function ReadDs(_index); - function ReadFs(_index); - function ReadRads(_index); - function ReadSSubs(_index); - function ReadSSups(_index); - function ReadNaries(_index); - function ReadFuncs(_index); + property Rs read ReadRs write WriteRs; + property Ds read ReadDs write WriteDs; + property Fs read ReadFs write WriteFs; + property Rads read ReadRads write WriteRads; + property SSubs read ReadSSubs write WriteSSubs; + property SSups read ReadSSups write WriteSSups; + property Naries read ReadNaries write WriteNaries; + property Funcs read ReadFuncs write WriteFuncs; + function ReadRs(_index: integer); + function WriteRs(_index: integer; _value: nil_OR_R); + function ReadDs(_index: integer); + function WriteDs(_index: integer; _value: nil_OR_D); + function ReadFs(_index: integer); + function WriteFs(_index: integer; _value: nil_OR_F); + function ReadRads(_index: integer); + function WriteRads(_index: integer; _value: nil_OR_Rad); + function ReadSSubs(_index: integer); + function WriteSSubs(_index: integer; _value: nil_OR_SSub); + function ReadSSups(_index: integer); + function WriteSSups(_index: integer; _value: nil_OR_SSup); + function ReadNaries(_index: integer); + function WriteNaries(_index: integer; _value: nil_OR_Nary); + function ReadFuncs(_index: integer); + function WriteFuncs(_index: integer; _value: nil_OR_Func); function AddR(): R; function AddD(): D; function AddF(): F; @@ -1182,20 +1358,20 @@ end; implementation -function MathPr.Create();overload; +function MathPr.create();overload; begin - {self.}Create(nil, "m", "mathPr"); + {self.}create(nil, "m", "mathPr"); end; -function MathPr.Create(_node: XmlNode);overload; +function MathPr.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function MathPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function MathPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function MathPr.Init();override; @@ -1224,7 +1400,7 @@ function MathPr.Copy(_obj: MathPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildMathFont) then {self.}MathFont.Copy(_obj.XmlChildMathFont); if not ifnil(_obj.XmlChildBrkBin) then @@ -1250,6 +1426,31 @@ begin tslassigning := tslassigning_backup; end; +function MathPr.Clone(): MathPr;override; +begin + obj := new MathPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "mathFont": obj.MathFont := element.Clone(); + pre + "brkBin": obj.BrkBin := element.Clone(); + pre + "brkBinSub": obj.BrkBinSub := element.Clone(); + pre + "smallFrac": obj.SmallFrac := element.Clone(); + pre + "dispDef": obj.DispDef := element.Clone(); + pre + "lMargin": obj.LMargin := element.Clone(); + pre + "rMargin": obj.RMargin := element.Clone(); + pre + "defJc": obj.DefJc := element.Clone(); + pre + "wrapIndent": obj.WrapIndent := element.Clone(); + pre + "intLim": obj.IntLim := element.Clone(); + pre + "naryLim": obj.NaryLim := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function MathPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildMathFont) then @@ -1281,7 +1482,25 @@ begin {self.}XmlChildDispDef := new OpenXmlSimpleType(self, {self.}Prefix, "dispDef"); container_.Set({self.}XmlChildDispDef); end - return {self.}XmlChildDispDef; + return {self.}XmlChildDispDef and not {self.}XmlChildDispDef.Removed ? {self.}XmlChildDispDef : fallback_.DispDef; +end; + +function MathPr.WriteXmlChildDispDef(_value: nil_or_OpenXmlSimpleType); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildDispDef) then + {self.}RemoveChild({self.}XmlChildDispDef); + end + else if _value is class(OpenXmlSimpleType) then + begin + _value.Parent := self; + {self.}XmlChildDispDef := _value; + container_.Set({self.}XmlChildDispDef); + end + else begin + raise "Invalid assignment: DispDef expects nil or OpenXmlSimpleType"; + end end; function MathPr.ReadXmlChildMathFont(): PureMVal; @@ -1291,7 +1510,26 @@ begin {self.}XmlChildMathFont := new PureMVal(self, {self.}Prefix, "mathFont"); container_.Set({self.}XmlChildMathFont); end - return {self.}XmlChildMathFont; + return {self.}XmlChildMathFont and not {self.}XmlChildMathFont.Removed ? {self.}XmlChildMathFont : fallback_.MathFont; +end; + +function MathPr.WriteXmlChildMathFont(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildMathFont) then + {self.}RemoveChild({self.}XmlChildMathFont); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildMathFont := v; + container_.Set({self.}XmlChildMathFont); + end + else begin + raise "Invalid assignment: MathFont expects PureMVal or nil"; + end end; function MathPr.ReadXmlChildBrkBin(): PureMVal; @@ -1301,7 +1539,26 @@ begin {self.}XmlChildBrkBin := new PureMVal(self, {self.}Prefix, "brkBin"); container_.Set({self.}XmlChildBrkBin); end - return {self.}XmlChildBrkBin; + return {self.}XmlChildBrkBin and not {self.}XmlChildBrkBin.Removed ? {self.}XmlChildBrkBin : fallback_.BrkBin; +end; + +function MathPr.WriteXmlChildBrkBin(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBrkBin) then + {self.}RemoveChild({self.}XmlChildBrkBin); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildBrkBin := v; + container_.Set({self.}XmlChildBrkBin); + end + else begin + raise "Invalid assignment: BrkBin expects PureMVal or nil"; + end end; function MathPr.ReadXmlChildBrkBinSub(): PureMVal; @@ -1311,7 +1568,26 @@ begin {self.}XmlChildBrkBinSub := new PureMVal(self, {self.}Prefix, "brkBinSub"); container_.Set({self.}XmlChildBrkBinSub); end - return {self.}XmlChildBrkBinSub; + return {self.}XmlChildBrkBinSub and not {self.}XmlChildBrkBinSub.Removed ? {self.}XmlChildBrkBinSub : fallback_.BrkBinSub; +end; + +function MathPr.WriteXmlChildBrkBinSub(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBrkBinSub) then + {self.}RemoveChild({self.}XmlChildBrkBinSub); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildBrkBinSub := v; + container_.Set({self.}XmlChildBrkBinSub); + end + else begin + raise "Invalid assignment: BrkBinSub expects PureMVal or nil"; + end end; function MathPr.ReadXmlChildSmallFrac(): PureMVal; @@ -1321,7 +1597,26 @@ begin {self.}XmlChildSmallFrac := new PureMVal(self, {self.}Prefix, "smallFrac"); container_.Set({self.}XmlChildSmallFrac); end - return {self.}XmlChildSmallFrac; + return {self.}XmlChildSmallFrac and not {self.}XmlChildSmallFrac.Removed ? {self.}XmlChildSmallFrac : fallback_.SmallFrac; +end; + +function MathPr.WriteXmlChildSmallFrac(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSmallFrac) then + {self.}RemoveChild({self.}XmlChildSmallFrac); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildSmallFrac := v; + container_.Set({self.}XmlChildSmallFrac); + end + else begin + raise "Invalid assignment: SmallFrac expects PureMVal or nil"; + end end; function MathPr.ReadXmlChildLMargin(): PureMVal; @@ -1331,7 +1626,26 @@ begin {self.}XmlChildLMargin := new PureMVal(self, {self.}Prefix, "lMargin"); container_.Set({self.}XmlChildLMargin); end - return {self.}XmlChildLMargin; + return {self.}XmlChildLMargin and not {self.}XmlChildLMargin.Removed ? {self.}XmlChildLMargin : fallback_.LMargin; +end; + +function MathPr.WriteXmlChildLMargin(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLMargin) then + {self.}RemoveChild({self.}XmlChildLMargin); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildLMargin := v; + container_.Set({self.}XmlChildLMargin); + end + else begin + raise "Invalid assignment: LMargin expects PureMVal or nil"; + end end; function MathPr.ReadXmlChildRMargin(): PureMVal; @@ -1341,7 +1655,26 @@ begin {self.}XmlChildRMargin := new PureMVal(self, {self.}Prefix, "rMargin"); container_.Set({self.}XmlChildRMargin); end - return {self.}XmlChildRMargin; + return {self.}XmlChildRMargin and not {self.}XmlChildRMargin.Removed ? {self.}XmlChildRMargin : fallback_.RMargin; +end; + +function MathPr.WriteXmlChildRMargin(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRMargin) then + {self.}RemoveChild({self.}XmlChildRMargin); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildRMargin := v; + container_.Set({self.}XmlChildRMargin); + end + else begin + raise "Invalid assignment: RMargin expects PureMVal or nil"; + end end; function MathPr.ReadXmlChildDefJc(): PureMVal; @@ -1351,7 +1684,26 @@ begin {self.}XmlChildDefJc := new PureMVal(self, {self.}Prefix, "defJc"); container_.Set({self.}XmlChildDefJc); end - return {self.}XmlChildDefJc; + return {self.}XmlChildDefJc and not {self.}XmlChildDefJc.Removed ? {self.}XmlChildDefJc : fallback_.DefJc; +end; + +function MathPr.WriteXmlChildDefJc(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDefJc) then + {self.}RemoveChild({self.}XmlChildDefJc); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildDefJc := v; + container_.Set({self.}XmlChildDefJc); + end + else begin + raise "Invalid assignment: DefJc expects PureMVal or nil"; + end end; function MathPr.ReadXmlChildWrapIndent(): PureMVal; @@ -1361,7 +1713,26 @@ begin {self.}XmlChildWrapIndent := new PureMVal(self, {self.}Prefix, "wrapIndent"); container_.Set({self.}XmlChildWrapIndent); end - return {self.}XmlChildWrapIndent; + return {self.}XmlChildWrapIndent and not {self.}XmlChildWrapIndent.Removed ? {self.}XmlChildWrapIndent : fallback_.WrapIndent; +end; + +function MathPr.WriteXmlChildWrapIndent(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildWrapIndent) then + {self.}RemoveChild({self.}XmlChildWrapIndent); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildWrapIndent := v; + container_.Set({self.}XmlChildWrapIndent); + end + else begin + raise "Invalid assignment: WrapIndent expects PureMVal or nil"; + end end; function MathPr.ReadXmlChildIntLim(): PureMVal; @@ -1371,7 +1742,26 @@ begin {self.}XmlChildIntLim := new PureMVal(self, {self.}Prefix, "intLim"); container_.Set({self.}XmlChildIntLim); end - return {self.}XmlChildIntLim; + return {self.}XmlChildIntLim and not {self.}XmlChildIntLim.Removed ? {self.}XmlChildIntLim : fallback_.IntLim; +end; + +function MathPr.WriteXmlChildIntLim(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildIntLim) then + {self.}RemoveChild({self.}XmlChildIntLim); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildIntLim := v; + container_.Set({self.}XmlChildIntLim); + end + else begin + raise "Invalid assignment: IntLim expects PureMVal or nil"; + end end; function MathPr.ReadXmlChildNaryLim(): PureMVal; @@ -1381,23 +1771,42 @@ begin {self.}XmlChildNaryLim := new PureMVal(self, {self.}Prefix, "naryLim"); container_.Set({self.}XmlChildNaryLim); end - return {self.}XmlChildNaryLim; + return {self.}XmlChildNaryLim and not {self.}XmlChildNaryLim.Removed ? {self.}XmlChildNaryLim : fallback_.NaryLim; end; -function OMathPara.Create();overload; +function MathPr.WriteXmlChildNaryLim(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "oMathPara"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNaryLim) then + {self.}RemoveChild({self.}XmlChildNaryLim); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildNaryLim := v; + container_.Set({self.}XmlChildNaryLim); + end + else begin + raise "Invalid assignment: NaryLim expects PureMVal or nil"; + end end; -function OMathPara.Create(_node: XmlNode);overload; +function OMathPara.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "oMathPara"); end; -function OMathPara.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function OMathPara.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function OMathPara.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function OMathPara.Init();override; @@ -1417,7 +1826,7 @@ function OMathPara.Copy(_obj: OMathPara);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildOMathParaPr) then {self.}OMathParaPr.Copy(_obj.XmlChildOMathParaPr); if not ifnil(_obj.XmlChildOMath) then @@ -1425,6 +1834,22 @@ begin tslassigning := tslassigning_backup; end; +function OMathPara.Clone(): OMathPara;override; +begin + obj := new OMathPara(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "oMathParaPr": obj.OMathParaPr := element.Clone(); + pre + "oMath": obj.OMath := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function OMathPara.ConvertToPoint();override; begin if not ifnil({self.}XmlChildOMathParaPr) then @@ -1440,7 +1865,26 @@ begin {self.}XmlChildOMathParaPr := new OMathParaPr(self, {self.}Prefix, "oMathParaPr"); container_.Set({self.}XmlChildOMathParaPr); end - return {self.}XmlChildOMathParaPr; + return {self.}XmlChildOMathParaPr and not {self.}XmlChildOMathParaPr.Removed ? {self.}XmlChildOMathParaPr : fallback_.OMathParaPr; +end; + +function OMathPara.WriteXmlChildOMathParaPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildOMathParaPr) then + {self.}RemoveChild({self.}XmlChildOMathParaPr); + end + else if v is class(OMathParaPr) then + begin + v.Parent := self; + {self.}XmlChildOMathParaPr := v; + container_.Set({self.}XmlChildOMathParaPr); + end + else begin + raise "Invalid assignment: OMathParaPr expects OMathParaPr or nil"; + end end; function OMathPara.ReadXmlChildOMath(): OMath; @@ -1450,23 +1894,42 @@ begin {self.}XmlChildOMath := new OMath(self, {self.}Prefix, "oMath"); container_.Set({self.}XmlChildOMath); end - return {self.}XmlChildOMath; + return {self.}XmlChildOMath and not {self.}XmlChildOMath.Removed ? {self.}XmlChildOMath : fallback_.OMath; end; -function OMathParaPr.Create();overload; +function OMathPara.WriteXmlChildOMath(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "oMathParaPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildOMath) then + {self.}RemoveChild({self.}XmlChildOMath); + end + else if v is class(OMath) then + begin + v.Parent := self; + {self.}XmlChildOMath := v; + container_.Set({self.}XmlChildOMath); + end + else begin + raise "Invalid assignment: OMath expects OMath or nil"; + end end; -function OMathParaPr.Create(_node: XmlNode);overload; +function OMathParaPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "oMathParaPr"); end; -function OMathParaPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function OMathParaPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function OMathParaPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function OMathParaPr.Init();override; @@ -1485,12 +1948,27 @@ function OMathParaPr.Copy(_obj: OMathParaPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildJc) then {self.}Jc.Copy(_obj.XmlChildJc); tslassigning := tslassigning_backup; end; +function OMathParaPr.Clone(): OMathParaPr;override; +begin + obj := new OMathParaPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "jc": obj.Jc := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function OMathParaPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildJc) then @@ -1504,23 +1982,42 @@ begin {self.}XmlChildJc := new PureMVal(self, {self.}Prefix, "jc"); container_.Set({self.}XmlChildJc); end - return {self.}XmlChildJc; + return {self.}XmlChildJc and not {self.}XmlChildJc.Removed ? {self.}XmlChildJc : fallback_.Jc; end; -function PureMVal.Create();overload; +function OMathParaPr.WriteXmlChildJc(_p1: any; _p2: any); begin - {self.}Create(nil, "m", ""); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildJc) then + {self.}RemoveChild({self.}XmlChildJc); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildJc := v; + container_.Set({self.}XmlChildJc); + end + else begin + raise "Invalid assignment: Jc expects PureMVal or nil"; + end end; -function PureMVal.Create(_node: XmlNode);overload; +function PureMVal.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", ""); end; -function PureMVal.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function PureMVal.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function PureMVal.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function PureMVal.Init();override; @@ -1539,12 +2036,20 @@ function PureMVal.Copy(_obj: PureMVal);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Val) then {self.}Val := _obj.Val; tslassigning := tslassigning_backup; end; +function PureMVal.Clone(): PureMVal;override; +begin + obj := new PureMVal(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Val) then + obj.Val := {self.}Val; + return obj; +end; + function PureMVal.ConvertToPoint();override; begin @@ -1552,33 +2057,33 @@ end; function PureMVal.ReadXmlAttrVal(); begin - return {self.}XmlAttrVal.Value; + return ifnil({self.}XmlAttrVal.Value) ? fallback_.XmlAttrVal.Value : {self.}XmlAttrVal.Value; end; -function PureMVal.WriteXmlAttrVal(_value); +function PureMVal.WriteXmlAttrVal(_value: any); begin if ifnil({self.}XmlAttrVal) then begin {self.}XmlAttrVal := new OpenXmlAttribute({self.}Prefix, "val", nil); - attributes_[length(attributes_)] := {self.}XmlAttrVal; + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "val" : "val"] := {self.}XmlAttrVal; end {self.}XmlAttrVal.Value := _value; end; -function OMath.Create();overload; +function OMath.create();overload; begin - {self.}Create(nil, "m", "oMath"); + {self.}create(nil, "m", "oMath"); end; -function OMath.Create(_node: XmlNode);overload; +function OMath.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function OMath.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function OMath.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function OMath.Init();override; @@ -1604,10 +2109,19 @@ function OMath.Copy(_obj: OMath);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function OMath.Clone(): OMath;override; +begin + obj := new OMath(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function OMath.ConvertToPoint();override; begin elems := {self.}Rs(); @@ -1636,65 +2150,218 @@ begin elem.ConvertToPoint(); end; -function OMath.ReadRs(_index); +function OMath.ReadRs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "r", ind); end; -function OMath.ReadDs(_index); +function OMath.WriteRs(_index: integer; _value: nil_OR_R); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "r", ind, _value) then + raise format("Index out of range: Rs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rs expects nil or R"; + end +end; + +function OMath.ReadDs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "d", ind); end; -function OMath.ReadFs(_index); +function OMath.WriteDs(_index: integer; _value: nil_OR_D); +begin + if ifnil(_value) then + begin + obj := {self.}ReadDs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "d", ind, _value) then + raise format("Index out of range: Ds[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Ds expects nil or D"; + end +end; + +function OMath.ReadFs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "f", ind); end; -function OMath.ReadRads(_index); +function OMath.WriteFs(_index: integer; _value: nil_OR_F); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "f", ind, _value) then + raise format("Index out of range: Fs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Fs expects nil or F"; + end +end; + +function OMath.ReadRads(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "rad", ind); end; -function OMath.ReadSSubs(_index); +function OMath.WriteRads(_index: integer; _value: nil_OR_Rad); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRads(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "rad", ind, _value) then + raise format("Index out of range: Rads[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rads expects nil or Rad"; + end +end; + +function OMath.ReadSSubs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSub", ind); end; -function OMath.ReadSSups(_index); +function OMath.WriteSSubs(_index: integer; _value: nil_OR_SSub); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSubs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSub", ind, _value) then + raise format("Index out of range: SSubs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSubs expects nil or SSub"; + end +end; + +function OMath.ReadSSups(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSup", ind); end; -function OMath.ReadNaries(_index); +function OMath.WriteSSups(_index: integer; _value: nil_OR_SSup); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSups(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSup", ind, _value) then + raise format("Index out of range: SSups[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSups expects nil or SSup"; + end +end; + +function OMath.ReadNaries(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "nary", ind); end; -function OMath.ReadFuncs(_index); +function OMath.WriteNaries(_index: integer; _value: nil_OR_Nary); +begin + if ifnil(_value) then + begin + obj := {self.}ReadNaries(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "nary", ind, _value) then + raise format("Index out of range: Naries[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Naries expects nil or Nary"; + end +end; + +function OMath.ReadFuncs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "func", ind); end; +function OMath.WriteFuncs(_index: integer; _value: nil_OR_Func); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFuncs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "func", ind, _value) then + raise format("Index out of range: Funcs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Funcs expects nil or Func"; + end +end; + function OMath.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -1702,6 +2369,7 @@ end; function OMath.AddD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -1709,6 +2377,7 @@ end; function OMath.AddF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -1716,6 +2385,7 @@ end; function OMath.AddRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -1723,6 +2393,7 @@ end; function OMath.AddSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -1730,6 +2401,7 @@ end; function OMath.AddSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -1737,6 +2409,7 @@ end; function OMath.AddNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -1744,6 +2417,7 @@ end; function OMath.AddFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -1751,6 +2425,7 @@ end; function OMath.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -1758,6 +2433,7 @@ end; function OMath.AppendD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -1765,6 +2441,7 @@ end; function OMath.AppendF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -1772,6 +2449,7 @@ end; function OMath.AppendRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -1779,6 +2457,7 @@ end; function OMath.AppendSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -1786,6 +2465,7 @@ end; function OMath.AppendSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -1793,6 +2473,7 @@ end; function OMath.AppendNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -1800,24 +2481,25 @@ end; function OMath.AppendFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Append(obj); return obj; end; -function R.Create();overload; +function R.create();overload; begin - {self.}Create(nil, "m", "r"); + {self.}create(nil, "m", "r"); end; -function R.Create(_node: XmlNode);overload; +function R.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function R.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function R.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function R.Init();override; @@ -1839,7 +2521,7 @@ function R.Copy(_obj: R);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRPr) then {self.}RPr.Copy(_obj.XmlChildRPr); if not ifnil(_obj.XmlChildARPr) then @@ -1851,6 +2533,24 @@ begin tslassigning := tslassigning_backup; end; +function R.Clone(): R;override; +begin + obj := new R(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rPr": obj.RPr := element.Clone(); + "a:rPr": obj.ARPr := element.Clone(); + "w:rPr": obj.WRPr := element.Clone(); + pre + "t": obj.T := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function R.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRPr) then @@ -1866,15 +2566,41 @@ end; function R.ReadXmlChildRPr(_ns: string): RPr; begin if _ns = "a" then - return ReadXmlChildARPr(); - else if _ns = "w" then - return ReadXmlChildWRPr(); + return {self.}ReadXmlChildARPr(); + if _ns = "w" then + return {self.}ReadXmlChildWRPr(); if tslassigning and (ifnil({self.}XmlChildRPr) or {self.}XmlChildRPr.Removed) then begin {self.}XmlChildRPr := new RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; +end; + +function R.WriteXmlChildRPr(_p1: any; _p2: any); +begin + if realparamcount = 2 then + begin + if _p1 = "a" then + return {self.}WriteXmlChildARPr(_p2); + if _p1 = "w" then + return {self.}WriteXmlChildWRPr(_p2); + end + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRPr) then + {self.}RemoveChild({self.}XmlChildRPr); + end + else if v is class(RPr) then + begin + v.Parent := self; + {self.}XmlChildRPr := v; + container_.Set({self.}XmlChildRPr); + end + else begin + raise "Invalid assignment: RPr expects RPr or nil"; + end end; function R.ReadXmlChildARPr(): RPr; @@ -1884,7 +2610,26 @@ begin {self.}XmlChildARPr := new DrawingML.RPr(self, "a", "rPr"); container_.Set({self.}XmlChildARPr); end - return {self.}XmlChildARPr; + return {self.}XmlChildARPr and not {self.}XmlChildARPr.Removed ? {self.}XmlChildARPr : fallback_.ARPr; +end; + +function R.WriteXmlChildARPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildARPr) then + {self.}RemoveChild({self.}XmlChildARPr); + end + else if v is class(RPr) then + begin + v.Parent := self; + {self.}XmlChildARPr := v; + container_.Set({self.}XmlChildARPr); + end + else begin + raise "Invalid assignment: RPr expects RPr or nil"; + end end; function R.ReadXmlChildWRPr(): RPr; @@ -1894,7 +2639,26 @@ begin {self.}XmlChildWRPr := new DocxML.RPr(self, "w", "rPr"); container_.Set({self.}XmlChildWRPr); end - return {self.}XmlChildWRPr; + return {self.}XmlChildWRPr and not {self.}XmlChildWRPr.Removed ? {self.}XmlChildWRPr : fallback_.WRPr; +end; + +function R.WriteXmlChildWRPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildWRPr) then + {self.}RemoveChild({self.}XmlChildWRPr); + end + else if v is class(RPr) then + begin + v.Parent := self; + {self.}XmlChildWRPr := v; + container_.Set({self.}XmlChildWRPr); + end + else begin + raise "Invalid assignment: RPr expects RPr or nil"; + end end; function R.ReadXmlChildT(): T; @@ -1904,23 +2668,42 @@ begin {self.}XmlChildT := new T(self, {self.}Prefix, "t"); container_.Set({self.}XmlChildT); end - return {self.}XmlChildT; + return {self.}XmlChildT and not {self.}XmlChildT.Removed ? {self.}XmlChildT : fallback_.T; end; -function RPr.Create();overload; +function R.WriteXmlChildT(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "rPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildT) then + {self.}RemoveChild({self.}XmlChildT); + end + else if v is class(T) then + begin + v.Parent := self; + {self.}XmlChildT := v; + container_.Set({self.}XmlChildT); + end + else begin + raise "Invalid assignment: T expects T or nil"; + end end; -function RPr.Create(_node: XmlNode);overload; +function RPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "rPr"); end; -function RPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function RPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function RPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function RPr.Init();override; @@ -1939,12 +2722,27 @@ function RPr.Copy(_obj: RPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSty) then {self.}Sty.Copy(_obj.XmlChildSty); tslassigning := tslassigning_backup; end; +function RPr.Clone(): RPr;override; +begin + obj := new RPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sty": obj.Sty := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function RPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSty) then @@ -1958,23 +2756,42 @@ begin {self.}XmlChildSty := new PureMVal(self, {self.}Prefix, "sty"); container_.Set({self.}XmlChildSty); end - return {self.}XmlChildSty; + return {self.}XmlChildSty and not {self.}XmlChildSty.Removed ? {self.}XmlChildSty : fallback_.Sty; end; -function T.Create();overload; +function RPr.WriteXmlChildSty(_p1: any; _p2: any); begin - {self.}Create(nil, "w", "t"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSty) then + {self.}RemoveChild({self.}XmlChildSty); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildSty := v; + container_.Set({self.}XmlChildSty); + end + else begin + raise "Invalid assignment: Sty expects PureMVal or nil"; + end end; -function T.Create(_node: XmlNode);overload; +function T.create();overload; begin - class(OpenXmlTextElement).Create(_node: XmlNode); + {self.}create(nil, "w", "t"); end; -function T.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function T.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function T.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlTextElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function T.Init();override; @@ -1990,12 +2807,22 @@ function T.Copy(_obj: T);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlTextElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Space) then {self.}Space := _obj.Space; tslassigning := tslassigning_backup; end; +function T.Clone(): T;override; +begin + obj := new T(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Text) then + obj.Text := {self.}Text; + if not ifnil({self.}Space) then + obj.Space := {self.}Space; + return obj; +end; + function T.ConvertToPoint();override; begin @@ -2003,33 +2830,33 @@ end; function T.ReadXmlAttrSpace(); begin - return {self.}XmlAttrSpace.Value; + return ifnil({self.}XmlAttrSpace.Value) ? fallback_.XmlAttrSpace.Value : {self.}XmlAttrSpace.Value; end; -function T.WriteXmlAttrSpace(_value); +function T.WriteXmlAttrSpace(_value: any); begin if ifnil({self.}XmlAttrSpace) then begin {self.}XmlAttrSpace := new OpenXmlAttribute("xml", "space", nil); - attributes_[length(attributes_)] := {self.}XmlAttrSpace; + attributes_["xml:space"] := {self.}XmlAttrSpace; end {self.}XmlAttrSpace.Value := _value; end; -function D.Create();overload; +function D.create();overload; begin - {self.}Create(nil, "m", "d"); + {self.}create(nil, "m", "d"); end; -function D.Create(_node: XmlNode);overload; +function D.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function D.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function D.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function D.Init();override; @@ -2049,7 +2876,7 @@ function D.Copy(_obj: D);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildDPr) then {self.}DPr.Copy(_obj.XmlChildDPr); if not ifnil(_obj.XmlChildE) then @@ -2057,6 +2884,22 @@ begin tslassigning := tslassigning_backup; end; +function D.Clone(): D;override; +begin + obj := new D(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "dPr": obj.DPr := element.Clone(); + pre + "e": obj.E := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function D.ConvertToPoint();override; begin if not ifnil({self.}XmlChildDPr) then @@ -2072,7 +2915,26 @@ begin {self.}XmlChildDPr := new DPr(self, {self.}Prefix, "dPr"); container_.Set({self.}XmlChildDPr); end - return {self.}XmlChildDPr; + return {self.}XmlChildDPr and not {self.}XmlChildDPr.Removed ? {self.}XmlChildDPr : fallback_.DPr; +end; + +function D.WriteXmlChildDPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDPr) then + {self.}RemoveChild({self.}XmlChildDPr); + end + else if v is class(DPr) then + begin + v.Parent := self; + {self.}XmlChildDPr := v; + container_.Set({self.}XmlChildDPr); + end + else begin + raise "Invalid assignment: DPr expects DPr or nil"; + end end; function D.ReadXmlChildE(): E; @@ -2082,23 +2944,42 @@ begin {self.}XmlChildE := new E(self, {self.}Prefix, "e"); container_.Set({self.}XmlChildE); end - return {self.}XmlChildE; + return {self.}XmlChildE and not {self.}XmlChildE.Removed ? {self.}XmlChildE : fallback_.E; end; -function DPr.Create();overload; +function D.WriteXmlChildE(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "dPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildE) then + {self.}RemoveChild({self.}XmlChildE); + end + else if v is class(E) then + begin + v.Parent := self; + {self.}XmlChildE := v; + container_.Set({self.}XmlChildE); + end + else begin + raise "Invalid assignment: E expects E or nil"; + end end; -function DPr.Create(_node: XmlNode);overload; +function DPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "dPr"); end; -function DPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function DPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function DPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function DPr.Init();override; @@ -2123,7 +3004,7 @@ function DPr.Copy(_obj: DPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildBegChr) then {self.}BegChr.Copy(_obj.XmlChildBegChr); if not ifnil(_obj.XmlChildEndChr) then @@ -2141,6 +3022,27 @@ begin tslassigning := tslassigning_backup; end; +function DPr.Clone(): DPr;override; +begin + obj := new DPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "begChr": obj.BegChr := element.Clone(); + pre + "endChr": obj.EndChr := element.Clone(); + pre + "sepChr": obj.SepChr := element.Clone(); + pre + "shp": obj.Shp := element.Clone(); + pre + "grow": obj.Grow := element.Clone(); + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + "w:rPr": obj.RPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function DPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildBegChr) then @@ -2166,7 +3068,26 @@ begin {self.}XmlChildBegChr := new PureMVal(self, {self.}Prefix, "begChr"); container_.Set({self.}XmlChildBegChr); end - return {self.}XmlChildBegChr; + return {self.}XmlChildBegChr and not {self.}XmlChildBegChr.Removed ? {self.}XmlChildBegChr : fallback_.BegChr; +end; + +function DPr.WriteXmlChildBegChr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildBegChr) then + {self.}RemoveChild({self.}XmlChildBegChr); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildBegChr := v; + container_.Set({self.}XmlChildBegChr); + end + else begin + raise "Invalid assignment: BegChr expects PureMVal or nil"; + end end; function DPr.ReadXmlChildEndChr(): PureMVal; @@ -2176,7 +3097,26 @@ begin {self.}XmlChildEndChr := new PureMVal(self, {self.}Prefix, "endChr"); container_.Set({self.}XmlChildEndChr); end - return {self.}XmlChildEndChr; + return {self.}XmlChildEndChr and not {self.}XmlChildEndChr.Removed ? {self.}XmlChildEndChr : fallback_.EndChr; +end; + +function DPr.WriteXmlChildEndChr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildEndChr) then + {self.}RemoveChild({self.}XmlChildEndChr); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildEndChr := v; + container_.Set({self.}XmlChildEndChr); + end + else begin + raise "Invalid assignment: EndChr expects PureMVal or nil"; + end end; function DPr.ReadXmlChildSepChr(): PureMVal; @@ -2186,7 +3126,26 @@ begin {self.}XmlChildSepChr := new PureMVal(self, {self.}Prefix, "sepChr"); container_.Set({self.}XmlChildSepChr); end - return {self.}XmlChildSepChr; + return {self.}XmlChildSepChr and not {self.}XmlChildSepChr.Removed ? {self.}XmlChildSepChr : fallback_.SepChr; +end; + +function DPr.WriteXmlChildSepChr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSepChr) then + {self.}RemoveChild({self.}XmlChildSepChr); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildSepChr := v; + container_.Set({self.}XmlChildSepChr); + end + else begin + raise "Invalid assignment: SepChr expects PureMVal or nil"; + end end; function DPr.ReadXmlChildShp(): PureMVal; @@ -2196,7 +3155,26 @@ begin {self.}XmlChildShp := new PureMVal(self, {self.}Prefix, "shp"); container_.Set({self.}XmlChildShp); end - return {self.}XmlChildShp; + return {self.}XmlChildShp and not {self.}XmlChildShp.Removed ? {self.}XmlChildShp : fallback_.Shp; +end; + +function DPr.WriteXmlChildShp(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildShp) then + {self.}RemoveChild({self.}XmlChildShp); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildShp := v; + container_.Set({self.}XmlChildShp); + end + else begin + raise "Invalid assignment: Shp expects PureMVal or nil"; + end end; function DPr.ReadXmlChildGrow(): PureMVal; @@ -2206,7 +3184,26 @@ begin {self.}XmlChildGrow := new PureMVal(self, {self.}Prefix, "grow"); container_.Set({self.}XmlChildGrow); end - return {self.}XmlChildGrow; + return {self.}XmlChildGrow and not {self.}XmlChildGrow.Removed ? {self.}XmlChildGrow : fallback_.Grow; +end; + +function DPr.WriteXmlChildGrow(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildGrow) then + {self.}RemoveChild({self.}XmlChildGrow); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildGrow := v; + container_.Set({self.}XmlChildGrow); + end + else begin + raise "Invalid assignment: Grow expects PureMVal or nil"; + end end; function DPr.ReadXmlChildCtrlPr(): CtrlPr; @@ -2216,7 +3213,26 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; +end; + +function DPr.WriteXmlChildCtrlPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end end; function DPr.ReadXmlChildRPr(): RPr; @@ -2226,23 +3242,42 @@ begin {self.}XmlChildRPr := new DocxML.RPr(self, "w", "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; end; -function CtrlPr.Create();overload; +function DPr.WriteXmlChildRPr(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "ctrlPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRPr) then + {self.}RemoveChild({self.}XmlChildRPr); + end + else if v is class(RPr) then + begin + v.Parent := self; + {self.}XmlChildRPr := v; + container_.Set({self.}XmlChildRPr); + end + else begin + raise "Invalid assignment: RPr expects RPr or nil"; + end end; -function CtrlPr.Create(_node: XmlNode);overload; +function CtrlPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "ctrlPr"); end; -function CtrlPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CtrlPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function CtrlPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CtrlPr.Init();override; @@ -2262,7 +3297,7 @@ function CtrlPr.Copy(_obj: CtrlPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRPr) then {self.}RPr.Copy(_obj.XmlChildRPr); if not ifnil(_obj.XmlChildDel) then @@ -2270,6 +3305,22 @@ begin tslassigning := tslassigning_backup; end; +function CtrlPr.Clone(): CtrlPr;override; +begin + obj := new CtrlPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "rPr": obj.RPr := element.Clone(); + pre + "del": obj.Del := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function CtrlPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRPr) then @@ -2285,7 +3336,26 @@ begin {self.}XmlChildRPr := new DrawingML.RPr(self, {self.}Prefix, "rPr"); container_.Set({self.}XmlChildRPr); end - return {self.}XmlChildRPr; + return {self.}XmlChildRPr and not {self.}XmlChildRPr.Removed ? {self.}XmlChildRPr : fallback_.RPr; +end; + +function CtrlPr.WriteXmlChildRPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRPr) then + {self.}RemoveChild({self.}XmlChildRPr); + end + else if v is class(RPr) then + begin + v.Parent := self; + {self.}XmlChildRPr := v; + container_.Set({self.}XmlChildRPr); + end + else begin + raise "Invalid assignment: RPr expects RPr or nil"; + end end; function CtrlPr.ReadXmlChildDel(): Del; @@ -2295,23 +3365,42 @@ begin {self.}XmlChildDel := new Del(self, {self.}Prefix, "del"); container_.Set({self.}XmlChildDel); end - return {self.}XmlChildDel; + return {self.}XmlChildDel and not {self.}XmlChildDel.Removed ? {self.}XmlChildDel : fallback_.Del; end; -function SSup.Create();overload; +function CtrlPr.WriteXmlChildDel(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "sSup"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDel) then + {self.}RemoveChild({self.}XmlChildDel); + end + else if v is class(Del) then + begin + v.Parent := self; + {self.}XmlChildDel := v; + container_.Set({self.}XmlChildDel); + end + else begin + raise "Invalid assignment: Del expects Del or nil"; + end end; -function SSup.Create(_node: XmlNode);overload; +function SSup.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "sSup"); end; -function SSup.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SSup.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SSup.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SSup.Init();override; @@ -2332,7 +3421,7 @@ function SSup.Copy(_obj: SSup);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSSupPr) then {self.}SSupPr.Copy(_obj.XmlChildSSupPr); if not ifnil(_obj.XmlChildE) then @@ -2342,6 +3431,23 @@ begin tslassigning := tslassigning_backup; end; +function SSup.Clone(): SSup;override; +begin + obj := new SSup(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sSupPr": obj.SSupPr := element.Clone(); + pre + "e": obj.E := element.Clone(); + pre + "sup": obj.Sup := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SSup.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSSupPr) then @@ -2359,7 +3465,26 @@ begin {self.}XmlChildSSupPr := new SSupPr(self, {self.}Prefix, "sSupPr"); container_.Set({self.}XmlChildSSupPr); end - return {self.}XmlChildSSupPr; + return {self.}XmlChildSSupPr and not {self.}XmlChildSSupPr.Removed ? {self.}XmlChildSSupPr : fallback_.SSupPr; +end; + +function SSup.WriteXmlChildSSupPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSSupPr) then + {self.}RemoveChild({self.}XmlChildSSupPr); + end + else if v is class(SSupPr) then + begin + v.Parent := self; + {self.}XmlChildSSupPr := v; + container_.Set({self.}XmlChildSSupPr); + end + else begin + raise "Invalid assignment: SSupPr expects SSupPr or nil"; + end end; function SSup.ReadXmlChildE(): E; @@ -2369,7 +3494,26 @@ begin {self.}XmlChildE := new E(self, {self.}Prefix, "e"); container_.Set({self.}XmlChildE); end - return {self.}XmlChildE; + return {self.}XmlChildE and not {self.}XmlChildE.Removed ? {self.}XmlChildE : fallback_.E; +end; + +function SSup.WriteXmlChildE(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildE) then + {self.}RemoveChild({self.}XmlChildE); + end + else if v is class(E) then + begin + v.Parent := self; + {self.}XmlChildE := v; + container_.Set({self.}XmlChildE); + end + else begin + raise "Invalid assignment: E expects E or nil"; + end end; function SSup.ReadXmlChildSup(): Sup; @@ -2379,23 +3523,42 @@ begin {self.}XmlChildSup := new Sup(self, {self.}Prefix, "sup"); container_.Set({self.}XmlChildSup); end - return {self.}XmlChildSup; + return {self.}XmlChildSup and not {self.}XmlChildSup.Removed ? {self.}XmlChildSup : fallback_.Sup; end; -function SSupPr.Create();overload; +function SSup.WriteXmlChildSup(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "sSupPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSup) then + {self.}RemoveChild({self.}XmlChildSup); + end + else if v is class(Sup) then + begin + v.Parent := self; + {self.}XmlChildSup := v; + container_.Set({self.}XmlChildSup); + end + else begin + raise "Invalid assignment: Sup expects Sup or nil"; + end end; -function SSupPr.Create(_node: XmlNode);overload; +function SSupPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "sSupPr"); end; -function SSupPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SSupPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SSupPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SSupPr.Init();override; @@ -2414,12 +3577,27 @@ function SSupPr.Copy(_obj: SSupPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCtrlPr) then {self.}CtrlPr.Copy(_obj.XmlChildCtrlPr); tslassigning := tslassigning_backup; end; +function SSupPr.Clone(): SSupPr;override; +begin + obj := new SSupPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SSupPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCtrlPr) then @@ -2433,23 +3611,42 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function F.Create();overload; +function SSupPr.WriteXmlChildCtrlPr(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "f"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end end; -function F.Create(_node: XmlNode);overload; +function F.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "f"); end; -function F.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function F.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function F.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function F.Init();override; @@ -2470,7 +3667,7 @@ function F.Copy(_obj: F);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildFPr) then {self.}FPr.Copy(_obj.XmlChildFPr); if not ifnil(_obj.XmlChildNum) then @@ -2480,6 +3677,23 @@ begin tslassigning := tslassigning_backup; end; +function F.Clone(): F;override; +begin + obj := new F(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "fPr": obj.FPr := element.Clone(); + pre + "num": obj.Num := element.Clone(); + pre + "den": obj.Den := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function F.ConvertToPoint();override; begin if not ifnil({self.}XmlChildFPr) then @@ -2497,7 +3711,26 @@ begin {self.}XmlChildFPr := new FPr(self, {self.}Prefix, "fPr"); container_.Set({self.}XmlChildFPr); end - return {self.}XmlChildFPr; + return {self.}XmlChildFPr and not {self.}XmlChildFPr.Removed ? {self.}XmlChildFPr : fallback_.FPr; +end; + +function F.WriteXmlChildFPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFPr) then + {self.}RemoveChild({self.}XmlChildFPr); + end + else if v is class(FPr) then + begin + v.Parent := self; + {self.}XmlChildFPr := v; + container_.Set({self.}XmlChildFPr); + end + else begin + raise "Invalid assignment: FPr expects FPr or nil"; + end end; function F.ReadXmlChildNum(): Num; @@ -2507,7 +3740,26 @@ begin {self.}XmlChildNum := new Num(self, {self.}Prefix, "num"); container_.Set({self.}XmlChildNum); end - return {self.}XmlChildNum; + return {self.}XmlChildNum and not {self.}XmlChildNum.Removed ? {self.}XmlChildNum : fallback_.Num; +end; + +function F.WriteXmlChildNum(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNum) then + {self.}RemoveChild({self.}XmlChildNum); + end + else if v is class(Num) then + begin + v.Parent := self; + {self.}XmlChildNum := v; + container_.Set({self.}XmlChildNum); + end + else begin + raise "Invalid assignment: Num expects Num or nil"; + end end; function F.ReadXmlChildDen(): Den; @@ -2517,23 +3769,42 @@ begin {self.}XmlChildDen := new Den(self, {self.}Prefix, "den"); container_.Set({self.}XmlChildDen); end - return {self.}XmlChildDen; + return {self.}XmlChildDen and not {self.}XmlChildDen.Removed ? {self.}XmlChildDen : fallback_.Den; end; -function FPr.Create();overload; +function F.WriteXmlChildDen(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "fPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDen) then + {self.}RemoveChild({self.}XmlChildDen); + end + else if v is class(Den) then + begin + v.Parent := self; + {self.}XmlChildDen := v; + container_.Set({self.}XmlChildDen); + end + else begin + raise "Invalid assignment: Den expects Den or nil"; + end end; -function FPr.Create(_node: XmlNode);overload; +function FPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "fPr"); end; -function FPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function FPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FPr.Init();override; @@ -2553,7 +3824,7 @@ function FPr.Copy(_obj: FPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildType) then {self.}Type.Copy(_obj.XmlChildType); if not ifnil(_obj.XmlChildCtrlPr) then @@ -2561,6 +3832,22 @@ begin tslassigning := tslassigning_backup; end; +function FPr.Clone(): FPr;override; +begin + obj := new FPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "type": obj.Type := element.Clone(); + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function FPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildType) then @@ -2576,7 +3863,26 @@ begin {self.}XmlChildType := new PureMVal(self, {self.}Prefix, "type"); container_.Set({self.}XmlChildType); end - return {self.}XmlChildType; + return {self.}XmlChildType and not {self.}XmlChildType.Removed ? {self.}XmlChildType : fallback_.Type; +end; + +function FPr.WriteXmlChildType(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildType) then + {self.}RemoveChild({self.}XmlChildType); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildType := v; + container_.Set({self.}XmlChildType); + end + else begin + raise "Invalid assignment: Type expects PureMVal or nil"; + end end; function FPr.ReadXmlChildCtrlPr(): CtrlPr; @@ -2586,23 +3892,42 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function Rad.Create();overload; +function FPr.WriteXmlChildCtrlPr(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "rad"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end end; -function Rad.Create(_node: XmlNode);overload; +function Rad.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "rad"); end; -function Rad.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Rad.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Rad.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Rad.Init();override; @@ -2623,7 +3948,7 @@ function Rad.Copy(_obj: Rad);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildRadPr) then {self.}RadPr.Copy(_obj.XmlChildRadPr); if not ifnil(_obj.XmlChildDeg) then @@ -2633,6 +3958,23 @@ begin tslassigning := tslassigning_backup; end; +function Rad.Clone(): Rad;override; +begin + obj := new Rad(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "radPr": obj.RadPr := element.Clone(); + pre + "deg": obj.Deg := element.Clone(); + pre + "e": obj.E := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Rad.ConvertToPoint();override; begin if not ifnil({self.}XmlChildRadPr) then @@ -2650,7 +3992,26 @@ begin {self.}XmlChildRadPr := new RadPr(self, {self.}Prefix, "radPr"); container_.Set({self.}XmlChildRadPr); end - return {self.}XmlChildRadPr; + return {self.}XmlChildRadPr and not {self.}XmlChildRadPr.Removed ? {self.}XmlChildRadPr : fallback_.RadPr; +end; + +function Rad.WriteXmlChildRadPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildRadPr) then + {self.}RemoveChild({self.}XmlChildRadPr); + end + else if v is class(RadPr) then + begin + v.Parent := self; + {self.}XmlChildRadPr := v; + container_.Set({self.}XmlChildRadPr); + end + else begin + raise "Invalid assignment: RadPr expects RadPr or nil"; + end end; function Rad.ReadXmlChildDeg(): Deg; @@ -2660,7 +4021,26 @@ begin {self.}XmlChildDeg := new Deg(self, {self.}Prefix, "deg"); container_.Set({self.}XmlChildDeg); end - return {self.}XmlChildDeg; + return {self.}XmlChildDeg and not {self.}XmlChildDeg.Removed ? {self.}XmlChildDeg : fallback_.Deg; +end; + +function Rad.WriteXmlChildDeg(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDeg) then + {self.}RemoveChild({self.}XmlChildDeg); + end + else if v is class(Deg) then + begin + v.Parent := self; + {self.}XmlChildDeg := v; + container_.Set({self.}XmlChildDeg); + end + else begin + raise "Invalid assignment: Deg expects Deg or nil"; + end end; function Rad.ReadXmlChildE(): E; @@ -2670,23 +4050,42 @@ begin {self.}XmlChildE := new E(self, {self.}Prefix, "e"); container_.Set({self.}XmlChildE); end - return {self.}XmlChildE; + return {self.}XmlChildE and not {self.}XmlChildE.Removed ? {self.}XmlChildE : fallback_.E; end; -function RadPr.Create();overload; +function Rad.WriteXmlChildE(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "radPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildE) then + {self.}RemoveChild({self.}XmlChildE); + end + else if v is class(E) then + begin + v.Parent := self; + {self.}XmlChildE := v; + container_.Set({self.}XmlChildE); + end + else begin + raise "Invalid assignment: E expects E or nil"; + end end; -function RadPr.Create(_node: XmlNode);overload; +function RadPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "radPr"); end; -function RadPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function RadPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function RadPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function RadPr.Init();override; @@ -2706,7 +4105,7 @@ function RadPr.Copy(_obj: RadPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildDegHide) then {self.}DegHide.Copy(_obj.XmlChildDegHide); if not ifnil(_obj.XmlChildCtrlPr) then @@ -2714,6 +4113,22 @@ begin tslassigning := tslassigning_backup; end; +function RadPr.Clone(): RadPr;override; +begin + obj := new RadPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "degHide": obj.DegHide := element.Clone(); + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function RadPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildDegHide) then @@ -2729,7 +4144,26 @@ begin {self.}XmlChildDegHide := new PureMVal(self, {self.}Prefix, "degHide"); container_.Set({self.}XmlChildDegHide); end - return {self.}XmlChildDegHide; + return {self.}XmlChildDegHide and not {self.}XmlChildDegHide.Removed ? {self.}XmlChildDegHide : fallback_.DegHide; +end; + +function RadPr.WriteXmlChildDegHide(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildDegHide) then + {self.}RemoveChild({self.}XmlChildDegHide); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildDegHide := v; + container_.Set({self.}XmlChildDegHide); + end + else begin + raise "Invalid assignment: DegHide expects PureMVal or nil"; + end end; function RadPr.ReadXmlChildCtrlPr(): CtrlPr; @@ -2739,23 +4173,42 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function SSub.Create();overload; +function RadPr.WriteXmlChildCtrlPr(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "sSub"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end end; -function SSub.Create(_node: XmlNode);overload; +function SSub.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "sSub"); end; -function SSub.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SSub.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SSub.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SSub.Init();override; @@ -2776,7 +4229,7 @@ function SSub.Copy(_obj: SSub);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildSSubPr) then {self.}SSubPr.Copy(_obj.XmlChildSSubPr); if not ifnil(_obj.XmlChildE) then @@ -2786,6 +4239,23 @@ begin tslassigning := tslassigning_backup; end; +function SSub.Clone(): SSub;override; +begin + obj := new SSub(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "sSubPr": obj.SSubPr := element.Clone(); + pre + "e": obj.E := element.Clone(); + pre + "sub": obj.Sub := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SSub.ConvertToPoint();override; begin if not ifnil({self.}XmlChildSSubPr) then @@ -2803,7 +4273,26 @@ begin {self.}XmlChildSSubPr := new SSubPr(self, {self.}Prefix, "sSubPr"); container_.Set({self.}XmlChildSSubPr); end - return {self.}XmlChildSSubPr; + return {self.}XmlChildSSubPr and not {self.}XmlChildSSubPr.Removed ? {self.}XmlChildSSubPr : fallback_.SSubPr; +end; + +function SSub.WriteXmlChildSSubPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSSubPr) then + {self.}RemoveChild({self.}XmlChildSSubPr); + end + else if v is class(SSubPr) then + begin + v.Parent := self; + {self.}XmlChildSSubPr := v; + container_.Set({self.}XmlChildSSubPr); + end + else begin + raise "Invalid assignment: SSubPr expects SSubPr or nil"; + end end; function SSub.ReadXmlChildE(): E; @@ -2813,7 +4302,26 @@ begin {self.}XmlChildE := new E(self, {self.}Prefix, "e"); container_.Set({self.}XmlChildE); end - return {self.}XmlChildE; + return {self.}XmlChildE and not {self.}XmlChildE.Removed ? {self.}XmlChildE : fallback_.E; +end; + +function SSub.WriteXmlChildE(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildE) then + {self.}RemoveChild({self.}XmlChildE); + end + else if v is class(E) then + begin + v.Parent := self; + {self.}XmlChildE := v; + container_.Set({self.}XmlChildE); + end + else begin + raise "Invalid assignment: E expects E or nil"; + end end; function SSub.ReadXmlChildSub(): Sub; @@ -2823,23 +4331,42 @@ begin {self.}XmlChildSub := new Sub(self, {self.}Prefix, "sub"); container_.Set({self.}XmlChildSub); end - return {self.}XmlChildSub; + return {self.}XmlChildSub and not {self.}XmlChildSub.Removed ? {self.}XmlChildSub : fallback_.Sub; end; -function SSubPr.Create();overload; +function SSub.WriteXmlChildSub(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "sSubPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSub) then + {self.}RemoveChild({self.}XmlChildSub); + end + else if v is class(Sub) then + begin + v.Parent := self; + {self.}XmlChildSub := v; + container_.Set({self.}XmlChildSub); + end + else begin + raise "Invalid assignment: Sub expects Sub or nil"; + end end; -function SSubPr.Create(_node: XmlNode);overload; +function SSubPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "sSubPr"); end; -function SSubPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function SSubPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function SSubPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function SSubPr.Init();override; @@ -2858,12 +4385,27 @@ function SSubPr.Copy(_obj: SSubPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCtrlPr) then {self.}CtrlPr.Copy(_obj.XmlChildCtrlPr); tslassigning := tslassigning_backup; end; +function SSubPr.Clone(): SSubPr;override; +begin + obj := new SSubPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function SSubPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCtrlPr) then @@ -2877,23 +4419,42 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function Nary.Create();overload; +function SSubPr.WriteXmlChildCtrlPr(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "nary"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end end; -function Nary.Create(_node: XmlNode);overload; +function Nary.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "nary"); end; -function Nary.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Nary.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Nary.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Nary.Init();override; @@ -2915,7 +4476,7 @@ function Nary.Copy(_obj: Nary);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildNaryPr) then {self.}NaryPr.Copy(_obj.XmlChildNaryPr); if not ifnil(_obj.XmlChildSub) then @@ -2927,6 +4488,24 @@ begin tslassigning := tslassigning_backup; end; +function Nary.Clone(): Nary;override; +begin + obj := new Nary(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "naryPr": obj.NaryPr := element.Clone(); + pre + "sub": obj.Sub := element.Clone(); + pre + "sup": obj.Sup := element.Clone(); + pre + "e": obj.E := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Nary.ConvertToPoint();override; begin if not ifnil({self.}XmlChildNaryPr) then @@ -2946,7 +4525,26 @@ begin {self.}XmlChildNaryPr := new NaryPr(self, {self.}Prefix, "naryPr"); container_.Set({self.}XmlChildNaryPr); end - return {self.}XmlChildNaryPr; + return {self.}XmlChildNaryPr and not {self.}XmlChildNaryPr.Removed ? {self.}XmlChildNaryPr : fallback_.NaryPr; +end; + +function Nary.WriteXmlChildNaryPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildNaryPr) then + {self.}RemoveChild({self.}XmlChildNaryPr); + end + else if v is class(NaryPr) then + begin + v.Parent := self; + {self.}XmlChildNaryPr := v; + container_.Set({self.}XmlChildNaryPr); + end + else begin + raise "Invalid assignment: NaryPr expects NaryPr or nil"; + end end; function Nary.ReadXmlChildSub(): Sub; @@ -2956,7 +4554,26 @@ begin {self.}XmlChildSub := new Sub(self, {self.}Prefix, "sub"); container_.Set({self.}XmlChildSub); end - return {self.}XmlChildSub; + return {self.}XmlChildSub and not {self.}XmlChildSub.Removed ? {self.}XmlChildSub : fallback_.Sub; +end; + +function Nary.WriteXmlChildSub(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSub) then + {self.}RemoveChild({self.}XmlChildSub); + end + else if v is class(Sub) then + begin + v.Parent := self; + {self.}XmlChildSub := v; + container_.Set({self.}XmlChildSub); + end + else begin + raise "Invalid assignment: Sub expects Sub or nil"; + end end; function Nary.ReadXmlChildSup(): Sup; @@ -2966,7 +4583,26 @@ begin {self.}XmlChildSup := new Sup(self, {self.}Prefix, "sup"); container_.Set({self.}XmlChildSup); end - return {self.}XmlChildSup; + return {self.}XmlChildSup and not {self.}XmlChildSup.Removed ? {self.}XmlChildSup : fallback_.Sup; +end; + +function Nary.WriteXmlChildSup(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSup) then + {self.}RemoveChild({self.}XmlChildSup); + end + else if v is class(Sup) then + begin + v.Parent := self; + {self.}XmlChildSup := v; + container_.Set({self.}XmlChildSup); + end + else begin + raise "Invalid assignment: Sup expects Sup or nil"; + end end; function Nary.ReadXmlChildE(): E; @@ -2976,23 +4612,42 @@ begin {self.}XmlChildE := new E(self, {self.}Prefix, "e"); container_.Set({self.}XmlChildE); end - return {self.}XmlChildE; + return {self.}XmlChildE and not {self.}XmlChildE.Removed ? {self.}XmlChildE : fallback_.E; end; -function NaryPr.Create();overload; +function Nary.WriteXmlChildE(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "naryPr"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildE) then + {self.}RemoveChild({self.}XmlChildE); + end + else if v is class(E) then + begin + v.Parent := self; + {self.}XmlChildE := v; + container_.Set({self.}XmlChildE); + end + else begin + raise "Invalid assignment: E expects E or nil"; + end end; -function NaryPr.Create(_node: XmlNode);overload; +function NaryPr.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "naryPr"); end; -function NaryPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function NaryPr.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function NaryPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function NaryPr.Init();override; @@ -3016,7 +4671,7 @@ function NaryPr.Copy(_obj: NaryPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildChr) then {self.}Chr.Copy(_obj.XmlChildChr); if not ifnil(_obj.XmlChildGrow) then @@ -3032,6 +4687,26 @@ begin tslassigning := tslassigning_backup; end; +function NaryPr.Clone(): NaryPr;override; +begin + obj := new NaryPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "chr": obj.Chr := element.Clone(); + pre + "grow": obj.Grow := element.Clone(); + pre + "subHide": obj.SubHide := element.Clone(); + pre + "supHide": obj.SupHide := element.Clone(); + pre + "limLoc": obj.LimLoc := element.Clone(); + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function NaryPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildChr) then @@ -3055,7 +4730,26 @@ begin {self.}XmlChildChr := new PureMVal(self, {self.}Prefix, "chr"); container_.Set({self.}XmlChildChr); end - return {self.}XmlChildChr; + return {self.}XmlChildChr and not {self.}XmlChildChr.Removed ? {self.}XmlChildChr : fallback_.Chr; +end; + +function NaryPr.WriteXmlChildChr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildChr) then + {self.}RemoveChild({self.}XmlChildChr); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildChr := v; + container_.Set({self.}XmlChildChr); + end + else begin + raise "Invalid assignment: Chr expects PureMVal or nil"; + end end; function NaryPr.ReadXmlChildGrow(): PureMVal; @@ -3065,7 +4759,26 @@ begin {self.}XmlChildGrow := new PureMVal(self, {self.}Prefix, "grow"); container_.Set({self.}XmlChildGrow); end - return {self.}XmlChildGrow; + return {self.}XmlChildGrow and not {self.}XmlChildGrow.Removed ? {self.}XmlChildGrow : fallback_.Grow; +end; + +function NaryPr.WriteXmlChildGrow(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildGrow) then + {self.}RemoveChild({self.}XmlChildGrow); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildGrow := v; + container_.Set({self.}XmlChildGrow); + end + else begin + raise "Invalid assignment: Grow expects PureMVal or nil"; + end end; function NaryPr.ReadXmlChildSubHide(): PureMVal; @@ -3075,7 +4788,26 @@ begin {self.}XmlChildSubHide := new PureMVal(self, {self.}Prefix, "subHide"); container_.Set({self.}XmlChildSubHide); end - return {self.}XmlChildSubHide; + return {self.}XmlChildSubHide and not {self.}XmlChildSubHide.Removed ? {self.}XmlChildSubHide : fallback_.SubHide; +end; + +function NaryPr.WriteXmlChildSubHide(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSubHide) then + {self.}RemoveChild({self.}XmlChildSubHide); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildSubHide := v; + container_.Set({self.}XmlChildSubHide); + end + else begin + raise "Invalid assignment: SubHide expects PureMVal or nil"; + end end; function NaryPr.ReadXmlChildSupHide(): PureMVal; @@ -3085,7 +4817,26 @@ begin {self.}XmlChildSupHide := new PureMVal(self, {self.}Prefix, "supHide"); container_.Set({self.}XmlChildSupHide); end - return {self.}XmlChildSupHide; + return {self.}XmlChildSupHide and not {self.}XmlChildSupHide.Removed ? {self.}XmlChildSupHide : fallback_.SupHide; +end; + +function NaryPr.WriteXmlChildSupHide(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildSupHide) then + {self.}RemoveChild({self.}XmlChildSupHide); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildSupHide := v; + container_.Set({self.}XmlChildSupHide); + end + else begin + raise "Invalid assignment: SupHide expects PureMVal or nil"; + end end; function NaryPr.ReadXmlChildLimLoc(): PureMVal; @@ -3095,7 +4846,26 @@ begin {self.}XmlChildLimLoc := new PureMVal(self, {self.}Prefix, "limLoc"); container_.Set({self.}XmlChildLimLoc); end - return {self.}XmlChildLimLoc; + return {self.}XmlChildLimLoc and not {self.}XmlChildLimLoc.Removed ? {self.}XmlChildLimLoc : fallback_.LimLoc; +end; + +function NaryPr.WriteXmlChildLimLoc(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLimLoc) then + {self.}RemoveChild({self.}XmlChildLimLoc); + end + else if v is class(PureMVal) then + begin + v.Parent := self; + {self.}XmlChildLimLoc := v; + container_.Set({self.}XmlChildLimLoc); + end + else begin + raise "Invalid assignment: LimLoc expects PureMVal or nil"; + end end; function NaryPr.ReadXmlChildCtrlPr(): CtrlPr; @@ -3105,23 +4875,42 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function Func.Create();overload; +function NaryPr.WriteXmlChildCtrlPr(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "func"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end end; -function Func.Create(_node: XmlNode);overload; +function Func.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "func"); end; -function Func.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Func.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Func.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Func.Init();override; @@ -3142,7 +4931,7 @@ function Func.Copy(_obj: Func);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildFuncPr) then {self.}FuncPr.Copy(_obj.XmlChildFuncPr); if not ifnil(_obj.XmlChildFName) then @@ -3152,6 +4941,23 @@ begin tslassigning := tslassigning_backup; end; +function Func.Clone(): Func;override; +begin + obj := new Func(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "funcPr": obj.FuncPr := element.Clone(); + pre + "fName": obj.FName := element.Clone(); + pre + "e": obj.E := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Func.ConvertToPoint();override; begin if not ifnil({self.}XmlChildFuncPr) then @@ -3169,7 +4975,26 @@ begin {self.}XmlChildFuncPr := new FuncPr(self, {self.}Prefix, "funcPr"); container_.Set({self.}XmlChildFuncPr); end - return {self.}XmlChildFuncPr; + return {self.}XmlChildFuncPr and not {self.}XmlChildFuncPr.Removed ? {self.}XmlChildFuncPr : fallback_.FuncPr; +end; + +function Func.WriteXmlChildFuncPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFuncPr) then + {self.}RemoveChild({self.}XmlChildFuncPr); + end + else if v is class(FuncPr) then + begin + v.Parent := self; + {self.}XmlChildFuncPr := v; + container_.Set({self.}XmlChildFuncPr); + end + else begin + raise "Invalid assignment: FuncPr expects FuncPr or nil"; + end end; function Func.ReadXmlChildFName(): FName; @@ -3179,7 +5004,26 @@ begin {self.}XmlChildFName := new FName(self, {self.}Prefix, "fName"); container_.Set({self.}XmlChildFName); end - return {self.}XmlChildFName; + return {self.}XmlChildFName and not {self.}XmlChildFName.Removed ? {self.}XmlChildFName : fallback_.FName; +end; + +function Func.WriteXmlChildFName(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFName) then + {self.}RemoveChild({self.}XmlChildFName); + end + else if v is class(FName) then + begin + v.Parent := self; + {self.}XmlChildFName := v; + container_.Set({self.}XmlChildFName); + end + else begin + raise "Invalid assignment: FName expects FName or nil"; + end end; function Func.ReadXmlChildE(): E; @@ -3189,23 +5033,42 @@ begin {self.}XmlChildE := new E(self, {self.}Prefix, "e"); container_.Set({self.}XmlChildE); end - return {self.}XmlChildE; + return {self.}XmlChildE and not {self.}XmlChildE.Removed ? {self.}XmlChildE : fallback_.E; end; -function FName.Create();overload; +function Func.WriteXmlChildE(_p1: any; _p2: any); begin - {self.}Create(nil, "m", "fname"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildE) then + {self.}RemoveChild({self.}XmlChildE); + end + else if v is class(E) then + begin + v.Parent := self; + {self.}XmlChildE := v; + container_.Set({self.}XmlChildE); + end + else begin + raise "Invalid assignment: E expects E or nil"; + end end; -function FName.Create(_node: XmlNode);overload; +function FName.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "m", "fname"); end; -function FName.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FName.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function FName.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FName.Init();override; @@ -3224,10 +5087,19 @@ function FName.Copy(_obj: FName);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function FName.Clone(): FName;override; +begin + obj := new FName(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function FName.ConvertToPoint();override; begin elems := {self.}Rs(); @@ -3235,16 +5107,36 @@ begin elem.ConvertToPoint(); end; -function FName.ReadRs(_index); +function FName.ReadRs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "r", ind); end; +function FName.WriteRs(_index: integer; _value: nil_OR_R); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "r", ind, _value) then + raise format("Index out of range: Rs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rs expects nil or R"; + end +end; + function FName.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -3252,24 +5144,25 @@ end; function FName.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; -function FuncPr.Create();overload; +function FuncPr.create();overload; begin - {self.}Create(nil, "m", "funcPr"); + {self.}create(nil, "m", "funcPr"); end; -function FuncPr.Create(_node: XmlNode);overload; +function FuncPr.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function FuncPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function FuncPr.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function FuncPr.Init();override; @@ -3288,12 +5181,27 @@ function FuncPr.Copy(_obj: FuncPr);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCtrlPr) then {self.}CtrlPr.Copy(_obj.XmlChildCtrlPr); tslassigning := tslassigning_backup; end; +function FuncPr.Clone(): FuncPr;override; +begin + obj := new FuncPr(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function FuncPr.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCtrlPr) then @@ -3307,23 +5215,42 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function CoreProperties.Create();overload; +function FuncPr.WriteXmlChildCtrlPr(_p1: any; _p2: any); begin - {self.}Create(nil, "cp", "coreProperties"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end end; -function CoreProperties.Create(_node: XmlNode);overload; +function CoreProperties.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "cp", "coreProperties"); end; -function CoreProperties.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function CoreProperties.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function CoreProperties.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function CoreProperties.Init();override; @@ -3351,7 +5278,7 @@ function CoreProperties.Copy(_obj: CoreProperties);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTitle) then {self.}Title.Copy(_obj.XmlChildTitle); if not ifnil(_obj.XmlChildSubject) then @@ -3375,16 +5302,32 @@ begin tslassigning := tslassigning_backup; end; +function CoreProperties.Clone(): CoreProperties;override; +begin + obj := new CoreProperties(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "dc:title": obj.Title := element.Clone(); + "dc:subject": obj.Subject := element.Clone(); + "dc:creator": obj.Creator := element.Clone(); + "cp:keywords": obj.Keywords := element.Clone(); + "cp:description": obj.Description := element.Clone(); + "cp:lastModifiedBy": obj.LastModifiedBy := element.Clone(); + "cp:revision": obj.Revision := element.Clone(); + "cp:lastPrinted": obj.LastPrinted := element.Clone(); + "dcterms:created": obj.Created := element.Clone(); + "dcterms:modified": obj.Modified := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function CoreProperties.ConvertToPoint();override; begin - if not ifnil({self.}XmlChildTitle) then - if not ifnil({self.}XmlChildSubject) then - if not ifnil({self.}XmlChildCreator) then - if not ifnil({self.}XmlChildKeywords) then - if not ifnil({self.}XmlChildDescription) then - if not ifnil({self.}XmlChildLastModifiedBy) then - if not ifnil({self.}XmlChildRevision) then - if not ifnil({self.}XmlChildLastPrinted) then if not ifnil({self.}XmlChildCreated) then {self.}XmlChildCreated.ConvertToPoint(); if not ifnil({self.}XmlChildModified) then @@ -3398,7 +5341,25 @@ begin {self.}XmlChildTitle := new OpenXmlTextElement(self, "dc", "title"); container_.Set({self.}XmlChildTitle); end - return {self.}XmlChildTitle; + return {self.}XmlChildTitle and not {self.}XmlChildTitle.Removed ? {self.}XmlChildTitle : fallback_.Title; +end; + +function CoreProperties.WriteXmlChildTitle(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildTitle) then + {self.}RemoveChild({self.}XmlChildTitle); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildTitle := _value; + container_.Set({self.}XmlChildTitle); + end + else begin + raise "Invalid assignment: Title expects nil or OpenXmlTextElement"; + end end; function CoreProperties.ReadXmlChildSubject(); @@ -3408,7 +5369,25 @@ begin {self.}XmlChildSubject := new OpenXmlTextElement(self, "dc", "subject"); container_.Set({self.}XmlChildSubject); end - return {self.}XmlChildSubject; + return {self.}XmlChildSubject and not {self.}XmlChildSubject.Removed ? {self.}XmlChildSubject : fallback_.Subject; +end; + +function CoreProperties.WriteXmlChildSubject(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildSubject) then + {self.}RemoveChild({self.}XmlChildSubject); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildSubject := _value; + container_.Set({self.}XmlChildSubject); + end + else begin + raise "Invalid assignment: Subject expects nil or OpenXmlTextElement"; + end end; function CoreProperties.ReadXmlChildCreator(); @@ -3418,7 +5397,25 @@ begin {self.}XmlChildCreator := new OpenXmlTextElement(self, "dc", "creator"); container_.Set({self.}XmlChildCreator); end - return {self.}XmlChildCreator; + return {self.}XmlChildCreator and not {self.}XmlChildCreator.Removed ? {self.}XmlChildCreator : fallback_.Creator; +end; + +function CoreProperties.WriteXmlChildCreator(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildCreator) then + {self.}RemoveChild({self.}XmlChildCreator); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildCreator := _value; + container_.Set({self.}XmlChildCreator); + end + else begin + raise "Invalid assignment: Creator expects nil or OpenXmlTextElement"; + end end; function CoreProperties.ReadXmlChildKeywords(); @@ -3428,7 +5425,25 @@ begin {self.}XmlChildKeywords := new OpenXmlTextElement(self, "cp", "keywords"); container_.Set({self.}XmlChildKeywords); end - return {self.}XmlChildKeywords; + return {self.}XmlChildKeywords and not {self.}XmlChildKeywords.Removed ? {self.}XmlChildKeywords : fallback_.Keywords; +end; + +function CoreProperties.WriteXmlChildKeywords(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildKeywords) then + {self.}RemoveChild({self.}XmlChildKeywords); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildKeywords := _value; + container_.Set({self.}XmlChildKeywords); + end + else begin + raise "Invalid assignment: Keywords expects nil or OpenXmlTextElement"; + end end; function CoreProperties.ReadXmlChildDescription(); @@ -3438,7 +5453,25 @@ begin {self.}XmlChildDescription := new OpenXmlTextElement(self, "cp", "description"); container_.Set({self.}XmlChildDescription); end - return {self.}XmlChildDescription; + return {self.}XmlChildDescription and not {self.}XmlChildDescription.Removed ? {self.}XmlChildDescription : fallback_.Description; +end; + +function CoreProperties.WriteXmlChildDescription(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildDescription) then + {self.}RemoveChild({self.}XmlChildDescription); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildDescription := _value; + container_.Set({self.}XmlChildDescription); + end + else begin + raise "Invalid assignment: Description expects nil or OpenXmlTextElement"; + end end; function CoreProperties.ReadXmlChildLastModifiedBy(); @@ -3448,7 +5481,25 @@ begin {self.}XmlChildLastModifiedBy := new OpenXmlTextElement(self, "cp", "lastModifiedBy"); container_.Set({self.}XmlChildLastModifiedBy); end - return {self.}XmlChildLastModifiedBy; + return {self.}XmlChildLastModifiedBy and not {self.}XmlChildLastModifiedBy.Removed ? {self.}XmlChildLastModifiedBy : fallback_.LastModifiedBy; +end; + +function CoreProperties.WriteXmlChildLastModifiedBy(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildLastModifiedBy) then + {self.}RemoveChild({self.}XmlChildLastModifiedBy); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildLastModifiedBy := _value; + container_.Set({self.}XmlChildLastModifiedBy); + end + else begin + raise "Invalid assignment: LastModifiedBy expects nil or OpenXmlTextElement"; + end end; function CoreProperties.ReadXmlChildRevision(); @@ -3458,7 +5509,25 @@ begin {self.}XmlChildRevision := new OpenXmlTextElement(self, "cp", "revision"); container_.Set({self.}XmlChildRevision); end - return {self.}XmlChildRevision; + return {self.}XmlChildRevision and not {self.}XmlChildRevision.Removed ? {self.}XmlChildRevision : fallback_.Revision; +end; + +function CoreProperties.WriteXmlChildRevision(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildRevision) then + {self.}RemoveChild({self.}XmlChildRevision); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildRevision := _value; + container_.Set({self.}XmlChildRevision); + end + else begin + raise "Invalid assignment: Revision expects nil or OpenXmlTextElement"; + end end; function CoreProperties.ReadXmlChildLastPrinted(); @@ -3468,7 +5537,25 @@ begin {self.}XmlChildLastPrinted := new OpenXmlTextElement(self, "cp", "lastPrinted"); container_.Set({self.}XmlChildLastPrinted); end - return {self.}XmlChildLastPrinted; + return {self.}XmlChildLastPrinted and not {self.}XmlChildLastPrinted.Removed ? {self.}XmlChildLastPrinted : fallback_.LastPrinted; +end; + +function CoreProperties.WriteXmlChildLastPrinted(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildLastPrinted) then + {self.}RemoveChild({self.}XmlChildLastPrinted); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildLastPrinted := _value; + container_.Set({self.}XmlChildLastPrinted); + end + else begin + raise "Invalid assignment: LastPrinted expects nil or OpenXmlTextElement"; + end end; function CoreProperties.ReadXmlChildCreated(); @@ -3478,7 +5565,25 @@ begin {self.}XmlChildCreated := new Created(self, "dcterms", "created"); container_.Set({self.}XmlChildCreated); end - return {self.}XmlChildCreated; + return {self.}XmlChildCreated and not {self.}XmlChildCreated.Removed ? {self.}XmlChildCreated : fallback_.Created; +end; + +function CoreProperties.WriteXmlChildCreated(_value: nil_or_OpenXmlTextElement); +begin + if ifnil(_value) then + begin + if ifObj({self.}XmlChildCreated) then + {self.}RemoveChild({self.}XmlChildCreated); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildCreated := _value; + container_.Set({self.}XmlChildCreated); + end + else begin + raise "Invalid assignment: Created expects nil or OpenXmlTextElement"; + end end; function CoreProperties.ReadXmlChildModified(); @@ -3488,23 +5593,41 @@ begin {self.}XmlChildModified := new Modified(self, "dcterms", "modified"); container_.Set({self.}XmlChildModified); end - return {self.}XmlChildModified; + return {self.}XmlChildModified and not {self.}XmlChildModified.Removed ? {self.}XmlChildModified : fallback_.Modified; end; -function Created.Create();overload; +function CoreProperties.WriteXmlChildModified(_value: nil_or_OpenXmlTextElement); begin - {self.}Create(nil, "dcterms", "created"); + if ifnil(_value) then + begin + if ifObj({self.}XmlChildModified) then + {self.}RemoveChild({self.}XmlChildModified); + end + else if _value is class(OpenXmlTextElement) then + begin + _value.Parent := self; + {self.}XmlChildModified := _value; + container_.Set({self.}XmlChildModified); + end + else begin + raise "Invalid assignment: Modified expects nil or OpenXmlTextElement"; + end end; -function Created.Create(_node: XmlNode);overload; +function Created.create();overload; begin - class(OpenXmlTextElement).Create(_node: XmlNode); + {self.}create(nil, "dcterms", "created"); end; -function Created.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Created.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Created.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlTextElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Created.Init();override; @@ -3520,12 +5643,22 @@ function Created.Copy(_obj: Created);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlTextElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; tslassigning := tslassigning_backup; end; +function Created.Clone(): Created;override; +begin + obj := new Created(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Text) then + obj.Text := {self.}Text; + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + return obj; +end; + function Created.ConvertToPoint();override; begin @@ -3533,33 +5666,33 @@ end; function Created.ReadXmlAttrType(); begin - return {self.}XmlAttrType.Value; + return ifnil({self.}XmlAttrType.Value) ? fallback_.XmlAttrType.Value : {self.}XmlAttrType.Value; end; -function Created.WriteXmlAttrType(_value); +function Created.WriteXmlAttrType(_value: any); begin if ifnil({self.}XmlAttrType) then begin {self.}XmlAttrType := new OpenXmlAttribute("xsi", "type", nil); - attributes_[length(attributes_)] := {self.}XmlAttrType; + attributes_["xsi:type"] := {self.}XmlAttrType; end {self.}XmlAttrType.Value := _value; end; -function Modified.Create();overload; +function Modified.create();overload; begin - {self.}Create(nil, "dcterms", "modified"); + {self.}create(nil, "dcterms", "modified"); end; -function Modified.Create(_node: XmlNode);overload; +function Modified.create(_node: XmlNode);overload; begin - class(OpenXmlTextElement).Create(_node: XmlNode); + inherited create(_node); end; -function Modified.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Modified.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlTextElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Modified.Init();override; @@ -3575,12 +5708,22 @@ function Modified.Copy(_obj: Modified);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlTextElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; tslassigning := tslassigning_backup; end; +function Modified.Clone(): Modified;override; +begin + obj := new Modified(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Text) then + obj.Text := {self.}Text; + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + return obj; +end; + function Modified.ConvertToPoint();override; begin @@ -3588,33 +5731,33 @@ end; function Modified.ReadXmlAttrType(); begin - return {self.}XmlAttrType.Value; + return ifnil({self.}XmlAttrType.Value) ? fallback_.XmlAttrType.Value : {self.}XmlAttrType.Value; end; -function Modified.WriteXmlAttrType(_value); +function Modified.WriteXmlAttrType(_value: any); begin if ifnil({self.}XmlAttrType) then begin {self.}XmlAttrType := new OpenXmlAttribute("xsi", "type", nil); - attributes_[length(attributes_)] := {self.}XmlAttrType; + attributes_["xsi:type"] := {self.}XmlAttrType; end {self.}XmlAttrType.Value := _value; end; -function Relationships.Create();overload; +function Relationships.create();overload; begin - {self.}Create(nil, "", "Relationships"); + {self.}create(nil, "", "Relationships"); end; -function Relationships.Create(_node: XmlNode);overload; +function Relationships.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Relationships.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Relationships.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Relationships.Init();override; @@ -3633,10 +5776,19 @@ function Relationships.Copy(_obj: Relationships);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function Relationships.Clone(): Relationships;override; +begin + obj := new Relationships(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Relationships.ConvertToPoint();override; begin elems := {self.}Relationships(); @@ -3644,16 +5796,36 @@ begin elem.ConvertToPoint(); end; -function Relationships.ReadRelationships(_index); +function Relationships.ReadRelationships(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get("Relationship", ind); end; +function Relationships.WriteRelationships(_index: integer; _value: nil_OR_Relationship); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRelationships(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "Relationship", ind, _value) then + raise format("Index out of range: Relationships[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Relationships expects nil or Relationship"; + end +end; + function Relationships.AddRelationship(): Relationship; begin obj := new Relationship(self, "", "Relationship"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -3661,24 +5833,25 @@ end; function Relationships.AppendRelationship(): Relationship; begin obj := new Relationship(self, "", "Relationship"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Relationship.Create();overload; +function Relationship.create();overload; begin - {self.}Create(nil, "", "Relationship"); + {self.}create(nil, "", "Relationship"); end; -function Relationship.Create(_node: XmlNode);overload; +function Relationship.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Relationship.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Relationship.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Relationship.Init();override; @@ -3699,7 +5872,7 @@ function Relationship.Copy(_obj: Relationship);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.Type) then @@ -3709,6 +5882,18 @@ begin tslassigning := tslassigning_backup; end; +function Relationship.Clone(): Relationship;override; +begin + obj := new Relationship(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + if not ifnil({self.}Target) then + obj.Target := {self.}Target; + return obj; +end; + function Relationship.ConvertToPoint();override; begin @@ -3716,63 +5901,63 @@ end; function Relationship.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function Relationship.WriteXmlAttrId(_value); +function Relationship.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("", "Id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["Id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; function Relationship.ReadXmlAttrType(); begin - return {self.}XmlAttrType.Value; + return ifnil({self.}XmlAttrType.Value) ? fallback_.XmlAttrType.Value : {self.}XmlAttrType.Value; end; -function Relationship.WriteXmlAttrType(_value); +function Relationship.WriteXmlAttrType(_value: any); begin if ifnil({self.}XmlAttrType) then begin {self.}XmlAttrType := new OpenXmlAttribute("", "Type", nil); - attributes_[length(attributes_)] := {self.}XmlAttrType; + attributes_["Type"] := {self.}XmlAttrType; end {self.}XmlAttrType.Value := _value; end; function Relationship.ReadXmlAttrTarget(); begin - return {self.}XmlAttrTarget.Value; + return ifnil({self.}XmlAttrTarget.Value) ? fallback_.XmlAttrTarget.Value : {self.}XmlAttrTarget.Value; end; -function Relationship.WriteXmlAttrTarget(_value); +function Relationship.WriteXmlAttrTarget(_value: any); begin if ifnil({self.}XmlAttrTarget) then begin {self.}XmlAttrTarget := new OpenXmlAttribute("", "Target", nil); - attributes_[length(attributes_)] := {self.}XmlAttrTarget; + attributes_["Target"] := {self.}XmlAttrTarget; end {self.}XmlAttrTarget.Value := _value; end; -function Types.Create();overload; +function Types.create();overload; begin - {self.}Create(nil, "", "Types"); + {self.}create(nil, "", "Types"); end; -function Types.Create(_node: XmlNode);overload; +function Types.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Types.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Types.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Types.Init();override; @@ -3792,10 +5977,19 @@ function Types.Copy(_obj: Types);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function Types.Clone(): Types;override; +begin + obj := new Types(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Types.ConvertToPoint();override; begin elems := {self.}Defaults(); @@ -3806,23 +6000,62 @@ begin elem.ConvertToPoint(); end; -function Types.ReadDefaults(_index); +function Types.ReadDefaults(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get("Default", ind); end; -function Types.ReadOverrides(_index); +function Types.WriteDefaults(_index: integer; _value: nil_OR_Default); +begin + if ifnil(_value) then + begin + obj := {self.}ReadDefaults(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "Default", ind, _value) then + raise format("Index out of range: Defaults[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Defaults expects nil or Default"; + end +end; + +function Types.ReadOverrides(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get("Override", ind); end; +function Types.WriteOverrides(_index: integer; _value: nil_OR__Override); +begin + if ifnil(_value) then + begin + obj := {self.}ReadOverrides(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "Override", ind, _value) then + raise format("Index out of range: Overrides[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Overrides expects nil or _Override"; + end +end; + function Types.AddDefault(): Default; begin obj := new Default(self, "", "Default"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -3830,6 +6063,7 @@ end; function Types.AddOverride(): _Override; begin obj := new _Override(self, "", "Override"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -3837,6 +6071,7 @@ end; function Types.AppendDefault(): Default; begin obj := new Default(self, "", "Default"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -3844,24 +6079,25 @@ end; function Types.AppendOverride(): _Override; begin obj := new _Override(self, "", "Override"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Default.Create();overload; +function Default.create();overload; begin - {self.}Create(nil, "", "Default"); + {self.}create(nil, "", "Default"); end; -function Default.Create(_node: XmlNode);overload; +function Default.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Default.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Default.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Default.Init();override; @@ -3881,7 +6117,7 @@ function Default.Copy(_obj: Default);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Extension) then {self.}Extension := _obj.Extension; if not ifnil(_obj.ContentType) then @@ -3889,6 +6125,16 @@ begin tslassigning := tslassigning_backup; end; +function Default.Clone(): Default;override; +begin + obj := new Default(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Extension) then + obj.Extension := {self.}Extension; + if not ifnil({self.}ContentType) then + obj.ContentType := {self.}ContentType; + return obj; +end; + function Default.ConvertToPoint();override; begin @@ -3896,48 +6142,48 @@ end; function Default.ReadXmlAttrExtension(); begin - return {self.}XmlAttrExtension.Value; + return ifnil({self.}XmlAttrExtension.Value) ? fallback_.XmlAttrExtension.Value : {self.}XmlAttrExtension.Value; end; -function Default.WriteXmlAttrExtension(_value); +function Default.WriteXmlAttrExtension(_value: any); begin if ifnil({self.}XmlAttrExtension) then begin {self.}XmlAttrExtension := new OpenXmlAttribute("", "Extension", nil); - attributes_[length(attributes_)] := {self.}XmlAttrExtension; + attributes_["Extension"] := {self.}XmlAttrExtension; end {self.}XmlAttrExtension.Value := _value; end; function Default.ReadXmlAttrContentType(); begin - return {self.}XmlAttrContentType.Value; + return ifnil({self.}XmlAttrContentType.Value) ? fallback_.XmlAttrContentType.Value : {self.}XmlAttrContentType.Value; end; -function Default.WriteXmlAttrContentType(_value); +function Default.WriteXmlAttrContentType(_value: any); begin if ifnil({self.}XmlAttrContentType) then begin {self.}XmlAttrContentType := new OpenXmlAttribute("", "ContentType", nil); - attributes_[length(attributes_)] := {self.}XmlAttrContentType; + attributes_["ContentType"] := {self.}XmlAttrContentType; end {self.}XmlAttrContentType.Value := _value; end; -function _Override.Create();overload; +function _Override.create();overload; begin - {self.}Create(nil, "", "Override"); + {self.}create(nil, "", "Override"); end; -function _Override.Create(_node: XmlNode);overload; +function _Override.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function _Override.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function _Override.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function _Override.Init();override; @@ -3957,7 +6203,7 @@ function _Override.Copy(_obj: _Override);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.PartName) then {self.}PartName := _obj.PartName; if not ifnil(_obj.ContentType) then @@ -3965,6 +6211,16 @@ begin tslassigning := tslassigning_backup; end; +function _Override.Clone(): _Override;override; +begin + obj := new _Override(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}PartName) then + obj.PartName := {self.}PartName; + if not ifnil({self.}ContentType) then + obj.ContentType := {self.}ContentType; + return obj; +end; + function _Override.ConvertToPoint();override; begin @@ -3972,48 +6228,48 @@ end; function _Override.ReadXmlAttrPartName(); begin - return {self.}XmlAttrPartName.Value; + return ifnil({self.}XmlAttrPartName.Value) ? fallback_.XmlAttrPartName.Value : {self.}XmlAttrPartName.Value; end; -function _Override.WriteXmlAttrPartName(_value); +function _Override.WriteXmlAttrPartName(_value: any); begin if ifnil({self.}XmlAttrPartName) then begin {self.}XmlAttrPartName := new OpenXmlAttribute("", "PartName", nil); - attributes_[length(attributes_)] := {self.}XmlAttrPartName; + attributes_["PartName"] := {self.}XmlAttrPartName; end {self.}XmlAttrPartName.Value := _value; end; function _Override.ReadXmlAttrContentType(); begin - return {self.}XmlAttrContentType.Value; + return ifnil({self.}XmlAttrContentType.Value) ? fallback_.XmlAttrContentType.Value : {self.}XmlAttrContentType.Value; end; -function _Override.WriteXmlAttrContentType(_value); +function _Override.WriteXmlAttrContentType(_value: any); begin if ifnil({self.}XmlAttrContentType) then begin {self.}XmlAttrContentType := new OpenXmlAttribute("", "ContentType", nil); - attributes_[length(attributes_)] := {self.}XmlAttrContentType; + attributes_["ContentType"] := {self.}XmlAttrContentType; end {self.}XmlAttrContentType.Value := _value; end; -function Num.Create();overload; +function Num.create();overload; begin - {self.}Create(nil, "m", "num"); + {self.}create(nil, "m", "num"); end; -function Num.Create(_node: XmlNode);overload; +function Num.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Num.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Num.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Num.Init();override; @@ -4040,12 +6296,27 @@ function Num.Copy(_obj: Num);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCtrlPr) then {self.}CtrlPr.Copy(_obj.XmlChildCtrlPr); tslassigning := tslassigning_backup; end; +function Num.Clone(): Num;override; +begin + obj := new Num(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Num.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCtrlPr) then @@ -4083,68 +6354,240 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function Num.ReadRs(_index); +function Num.WriteXmlChildCtrlPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end +end; + +function Num.ReadRs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "r", ind); end; -function Num.ReadDs(_index); +function Num.WriteRs(_index: integer; _value: nil_OR_R); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "r", ind, _value) then + raise format("Index out of range: Rs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rs expects nil or R"; + end +end; + +function Num.ReadDs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "d", ind); end; -function Num.ReadFs(_index); +function Num.WriteDs(_index: integer; _value: nil_OR_D); +begin + if ifnil(_value) then + begin + obj := {self.}ReadDs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "d", ind, _value) then + raise format("Index out of range: Ds[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Ds expects nil or D"; + end +end; + +function Num.ReadFs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "f", ind); end; -function Num.ReadRads(_index); +function Num.WriteFs(_index: integer; _value: nil_OR_F); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "f", ind, _value) then + raise format("Index out of range: Fs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Fs expects nil or F"; + end +end; + +function Num.ReadRads(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "rad", ind); end; -function Num.ReadSSubs(_index); +function Num.WriteRads(_index: integer; _value: nil_OR_Rad); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRads(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "rad", ind, _value) then + raise format("Index out of range: Rads[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rads expects nil or Rad"; + end +end; + +function Num.ReadSSubs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSub", ind); end; -function Num.ReadSSups(_index); +function Num.WriteSSubs(_index: integer; _value: nil_OR_SSub); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSubs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSub", ind, _value) then + raise format("Index out of range: SSubs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSubs expects nil or SSub"; + end +end; + +function Num.ReadSSups(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSup", ind); end; -function Num.ReadNaries(_index); +function Num.WriteSSups(_index: integer; _value: nil_OR_SSup); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSups(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSup", ind, _value) then + raise format("Index out of range: SSups[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSups expects nil or SSup"; + end +end; + +function Num.ReadNaries(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "nary", ind); end; -function Num.ReadFuncs(_index); +function Num.WriteNaries(_index: integer; _value: nil_OR_Nary); +begin + if ifnil(_value) then + begin + obj := {self.}ReadNaries(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "nary", ind, _value) then + raise format("Index out of range: Naries[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Naries expects nil or Nary"; + end +end; + +function Num.ReadFuncs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "func", ind); end; +function Num.WriteFuncs(_index: integer; _value: nil_OR_Func); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFuncs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "func", ind, _value) then + raise format("Index out of range: Funcs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Funcs expects nil or Func"; + end +end; + function Num.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4152,6 +6595,7 @@ end; function Num.AddD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4159,6 +6603,7 @@ end; function Num.AddF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4166,6 +6611,7 @@ end; function Num.AddRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4173,6 +6619,7 @@ end; function Num.AddSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4180,6 +6627,7 @@ end; function Num.AddSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4187,6 +6635,7 @@ end; function Num.AddNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4194,6 +6643,7 @@ end; function Num.AddFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4201,6 +6651,7 @@ end; function Num.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4208,6 +6659,7 @@ end; function Num.AppendD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4215,6 +6667,7 @@ end; function Num.AppendF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4222,6 +6675,7 @@ end; function Num.AppendRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4229,6 +6683,7 @@ end; function Num.AppendSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4236,6 +6691,7 @@ end; function Num.AppendSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4243,6 +6699,7 @@ end; function Num.AppendNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4250,24 +6707,25 @@ end; function Num.AppendFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Deg.Create();overload; +function Deg.create();overload; begin - {self.}Create(nil, "m", "deg"); + {self.}create(nil, "m", "deg"); end; -function Deg.Create(_node: XmlNode);overload; +function Deg.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Deg.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Deg.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Deg.Init();override; @@ -4294,12 +6752,27 @@ function Deg.Copy(_obj: Deg);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCtrlPr) then {self.}CtrlPr.Copy(_obj.XmlChildCtrlPr); tslassigning := tslassigning_backup; end; +function Deg.Clone(): Deg;override; +begin + obj := new Deg(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Deg.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCtrlPr) then @@ -4337,68 +6810,240 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function Deg.ReadRs(_index); +function Deg.WriteXmlChildCtrlPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end +end; + +function Deg.ReadRs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "r", ind); end; -function Deg.ReadDs(_index); +function Deg.WriteRs(_index: integer; _value: nil_OR_R); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "r", ind, _value) then + raise format("Index out of range: Rs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rs expects nil or R"; + end +end; + +function Deg.ReadDs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "d", ind); end; -function Deg.ReadFs(_index); +function Deg.WriteDs(_index: integer; _value: nil_OR_D); +begin + if ifnil(_value) then + begin + obj := {self.}ReadDs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "d", ind, _value) then + raise format("Index out of range: Ds[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Ds expects nil or D"; + end +end; + +function Deg.ReadFs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "f", ind); end; -function Deg.ReadRads(_index); +function Deg.WriteFs(_index: integer; _value: nil_OR_F); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "f", ind, _value) then + raise format("Index out of range: Fs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Fs expects nil or F"; + end +end; + +function Deg.ReadRads(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "rad", ind); end; -function Deg.ReadSSubs(_index); +function Deg.WriteRads(_index: integer; _value: nil_OR_Rad); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRads(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "rad", ind, _value) then + raise format("Index out of range: Rads[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rads expects nil or Rad"; + end +end; + +function Deg.ReadSSubs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSub", ind); end; -function Deg.ReadSSups(_index); +function Deg.WriteSSubs(_index: integer; _value: nil_OR_SSub); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSubs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSub", ind, _value) then + raise format("Index out of range: SSubs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSubs expects nil or SSub"; + end +end; + +function Deg.ReadSSups(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSup", ind); end; -function Deg.ReadNaries(_index); +function Deg.WriteSSups(_index: integer; _value: nil_OR_SSup); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSups(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSup", ind, _value) then + raise format("Index out of range: SSups[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSups expects nil or SSup"; + end +end; + +function Deg.ReadNaries(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "nary", ind); end; -function Deg.ReadFuncs(_index); +function Deg.WriteNaries(_index: integer; _value: nil_OR_Nary); +begin + if ifnil(_value) then + begin + obj := {self.}ReadNaries(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "nary", ind, _value) then + raise format("Index out of range: Naries[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Naries expects nil or Nary"; + end +end; + +function Deg.ReadFuncs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "func", ind); end; +function Deg.WriteFuncs(_index: integer; _value: nil_OR_Func); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFuncs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "func", ind, _value) then + raise format("Index out of range: Funcs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Funcs expects nil or Func"; + end +end; + function Deg.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4406,6 +7051,7 @@ end; function Deg.AddD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4413,6 +7059,7 @@ end; function Deg.AddF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4420,6 +7067,7 @@ end; function Deg.AddRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4427,6 +7075,7 @@ end; function Deg.AddSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4434,6 +7083,7 @@ end; function Deg.AddSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4441,6 +7091,7 @@ end; function Deg.AddNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4448,6 +7099,7 @@ end; function Deg.AddFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4455,6 +7107,7 @@ end; function Deg.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4462,6 +7115,7 @@ end; function Deg.AppendD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4469,6 +7123,7 @@ end; function Deg.AppendF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4476,6 +7131,7 @@ end; function Deg.AppendRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4483,6 +7139,7 @@ end; function Deg.AppendSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4490,6 +7147,7 @@ end; function Deg.AppendSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4497,6 +7155,7 @@ end; function Deg.AppendNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4504,24 +7163,25 @@ end; function Deg.AppendFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Append(obj); return obj; end; -function E.Create();overload; +function E.create();overload; begin - {self.}Create(nil, "m", "e"); + {self.}create(nil, "m", "e"); end; -function E.Create(_node: XmlNode);overload; +function E.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function E.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function E.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function E.Init();override; @@ -4548,12 +7208,27 @@ function E.Copy(_obj: E);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCtrlPr) then {self.}CtrlPr.Copy(_obj.XmlChildCtrlPr); tslassigning := tslassigning_backup; end; +function E.Clone(): E;override; +begin + obj := new E(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function E.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCtrlPr) then @@ -4591,68 +7266,240 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function E.ReadRs(_index); +function E.WriteXmlChildCtrlPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end +end; + +function E.ReadRs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "r", ind); end; -function E.ReadDs(_index); +function E.WriteRs(_index: integer; _value: nil_OR_R); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "r", ind, _value) then + raise format("Index out of range: Rs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rs expects nil or R"; + end +end; + +function E.ReadDs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "d", ind); end; -function E.ReadFs(_index); +function E.WriteDs(_index: integer; _value: nil_OR_D); +begin + if ifnil(_value) then + begin + obj := {self.}ReadDs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "d", ind, _value) then + raise format("Index out of range: Ds[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Ds expects nil or D"; + end +end; + +function E.ReadFs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "f", ind); end; -function E.ReadRads(_index); +function E.WriteFs(_index: integer; _value: nil_OR_F); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "f", ind, _value) then + raise format("Index out of range: Fs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Fs expects nil or F"; + end +end; + +function E.ReadRads(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "rad", ind); end; -function E.ReadSSubs(_index); +function E.WriteRads(_index: integer; _value: nil_OR_Rad); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRads(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "rad", ind, _value) then + raise format("Index out of range: Rads[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rads expects nil or Rad"; + end +end; + +function E.ReadSSubs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSub", ind); end; -function E.ReadSSups(_index); +function E.WriteSSubs(_index: integer; _value: nil_OR_SSub); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSubs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSub", ind, _value) then + raise format("Index out of range: SSubs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSubs expects nil or SSub"; + end +end; + +function E.ReadSSups(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSup", ind); end; -function E.ReadNaries(_index); +function E.WriteSSups(_index: integer; _value: nil_OR_SSup); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSups(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSup", ind, _value) then + raise format("Index out of range: SSups[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSups expects nil or SSup"; + end +end; + +function E.ReadNaries(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "nary", ind); end; -function E.ReadFuncs(_index); +function E.WriteNaries(_index: integer; _value: nil_OR_Nary); +begin + if ifnil(_value) then + begin + obj := {self.}ReadNaries(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "nary", ind, _value) then + raise format("Index out of range: Naries[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Naries expects nil or Nary"; + end +end; + +function E.ReadFuncs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "func", ind); end; +function E.WriteFuncs(_index: integer; _value: nil_OR_Func); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFuncs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "func", ind, _value) then + raise format("Index out of range: Funcs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Funcs expects nil or Func"; + end +end; + function E.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4660,6 +7507,7 @@ end; function E.AddD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4667,6 +7515,7 @@ end; function E.AddF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4674,6 +7523,7 @@ end; function E.AddRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4681,6 +7531,7 @@ end; function E.AddSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4688,6 +7539,7 @@ end; function E.AddSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4695,6 +7547,7 @@ end; function E.AddNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4702,6 +7555,7 @@ end; function E.AddFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4709,6 +7563,7 @@ end; function E.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4716,6 +7571,7 @@ end; function E.AppendD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4723,6 +7579,7 @@ end; function E.AppendF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4730,6 +7587,7 @@ end; function E.AppendRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4737,6 +7595,7 @@ end; function E.AppendSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4744,6 +7603,7 @@ end; function E.AppendSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4751,6 +7611,7 @@ end; function E.AppendNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4758,24 +7619,25 @@ end; function E.AppendFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Sup.Create();overload; +function Sup.create();overload; begin - {self.}Create(nil, "m", "sup"); + {self.}create(nil, "m", "sup"); end; -function Sup.Create(_node: XmlNode);overload; +function Sup.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Sup.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Sup.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Sup.Init();override; @@ -4802,12 +7664,27 @@ function Sup.Copy(_obj: Sup);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCtrlPr) then {self.}CtrlPr.Copy(_obj.XmlChildCtrlPr); tslassigning := tslassigning_backup; end; +function Sup.Clone(): Sup;override; +begin + obj := new Sup(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Sup.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCtrlPr) then @@ -4845,68 +7722,240 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function Sup.ReadRs(_index); +function Sup.WriteXmlChildCtrlPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end +end; + +function Sup.ReadRs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "r", ind); end; -function Sup.ReadDs(_index); +function Sup.WriteRs(_index: integer; _value: nil_OR_R); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "r", ind, _value) then + raise format("Index out of range: Rs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rs expects nil or R"; + end +end; + +function Sup.ReadDs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "d", ind); end; -function Sup.ReadFs(_index); +function Sup.WriteDs(_index: integer; _value: nil_OR_D); +begin + if ifnil(_value) then + begin + obj := {self.}ReadDs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "d", ind, _value) then + raise format("Index out of range: Ds[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Ds expects nil or D"; + end +end; + +function Sup.ReadFs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "f", ind); end; -function Sup.ReadRads(_index); +function Sup.WriteFs(_index: integer; _value: nil_OR_F); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "f", ind, _value) then + raise format("Index out of range: Fs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Fs expects nil or F"; + end +end; + +function Sup.ReadRads(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "rad", ind); end; -function Sup.ReadSSubs(_index); +function Sup.WriteRads(_index: integer; _value: nil_OR_Rad); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRads(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "rad", ind, _value) then + raise format("Index out of range: Rads[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rads expects nil or Rad"; + end +end; + +function Sup.ReadSSubs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSub", ind); end; -function Sup.ReadSSups(_index); +function Sup.WriteSSubs(_index: integer; _value: nil_OR_SSub); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSubs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSub", ind, _value) then + raise format("Index out of range: SSubs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSubs expects nil or SSub"; + end +end; + +function Sup.ReadSSups(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSup", ind); end; -function Sup.ReadNaries(_index); +function Sup.WriteSSups(_index: integer; _value: nil_OR_SSup); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSups(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSup", ind, _value) then + raise format("Index out of range: SSups[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSups expects nil or SSup"; + end +end; + +function Sup.ReadNaries(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "nary", ind); end; -function Sup.ReadFuncs(_index); +function Sup.WriteNaries(_index: integer; _value: nil_OR_Nary); +begin + if ifnil(_value) then + begin + obj := {self.}ReadNaries(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "nary", ind, _value) then + raise format("Index out of range: Naries[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Naries expects nil or Nary"; + end +end; + +function Sup.ReadFuncs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "func", ind); end; +function Sup.WriteFuncs(_index: integer; _value: nil_OR_Func); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFuncs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "func", ind, _value) then + raise format("Index out of range: Funcs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Funcs expects nil or Func"; + end +end; + function Sup.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4914,6 +7963,7 @@ end; function Sup.AddD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4921,6 +7971,7 @@ end; function Sup.AddF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4928,6 +7979,7 @@ end; function Sup.AddRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4935,6 +7987,7 @@ end; function Sup.AddSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4942,6 +7995,7 @@ end; function Sup.AddSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4949,6 +8003,7 @@ end; function Sup.AddNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4956,6 +8011,7 @@ end; function Sup.AddFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -4963,6 +8019,7 @@ end; function Sup.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4970,6 +8027,7 @@ end; function Sup.AppendD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4977,6 +8035,7 @@ end; function Sup.AppendF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4984,6 +8043,7 @@ end; function Sup.AppendRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4991,6 +8051,7 @@ end; function Sup.AppendSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -4998,6 +8059,7 @@ end; function Sup.AppendSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5005,6 +8067,7 @@ end; function Sup.AppendNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5012,24 +8075,25 @@ end; function Sup.AppendFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Den.Create();overload; +function Den.create();overload; begin - {self.}Create(nil, "m", "den"); + {self.}create(nil, "m", "den"); end; -function Den.Create(_node: XmlNode);overload; +function Den.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Den.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Den.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Den.Init();override; @@ -5056,12 +8120,27 @@ function Den.Copy(_obj: Den);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCtrlPr) then {self.}CtrlPr.Copy(_obj.XmlChildCtrlPr); tslassigning := tslassigning_backup; end; +function Den.Clone(): Den;override; +begin + obj := new Den(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Den.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCtrlPr) then @@ -5099,68 +8178,240 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function Den.ReadRs(_index); +function Den.WriteXmlChildCtrlPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end +end; + +function Den.ReadRs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "r", ind); end; -function Den.ReadDs(_index); +function Den.WriteRs(_index: integer; _value: nil_OR_R); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "r", ind, _value) then + raise format("Index out of range: Rs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rs expects nil or R"; + end +end; + +function Den.ReadDs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "d", ind); end; -function Den.ReadFs(_index); +function Den.WriteDs(_index: integer; _value: nil_OR_D); +begin + if ifnil(_value) then + begin + obj := {self.}ReadDs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "d", ind, _value) then + raise format("Index out of range: Ds[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Ds expects nil or D"; + end +end; + +function Den.ReadFs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "f", ind); end; -function Den.ReadRads(_index); +function Den.WriteFs(_index: integer; _value: nil_OR_F); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "f", ind, _value) then + raise format("Index out of range: Fs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Fs expects nil or F"; + end +end; + +function Den.ReadRads(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "rad", ind); end; -function Den.ReadSSubs(_index); +function Den.WriteRads(_index: integer; _value: nil_OR_Rad); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRads(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "rad", ind, _value) then + raise format("Index out of range: Rads[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rads expects nil or Rad"; + end +end; + +function Den.ReadSSubs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSub", ind); end; -function Den.ReadSSups(_index); +function Den.WriteSSubs(_index: integer; _value: nil_OR_SSub); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSubs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSub", ind, _value) then + raise format("Index out of range: SSubs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSubs expects nil or SSub"; + end +end; + +function Den.ReadSSups(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSup", ind); end; -function Den.ReadNaries(_index); +function Den.WriteSSups(_index: integer; _value: nil_OR_SSup); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSups(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSup", ind, _value) then + raise format("Index out of range: SSups[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSups expects nil or SSup"; + end +end; + +function Den.ReadNaries(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "nary", ind); end; -function Den.ReadFuncs(_index); +function Den.WriteNaries(_index: integer; _value: nil_OR_Nary); +begin + if ifnil(_value) then + begin + obj := {self.}ReadNaries(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "nary", ind, _value) then + raise format("Index out of range: Naries[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Naries expects nil or Nary"; + end +end; + +function Den.ReadFuncs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "func", ind); end; +function Den.WriteFuncs(_index: integer; _value: nil_OR_Func); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFuncs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "func", ind, _value) then + raise format("Index out of range: Funcs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Funcs expects nil or Func"; + end +end; + function Den.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5168,6 +8419,7 @@ end; function Den.AddD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5175,6 +8427,7 @@ end; function Den.AddF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5182,6 +8435,7 @@ end; function Den.AddRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5189,6 +8443,7 @@ end; function Den.AddSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5196,6 +8451,7 @@ end; function Den.AddSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5203,6 +8459,7 @@ end; function Den.AddNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5210,6 +8467,7 @@ end; function Den.AddFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5217,6 +8475,7 @@ end; function Den.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5224,6 +8483,7 @@ end; function Den.AppendD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5231,6 +8491,7 @@ end; function Den.AppendF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5238,6 +8499,7 @@ end; function Den.AppendRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5245,6 +8507,7 @@ end; function Den.AppendSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5252,6 +8515,7 @@ end; function Den.AppendSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5259,6 +8523,7 @@ end; function Den.AppendNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5266,24 +8531,25 @@ end; function Den.AppendFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Sub.Create();overload; +function Sub.create();overload; begin - {self.}Create(nil, "m", "sub"); + {self.}create(nil, "m", "sub"); end; -function Sub.Create(_node: XmlNode);overload; +function Sub.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Sub.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Sub.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Sub.Init();override; @@ -5310,12 +8576,27 @@ function Sub.Copy(_obj: Sub);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildCtrlPr) then {self.}CtrlPr.Copy(_obj.XmlChildCtrlPr); tslassigning := tslassigning_backup; end; +function Sub.Clone(): Sub;override; +begin + obj := new Sub(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "ctrlPr": obj.CtrlPr := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Sub.ConvertToPoint();override; begin if not ifnil({self.}XmlChildCtrlPr) then @@ -5353,68 +8634,240 @@ begin {self.}XmlChildCtrlPr := new CtrlPr(self, {self.}Prefix, "ctrlPr"); container_.Set({self.}XmlChildCtrlPr); end - return {self.}XmlChildCtrlPr; + return {self.}XmlChildCtrlPr and not {self.}XmlChildCtrlPr.Removed ? {self.}XmlChildCtrlPr : fallback_.CtrlPr; end; -function Sub.ReadRs(_index); +function Sub.WriteXmlChildCtrlPr(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildCtrlPr) then + {self.}RemoveChild({self.}XmlChildCtrlPr); + end + else if v is class(CtrlPr) then + begin + v.Parent := self; + {self.}XmlChildCtrlPr := v; + container_.Set({self.}XmlChildCtrlPr); + end + else begin + raise "Invalid assignment: CtrlPr expects CtrlPr or nil"; + end +end; + +function Sub.ReadRs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "r", ind); end; -function Sub.ReadDs(_index); +function Sub.WriteRs(_index: integer; _value: nil_OR_R); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "r", ind, _value) then + raise format("Index out of range: Rs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rs expects nil or R"; + end +end; + +function Sub.ReadDs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "d", ind); end; -function Sub.ReadFs(_index); +function Sub.WriteDs(_index: integer; _value: nil_OR_D); +begin + if ifnil(_value) then + begin + obj := {self.}ReadDs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "d", ind, _value) then + raise format("Index out of range: Ds[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Ds expects nil or D"; + end +end; + +function Sub.ReadFs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "f", ind); end; -function Sub.ReadRads(_index); +function Sub.WriteFs(_index: integer; _value: nil_OR_F); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "f", ind, _value) then + raise format("Index out of range: Fs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Fs expects nil or F"; + end +end; + +function Sub.ReadRads(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "rad", ind); end; -function Sub.ReadSSubs(_index); +function Sub.WriteRads(_index: integer; _value: nil_OR_Rad); +begin + if ifnil(_value) then + begin + obj := {self.}ReadRads(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "rad", ind, _value) then + raise format("Index out of range: Rads[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Rads expects nil or Rad"; + end +end; + +function Sub.ReadSSubs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSub", ind); end; -function Sub.ReadSSups(_index); +function Sub.WriteSSubs(_index: integer; _value: nil_OR_SSub); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSubs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSub", ind, _value) then + raise format("Index out of range: SSubs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSubs expects nil or SSub"; + end +end; + +function Sub.ReadSSups(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "sSup", ind); end; -function Sub.ReadNaries(_index); +function Sub.WriteSSups(_index: integer; _value: nil_OR_SSup); +begin + if ifnil(_value) then + begin + obj := {self.}ReadSSups(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "sSup", ind, _value) then + raise format("Index out of range: SSups[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: SSups expects nil or SSup"; + end +end; + +function Sub.ReadNaries(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "nary", ind); end; -function Sub.ReadFuncs(_index); +function Sub.WriteNaries(_index: integer; _value: nil_OR_Nary); +begin + if ifnil(_value) then + begin + obj := {self.}ReadNaries(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "nary", ind, _value) then + raise format("Index out of range: Naries[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Naries expects nil or Nary"; + end +end; + +function Sub.ReadFuncs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get(pre + "func", ind); end; +function Sub.WriteFuncs(_index: integer; _value: nil_OR_Func); +begin + if ifnil(_value) then + begin + obj := {self.}ReadFuncs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "func", ind, _value) then + raise format("Index out of range: Funcs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Funcs expects nil or Func"; + end +end; + function Sub.AddR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5422,6 +8875,7 @@ end; function Sub.AddD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5429,6 +8883,7 @@ end; function Sub.AddF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5436,6 +8891,7 @@ end; function Sub.AddRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5443,6 +8899,7 @@ end; function Sub.AddSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5450,6 +8907,7 @@ end; function Sub.AddSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5457,6 +8915,7 @@ end; function Sub.AddNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5464,6 +8923,7 @@ end; function Sub.AddFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Insert(obj); return obj; end; @@ -5471,6 +8931,7 @@ end; function Sub.AppendR(): R; begin obj := new R(self, {self.}Prefix, "r"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5478,6 +8939,7 @@ end; function Sub.AppendD(): D; begin obj := new D(self, {self.}Prefix, "d"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5485,6 +8947,7 @@ end; function Sub.AppendF(): F; begin obj := new F(self, {self.}Prefix, "f"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5492,6 +8955,7 @@ end; function Sub.AppendRad(): Rad; begin obj := new Rad(self, {self.}Prefix, "rad"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5499,6 +8963,7 @@ end; function Sub.AppendSSub(): SSub; begin obj := new SSub(self, {self.}Prefix, "sSub"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5506,6 +8971,7 @@ end; function Sub.AppendSSup(): SSup; begin obj := new SSup(self, {self.}Prefix, "sSup"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5513,6 +8979,7 @@ end; function Sub.AppendNary(): Nary; begin obj := new Nary(self, {self.}Prefix, "nary"); + obj.Enable := true; container_.Append(obj); return obj; end; @@ -5520,8 +8987,9 @@ end; function Sub.AppendFunc(): Func; begin obj := new Func(self, {self.}Prefix, "func"); + obj.Enable := true; container_.Append(obj); return obj; end; -end. +end. \ No newline at end of file diff --git a/autounit/VML.tsf b/autounit/VML.tsf index ee05311..bef7e3b 100644 --- a/autounit/VML.tsf +++ b/autounit/VML.tsf @@ -4,11 +4,12 @@ uses TSSafeUnitConverter, DocxML; type Shapetype = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Shapetype);override; + function Clone(): Shapetype;override; function ConvertToPoint();override; public @@ -19,41 +20,47 @@ public property Spt read ReadXmlAttrSpt write WriteXmlAttrSpt; property Adj read ReadXmlAttrAdj write WriteXmlAttrAdj; property Preferrelative read ReadXmlAttrPreferrelative write WriteXmlAttrPreferrelative; - property Path read ReadXmlAttrPath write WriteXmlAttrPath; + property AttrPath read ReadXmlAttrAttrPath write WriteXmlAttrAttrPath; property Filled read ReadXmlAttrFilled write WriteXmlAttrFilled; property Stroked read ReadXmlAttrStroked write WriteXmlAttrStroked; function ReadXmlAttrAnchorId(); - function WriteXmlAttrAnchorId(_value); + function WriteXmlAttrAnchorId(_value: any); function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); function ReadXmlAttrCoordsize(); - function WriteXmlAttrCoordsize(_value); + function WriteXmlAttrCoordsize(_value: any); function ReadXmlAttrSpt(); - function WriteXmlAttrSpt(_value); + function WriteXmlAttrSpt(_value: any); function ReadXmlAttrAdj(); - function WriteXmlAttrAdj(_value); + function WriteXmlAttrAdj(_value: any); function ReadXmlAttrPreferrelative(); - function WriteXmlAttrPreferrelative(_value); - function ReadXmlAttrPath(); - function WriteXmlAttrPath(_value); + function WriteXmlAttrPreferrelative(_value: any); + function ReadXmlAttrAttrPath(); + function WriteXmlAttrAttrPath(_value: any); function ReadXmlAttrFilled(); - function WriteXmlAttrFilled(_value); + function WriteXmlAttrFilled(_value: any); function ReadXmlAttrStroked(); - function WriteXmlAttrStroked(_value); + function WriteXmlAttrStroked(_value: any); // normal property - property Stroke read ReadXmlChildStroke; - property Formulas read ReadXmlChildFormulas; - property Path read ReadXmlChildPath; - property Textpath read ReadXmlChildTextpath; - property Handles read ReadXmlChildHandles; - property Lock read ReadXmlChildLock; + property Stroke read ReadXmlChildStroke write WriteXmlChildStroke; + property Formulas read ReadXmlChildFormulas write WriteXmlChildFormulas; + property Path read ReadXmlChildPath write WriteXmlChildPath; + property Textpath read ReadXmlChildTextpath write WriteXmlChildTextpath; + property Handles read ReadXmlChildHandles write WriteXmlChildHandles; + property Lock read ReadXmlChildLock write WriteXmlChildLock; function ReadXmlChildStroke(): Stroke; + function WriteXmlChildStroke(_p1: any; _p2: any); function ReadXmlChildFormulas(): formulas; + function WriteXmlChildFormulas(_p1: any; _p2: any); function ReadXmlChildPath(): Path; + function WriteXmlChildPath(_p1: any; _p2: any); function ReadXmlChildTextpath(): Textpath; + function WriteXmlChildTextpath(_p1: any; _p2: any); function ReadXmlChildHandles(): Handles; + function WriteXmlChildHandles(_p1: any; _p2: any); function ReadXmlChildLock(): Lock; + function WriteXmlChildLock(_p1: any; _p2: any); public // Attributes @@ -63,7 +70,7 @@ public XmlAttrSpt: OpenXmlAttribute; XmlAttrAdj: OpenXmlAttribute; XmlAttrPreferrelative: OpenXmlAttribute; - XmlAttrPath: OpenXmlAttribute; + XmlAttrAttrPath: OpenXmlAttribute; XmlAttrFilled: OpenXmlAttribute; XmlAttrStroked: OpenXmlAttribute; @@ -78,20 +85,22 @@ end; type Formulas = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Formulas);override; + function Clone(): Formulas;override; function ConvertToPoint();override; public // multi property - property Fs read ReadFs; - function ReadFs(_index); - function AddF(): Shapetype; - function AppendF(): Shapetype; + property Fs read ReadFs write WriteFs; + function ReadFs(_index: integer); + function WriteFs(_index: integer; _value: nil_OR_F); + function AddF(): F; + function AppendF(): F; public // Children @@ -99,43 +108,53 @@ end; type Lock = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Lock);override; + function Clone(): Lock;override; function ConvertToPoint();override; public // attributes property property Ext read ReadXmlAttrExt write WriteXmlAttrExt; property Aspectration read ReadXmlAttrAspectration write WriteXmlAttrAspectration; + property Text read ReadXmlAttrText write WriteXmlAttrText; + property Shapetype read ReadXmlAttrShapetype write WriteXmlAttrShapetype; function ReadXmlAttrExt(); - function WriteXmlAttrExt(_value); + function WriteXmlAttrExt(_value: any); function ReadXmlAttrAspectration(); - function WriteXmlAttrAspectration(_value); + function WriteXmlAttrAspectration(_value: any); + function ReadXmlAttrText(); + function WriteXmlAttrText(_value: any); + function ReadXmlAttrShapetype(); + function WriteXmlAttrShapetype(_value: any); public // Attributes XmlAttrExt: OpenXmlAttribute; XmlAttrAspectration: OpenXmlAttribute; + XmlAttrText: OpenXmlAttribute; + XmlAttrShapetype: OpenXmlAttribute; end; type F = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: F);override; + function Clone(): F;override; function ConvertToPoint();override; public // attributes property property Eqn read ReadXmlAttrEqn write WriteXmlAttrEqn; function ReadXmlAttrEqn(); - function WriteXmlAttrEqn(_value); + function WriteXmlAttrEqn(_value: any); public // Attributes @@ -145,18 +164,19 @@ end; type Stroke = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Stroke);override; + function Clone(): Stroke;override; function ConvertToPoint();override; public // attributes property property Joinstyle read ReadXmlAttrJoinstyle write WriteXmlAttrJoinstyle; function ReadXmlAttrJoinstyle(); - function WriteXmlAttrJoinstyle(_value); + function WriteXmlAttrJoinstyle(_value: any); public // Attributes @@ -166,11 +186,12 @@ end; type Path = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Path);override; + function Clone(): Path;override; function ConvertToPoint();override; public @@ -182,17 +203,17 @@ public property Connectlocs read ReadXmlAttrConnectlocs write WriteXmlAttrConnectlocs; property Connectangles read ReadXmlAttrConnectangles write WriteXmlAttrConnectangles; function ReadXmlAttrExtrusionok(); - function WriteXmlAttrExtrusionok(_value); + function WriteXmlAttrExtrusionok(_value: any); function ReadXmlAttrTextpathok(); - function WriteXmlAttrTextpathok(_value); + function WriteXmlAttrTextpathok(_value: any); function ReadXmlAttrGradientshapeok(); - function WriteXmlAttrGradientshapeok(_value); + function WriteXmlAttrGradientshapeok(_value: any); function ReadXmlAttrConnecttype(); - function WriteXmlAttrConnecttype(_value); + function WriteXmlAttrConnecttype(_value: any); function ReadXmlAttrConnectlocs(); - function WriteXmlAttrConnectlocs(_value); + function WriteXmlAttrConnectlocs(_value: any); function ReadXmlAttrConnectangles(); - function WriteXmlAttrConnectangles(_value); + function WriteXmlAttrConnectangles(_value: any); public // Attributes @@ -207,11 +228,12 @@ end; type Textpath = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Textpath);override; + function Clone(): Textpath;override; function ConvertToPoint();override; public @@ -221,13 +243,13 @@ public property Style read ReadXmlAttrStyle write WriteXmlAttrStyle; property String read ReadXmlAttrString write WriteXmlAttrString; function ReadXmlAttr_On(); - function WriteXmlAttr_On(_value); + function WriteXmlAttr_On(_value: any); function ReadXmlAttrFitshape(); - function WriteXmlAttrFitshape(_value); + function WriteXmlAttrFitshape(_value: any); function ReadXmlAttrStyle(); - function WriteXmlAttrStyle(_value); + function WriteXmlAttrStyle(_value: any); function ReadXmlAttrString(); - function WriteXmlAttrString(_value); + function WriteXmlAttrString(_value: any); public // Attributes @@ -240,18 +262,20 @@ end; type Handles = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Handles);override; + function Clone(): Handles;override; function ConvertToPoint();override; public // normal property - property H read ReadXmlChildH; + property H read ReadXmlChildH write WriteXmlChildH; function ReadXmlChildH(): H; + function WriteXmlChildH(_p1: any; _p2: any); public // Children @@ -260,36 +284,38 @@ end; type H = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: H);override; + function Clone(): H;override; function ConvertToPoint();override; public // attributes property - property Xrange read ReadXmlAttrXrange write WriteXmlAttrXrange; property Position read ReadXmlAttrPosition write WriteXmlAttrPosition; - function ReadXmlAttrXrange(); - function WriteXmlAttrXrange(_value); + property Xrange read ReadXmlAttrXrange write WriteXmlAttrXrange; function ReadXmlAttrPosition(); - function WriteXmlAttrPosition(_value); + function WriteXmlAttrPosition(_value: any); + function ReadXmlAttrXrange(); + function WriteXmlAttrXrange(_value: any); public // Attributes - XmlAttrXrange: OpenXmlAttribute; XmlAttrPosition: OpenXmlAttribute; + XmlAttrXrange: OpenXmlAttribute; end; type Shape = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Shape);override; + function Clone(): Shape;override; function ConvertToPoint();override; public @@ -305,37 +331,42 @@ public property Stroked read ReadXmlAttrStroked write WriteXmlAttrStroked; property Ole read ReadXmlAttrOle write WriteXmlAttrOle; function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); function ReadXmlAttrStyle(); - function WriteXmlAttrStyle(_value); + function WriteXmlAttrStyle(_value: any); function ReadXmlAttrSpid(); - function WriteXmlAttrSpid(_value); + function WriteXmlAttrSpid(_value: any); function ReadXmlAttrType(); - function WriteXmlAttrType(_value); + function WriteXmlAttrType(_value: any); function ReadXmlAttrGfxdata(); - function WriteXmlAttrGfxdata(_value); + function WriteXmlAttrGfxdata(_value: any); function ReadXmlAttrFilled(); - function WriteXmlAttrFilled(_value); + function WriteXmlAttrFilled(_value: any); function ReadXmlAttrAllowincell(); - function WriteXmlAttrAllowincell(_value); + function WriteXmlAttrAllowincell(_value: any); function ReadXmlAttrFillcolor(); - function WriteXmlAttrFillcolor(_value); + function WriteXmlAttrFillcolor(_value: any); function ReadXmlAttrStroked(); - function WriteXmlAttrStroked(_value); + function WriteXmlAttrStroked(_value: any); function ReadXmlAttrOle(); - function WriteXmlAttrOle(_value); + function WriteXmlAttrOle(_value: any); // normal property - property Fill read ReadXmlChildFill; - property Textbox read ReadXmlChildTextbox; - property Textpath read ReadXmlChildTextpath; - property Imagedata read ReadXmlChildImagedata; - property Wrap read ReadXmlChildWrap; + property Fill read ReadXmlChildFill write WriteXmlChildFill; + property Textbox read ReadXmlChildTextbox write WriteXmlChildTextbox; + property Textpath read ReadXmlChildTextpath write WriteXmlChildTextpath; + property Imagedata read ReadXmlChildImagedata write WriteXmlChildImagedata; + property Wrap read ReadXmlChildWrap write WriteXmlChildWrap; function ReadXmlChildFill(): Fill; + function WriteXmlChildFill(_p1: any; _p2: any); function ReadXmlChildTextbox(): Textbox; + function WriteXmlChildTextbox(_p1: any; _p2: any); function ReadXmlChildTextpath(): Textpath; + function WriteXmlChildTextpath(_p1: any; _p2: any); function ReadXmlChildImagedata(): Imagedata; + function WriteXmlChildImagedata(_p1: any; _p2: any); function ReadXmlChildWrap(): Wrap; + function WriteXmlChildWrap(_p1: any; _p2: any); public // Attributes @@ -360,11 +391,12 @@ end; type Wrap = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Wrap);override; + function Clone(): Wrap;override; function ConvertToPoint();override; public @@ -372,9 +404,9 @@ public property Anchorx read ReadXmlAttrAnchorx write WriteXmlAttrAnchorx; property Anchory read ReadXmlAttrAnchory write WriteXmlAttrAnchory; function ReadXmlAttrAnchorx(); - function WriteXmlAttrAnchorx(_value); + function WriteXmlAttrAnchorx(_value: any); function ReadXmlAttrAnchory(); - function WriteXmlAttrAnchory(_value); + function WriteXmlAttrAnchory(_value: any); public // Attributes @@ -385,18 +417,19 @@ end; type Fill = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Fill);override; + function Clone(): Fill;override; function ConvertToPoint();override; public // attributes property property Opacity read ReadXmlAttrOpacity write WriteXmlAttrOpacity; function ReadXmlAttrOpacity(); - function WriteXmlAttrOpacity(_value); + function WriteXmlAttrOpacity(_value: any); public // Attributes @@ -406,11 +439,12 @@ end; type Imagedata = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Imagedata);override; + function Clone(): Imagedata;override; function ConvertToPoint();override; public @@ -418,9 +452,9 @@ public property Id read ReadXmlAttrId write WriteXmlAttrId; property Title read ReadXmlAttrTitle write WriteXmlAttrTitle; function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); function ReadXmlAttrTitle(); - function WriteXmlAttrTitle(_value); + function WriteXmlAttrTitle(_value: any); public // Attributes @@ -431,18 +465,20 @@ end; type Textbox = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: Textbox);override; + function Clone(): Textbox;override; function ConvertToPoint();override; public // normal property - property TxbxContent read ReadXmlChildTxbxContent; + property TxbxContent read ReadXmlChildTxbxContent write WriteXmlChildTxbxContent; function ReadXmlChildTxbxContent(): TxbxContent; + function WriteXmlChildTxbxContent(_p1: any; _p2: any); public // Children @@ -451,11 +487,12 @@ end; type OLEObject = class(OpenXmlCompositeElement) public - function Create();overload; - function Create(_node: XmlNode);overload; - function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function create();overload; + function create(_node: XmlNode);overload; + function create(_parent: tslobj; _prefix: string; _local_name: string);overload; function Init();override; function Copy(_obj: OLEObject);override; + function Clone(): OLEObject;override; function ConvertToPoint();override; public @@ -467,17 +504,17 @@ public property ObjectID read ReadXmlAttrObjectID write WriteXmlAttrObjectID; property Id read ReadXmlAttrId write WriteXmlAttrId; function ReadXmlAttrType(); - function WriteXmlAttrType(_value); + function WriteXmlAttrType(_value: any); function ReadXmlAttrProgID(); - function WriteXmlAttrProgID(_value); + function WriteXmlAttrProgID(_value: any); function ReadXmlAttrShapeID(); - function WriteXmlAttrShapeID(_value); + function WriteXmlAttrShapeID(_value: any); function ReadXmlAttrDrawAspect(); - function WriteXmlAttrDrawAspect(_value); + function WriteXmlAttrDrawAspect(_value: any); function ReadXmlAttrObjectID(); - function WriteXmlAttrObjectID(_value); + function WriteXmlAttrObjectID(_value: any); function ReadXmlAttrId(); - function WriteXmlAttrId(_value); + function WriteXmlAttrId(_value: any); public // Attributes @@ -492,20 +529,20 @@ end; implementation -function Shapetype.Create();overload; +function Shapetype.create();overload; begin - {self.}Create(nil, "v", "shapetype"); + {self.}create(nil, "v", "shapetype"); end; -function Shapetype.Create(_node: XmlNode);overload; +function Shapetype.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Shapetype.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Shapetype.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Shapetype.Init();override; @@ -519,7 +556,7 @@ begin "o:spt": makeweakref(thisFunction(WriteXmlAttrSpt)), "adj": makeweakref(thisFunction(WriteXmlAttrAdj)), "preferrelative": makeweakref(thisFunction(WriteXmlAttrPreferrelative)), - "path": makeweakref(thisFunction(WriteXmlAttrPath)), + "path": makeweakref(thisFunction(WriteXmlAttrAttrPath)), "filled": makeweakref(thisFunction(WriteXmlAttrFilled)), "stroked": makeweakref(thisFunction(WriteXmlAttrStroked)), ); @@ -538,7 +575,7 @@ function Shapetype.Copy(_obj: Shapetype);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.AnchorId) then {self.}AnchorId := _obj.AnchorId; if not ifnil(_obj.Id) then @@ -551,8 +588,8 @@ begin {self.}Adj := _obj.Adj; if not ifnil(_obj.Preferrelative) then {self.}Preferrelative := _obj.Preferrelative; - if not ifnil(_obj.Path) then - {self.}Path := _obj.Path; + if not ifnil(_obj.AttrPath) then + {self.}AttrPath := _obj.AttrPath; if not ifnil(_obj.Filled) then {self.}Filled := _obj.Filled; if not ifnil(_obj.Stroked) then @@ -572,6 +609,44 @@ begin tslassigning := tslassigning_backup; end; +function Shapetype.Clone(): Shapetype;override; +begin + obj := new Shapetype(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}AnchorId) then + obj.AnchorId := {self.}AnchorId; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Coordsize) then + obj.Coordsize := {self.}Coordsize; + if not ifnil({self.}Spt) then + obj.Spt := {self.}Spt; + if not ifnil({self.}Adj) then + obj.Adj := {self.}Adj; + if not ifnil({self.}Preferrelative) then + obj.Preferrelative := {self.}Preferrelative; + if not ifnil({self.}AttrPath) then + obj.AttrPath := {self.}AttrPath; + if not ifnil({self.}Filled) then + obj.Filled := {self.}Filled; + if not ifnil({self.}Stroked) then + obj.Stroked := {self.}Stroked; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "stroke": obj.Stroke := element.Clone(); + pre + "formulas": obj.Formulas := element.Clone(); + pre + "path": obj.Path := element.Clone(); + pre + "textpath": obj.Textpath := element.Clone(); + pre + "handles": obj.Handles := element.Clone(); + "o:lock": obj.Lock := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Shapetype.ConvertToPoint();override; begin if not ifnil({self.}XmlChildStroke) then @@ -590,135 +665,135 @@ end; function Shapetype.ReadXmlAttrAnchorId(); begin - return {self.}XmlAttrAnchorId.Value; + return ifnil({self.}XmlAttrAnchorId.Value) ? fallback_.XmlAttrAnchorId.Value : {self.}XmlAttrAnchorId.Value; end; -function Shapetype.WriteXmlAttrAnchorId(_value); +function Shapetype.WriteXmlAttrAnchorId(_value: any); begin if ifnil({self.}XmlAttrAnchorId) then begin {self.}XmlAttrAnchorId := new OpenXmlAttribute("w14", "anchorId", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAnchorId; + attributes_["w14:anchorId"] := {self.}XmlAttrAnchorId; end {self.}XmlAttrAnchorId.Value := _value; end; function Shapetype.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function Shapetype.WriteXmlAttrId(_value); +function Shapetype.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; function Shapetype.ReadXmlAttrCoordsize(); begin - return {self.}XmlAttrCoordsize.Value; + return ifnil({self.}XmlAttrCoordsize.Value) ? fallback_.XmlAttrCoordsize.Value : {self.}XmlAttrCoordsize.Value; end; -function Shapetype.WriteXmlAttrCoordsize(_value); +function Shapetype.WriteXmlAttrCoordsize(_value: any); begin if ifnil({self.}XmlAttrCoordsize) then begin {self.}XmlAttrCoordsize := new OpenXmlAttribute("", "coordsize", nil); - attributes_[length(attributes_)] := {self.}XmlAttrCoordsize; + attributes_["coordsize"] := {self.}XmlAttrCoordsize; end {self.}XmlAttrCoordsize.Value := _value; end; function Shapetype.ReadXmlAttrSpt(); begin - return {self.}XmlAttrSpt.Value; + return ifnil({self.}XmlAttrSpt.Value) ? fallback_.XmlAttrSpt.Value : {self.}XmlAttrSpt.Value; end; -function Shapetype.WriteXmlAttrSpt(_value); +function Shapetype.WriteXmlAttrSpt(_value: any); begin if ifnil({self.}XmlAttrSpt) then begin {self.}XmlAttrSpt := new OpenXmlAttribute("o", "spt", nil); - attributes_[length(attributes_)] := {self.}XmlAttrSpt; + attributes_["o:spt"] := {self.}XmlAttrSpt; end {self.}XmlAttrSpt.Value := _value; end; function Shapetype.ReadXmlAttrAdj(); begin - return {self.}XmlAttrAdj.Value; + return ifnil({self.}XmlAttrAdj.Value) ? fallback_.XmlAttrAdj.Value : {self.}XmlAttrAdj.Value; end; -function Shapetype.WriteXmlAttrAdj(_value); +function Shapetype.WriteXmlAttrAdj(_value: any); begin if ifnil({self.}XmlAttrAdj) then begin {self.}XmlAttrAdj := new OpenXmlAttribute("", "adj", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAdj; + attributes_["adj"] := {self.}XmlAttrAdj; end {self.}XmlAttrAdj.Value := _value; end; function Shapetype.ReadXmlAttrPreferrelative(); begin - return {self.}XmlAttrPreferrelative.Value; + return ifnil({self.}XmlAttrPreferrelative.Value) ? fallback_.XmlAttrPreferrelative.Value : {self.}XmlAttrPreferrelative.Value; end; -function Shapetype.WriteXmlAttrPreferrelative(_value); +function Shapetype.WriteXmlAttrPreferrelative(_value: any); begin if ifnil({self.}XmlAttrPreferrelative) then begin {self.}XmlAttrPreferrelative := new OpenXmlAttribute("", "preferrelative", nil); - attributes_[length(attributes_)] := {self.}XmlAttrPreferrelative; + attributes_["preferrelative"] := {self.}XmlAttrPreferrelative; end {self.}XmlAttrPreferrelative.Value := _value; end; -function Shapetype.ReadXmlAttrPath(); +function Shapetype.ReadXmlAttrAttrPath(); begin - return {self.}XmlAttrPath.Value; + return ifnil({self.}XmlAttrAttrPath.Value) ? fallback_.XmlAttrAttrPath.Value : {self.}XmlAttrAttrPath.Value; end; -function Shapetype.WriteXmlAttrPath(_value); +function Shapetype.WriteXmlAttrAttrPath(_value: any); begin - if ifnil({self.}XmlAttrPath) then + if ifnil({self.}XmlAttrAttrPath) then begin - {self.}XmlAttrPath := new OpenXmlAttribute("", "path", nil); - attributes_[length(attributes_)] := {self.}XmlAttrPath; + {self.}XmlAttrAttrPath := new OpenXmlAttribute("", "path", nil); + attributes_["path"] := {self.}XmlAttrAttrPath; end - {self.}XmlAttrPath.Value := _value; + {self.}XmlAttrAttrPath.Value := _value; end; function Shapetype.ReadXmlAttrFilled(); begin - return {self.}XmlAttrFilled.Value; + return ifnil({self.}XmlAttrFilled.Value) ? fallback_.XmlAttrFilled.Value : {self.}XmlAttrFilled.Value; end; -function Shapetype.WriteXmlAttrFilled(_value); +function Shapetype.WriteXmlAttrFilled(_value: any); begin if ifnil({self.}XmlAttrFilled) then begin {self.}XmlAttrFilled := new OpenXmlAttribute("", "filled", nil); - attributes_[length(attributes_)] := {self.}XmlAttrFilled; + attributes_["filled"] := {self.}XmlAttrFilled; end {self.}XmlAttrFilled.Value := _value; end; function Shapetype.ReadXmlAttrStroked(); begin - return {self.}XmlAttrStroked.Value; + return ifnil({self.}XmlAttrStroked.Value) ? fallback_.XmlAttrStroked.Value : {self.}XmlAttrStroked.Value; end; -function Shapetype.WriteXmlAttrStroked(_value); +function Shapetype.WriteXmlAttrStroked(_value: any); begin if ifnil({self.}XmlAttrStroked) then begin {self.}XmlAttrStroked := new OpenXmlAttribute("", "stroked", nil); - attributes_[length(attributes_)] := {self.}XmlAttrStroked; + attributes_["stroked"] := {self.}XmlAttrStroked; end {self.}XmlAttrStroked.Value := _value; end; @@ -730,7 +805,26 @@ begin {self.}XmlChildStroke := new Stroke(self, {self.}Prefix, "stroke"); container_.Set({self.}XmlChildStroke); end - return {self.}XmlChildStroke; + return {self.}XmlChildStroke and not {self.}XmlChildStroke.Removed ? {self.}XmlChildStroke : fallback_.Stroke; +end; + +function Shapetype.WriteXmlChildStroke(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildStroke) then + {self.}RemoveChild({self.}XmlChildStroke); + end + else if v is class(Stroke) then + begin + v.Parent := self; + {self.}XmlChildStroke := v; + container_.Set({self.}XmlChildStroke); + end + else begin + raise "Invalid assignment: Stroke expects Stroke or nil"; + end end; function Shapetype.ReadXmlChildFormulas(): formulas; @@ -740,7 +834,26 @@ begin {self.}XmlChildFormulas := new formulas(self, {self.}Prefix, "formulas"); container_.Set({self.}XmlChildFormulas); end - return {self.}XmlChildFormulas; + return {self.}XmlChildFormulas and not {self.}XmlChildFormulas.Removed ? {self.}XmlChildFormulas : fallback_.Formulas; +end; + +function Shapetype.WriteXmlChildFormulas(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFormulas) then + {self.}RemoveChild({self.}XmlChildFormulas); + end + else if v is class(formulas) then + begin + v.Parent := self; + {self.}XmlChildFormulas := v; + container_.Set({self.}XmlChildFormulas); + end + else begin + raise "Invalid assignment: Formulas expects formulas or nil"; + end end; function Shapetype.ReadXmlChildPath(): Path; @@ -750,7 +863,26 @@ begin {self.}XmlChildPath := new Path(self, {self.}Prefix, "path"); container_.Set({self.}XmlChildPath); end - return {self.}XmlChildPath; + return {self.}XmlChildPath and not {self.}XmlChildPath.Removed ? {self.}XmlChildPath : fallback_.Path; +end; + +function Shapetype.WriteXmlChildPath(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildPath) then + {self.}RemoveChild({self.}XmlChildPath); + end + else if v is class(Path) then + begin + v.Parent := self; + {self.}XmlChildPath := v; + container_.Set({self.}XmlChildPath); + end + else begin + raise "Invalid assignment: Path expects Path or nil"; + end end; function Shapetype.ReadXmlChildTextpath(): Textpath; @@ -760,7 +892,26 @@ begin {self.}XmlChildTextpath := new Textpath(self, {self.}Prefix, "textpath"); container_.Set({self.}XmlChildTextpath); end - return {self.}XmlChildTextpath; + return {self.}XmlChildTextpath and not {self.}XmlChildTextpath.Removed ? {self.}XmlChildTextpath : fallback_.Textpath; +end; + +function Shapetype.WriteXmlChildTextpath(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTextpath) then + {self.}RemoveChild({self.}XmlChildTextpath); + end + else if v is class(Textpath) then + begin + v.Parent := self; + {self.}XmlChildTextpath := v; + container_.Set({self.}XmlChildTextpath); + end + else begin + raise "Invalid assignment: Textpath expects Textpath or nil"; + end end; function Shapetype.ReadXmlChildHandles(): Handles; @@ -770,7 +921,26 @@ begin {self.}XmlChildHandles := new Handles(self, {self.}Prefix, "handles"); container_.Set({self.}XmlChildHandles); end - return {self.}XmlChildHandles; + return {self.}XmlChildHandles and not {self.}XmlChildHandles.Removed ? {self.}XmlChildHandles : fallback_.Handles; +end; + +function Shapetype.WriteXmlChildHandles(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildHandles) then + {self.}RemoveChild({self.}XmlChildHandles); + end + else if v is class(Handles) then + begin + v.Parent := self; + {self.}XmlChildHandles := v; + container_.Set({self.}XmlChildHandles); + end + else begin + raise "Invalid assignment: Handles expects Handles or nil"; + end end; function Shapetype.ReadXmlChildLock(): Lock; @@ -780,23 +950,42 @@ begin {self.}XmlChildLock := new Lock(self, "o", "lock"); container_.Set({self.}XmlChildLock); end - return {self.}XmlChildLock; + return {self.}XmlChildLock and not {self.}XmlChildLock.Removed ? {self.}XmlChildLock : fallback_.Lock; end; -function Formulas.Create();overload; +function Shapetype.WriteXmlChildLock(_p1: any; _p2: any); begin - {self.}Create(nil, "v", "formulas"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildLock) then + {self.}RemoveChild({self.}XmlChildLock); + end + else if v is class(Lock) then + begin + v.Parent := self; + {self.}XmlChildLock := v; + container_.Set({self.}XmlChildLock); + end + else begin + raise "Invalid assignment: Lock expects Lock or nil"; + end end; -function Formulas.Create(_node: XmlNode);overload; +function Formulas.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "v", "formulas"); end; -function Formulas.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Formulas.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Formulas.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Formulas.Init();override; @@ -815,10 +1004,19 @@ function Formulas.Copy(_obj: Formulas);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); tslassigning := tslassigning_backup; end; +function Formulas.Clone(): Formulas;override; +begin + obj := new Formulas(nil, {self.}Prefix, {self.}LocalName); + elements := {self.}Elements(); + for _,element in elements do + obj.AppendChild(element.Clone()); + return obj; +end; + function Formulas.ConvertToPoint();override; begin elems := {self.}Fs(); @@ -826,41 +1024,62 @@ begin elem.ConvertToPoint(); end; -function Formulas.ReadFs(_index); +function Formulas.ReadFs(_index: integer); begin ind := ifnil(_index) ? -2 : _index; pre := {self.}Prefix ? {self.}Prefix + ":" : ""; return container_.Get("v:f", ind); end; -function Formulas.AddF(): Shapetype; +function Formulas.WriteFs(_index: integer; _value: nil_OR_F); begin - obj := new Shapetype(self, "v", "f"); + if ifnil(_value) then + begin + obj := {self.}ReadFs(_index); + {self.}RemoveChild(obj); + end + else if ifInt(_index) or ifInt64(_index) then + begin + ind := ifnil(_index) ? -2 : _index; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + if not container_.Set(pre + "f", ind, _value) then + raise format("Index out of range: Fs[%d] is invalid or out of bounds", _index); + end + else begin + raise "Invalid assignment: Fs expects nil or F"; + end +end; + +function Formulas.AddF(): F; +begin + obj := new F(self, "v", "f"); + obj.Enable := true; container_.Insert(obj); return obj; end; -function Formulas.AppendF(): Shapetype; +function Formulas.AppendF(): F; begin - obj := new Shapetype(self, "v", "f"); + obj := new F(self, "v", "f"); + obj.Enable := true; container_.Append(obj); return obj; end; -function Lock.Create();overload; +function Lock.create();overload; begin - {self.}Create(nil, "o", "lock"); + {self.}create(nil, "o", "lock"); end; -function Lock.Create(_node: XmlNode);overload; +function Lock.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Lock.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Lock.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Lock.Init();override; @@ -870,6 +1089,8 @@ begin attributes_pf_ := array( "v:ext": makeweakref(thisFunction(WriteXmlAttrExt)), "aspectration": makeweakref(thisFunction(WriteXmlAttrAspectration)), + "text": makeweakref(thisFunction(WriteXmlAttrText)), + "shapetype": makeweakref(thisFunction(WriteXmlAttrShapetype)), ); sorted_child_ := array( ); @@ -880,14 +1101,32 @@ function Lock.Copy(_obj: Lock);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Ext) then {self.}Ext := _obj.Ext; if not ifnil(_obj.Aspectration) then {self.}Aspectration := _obj.Aspectration; + if not ifnil(_obj.Text) then + {self.}Text := _obj.Text; + if not ifnil(_obj.Shapetype) then + {self.}Shapetype := _obj.Shapetype; tslassigning := tslassigning_backup; end; +function Lock.Clone(): Lock;override; +begin + obj := new Lock(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Ext) then + obj.Ext := {self.}Ext; + if not ifnil({self.}Aspectration) then + obj.Aspectration := {self.}Aspectration; + if not ifnil({self.}Text) then + obj.Text := {self.}Text; + if not ifnil({self.}Shapetype) then + obj.Shapetype := {self.}Shapetype; + return obj; +end; + function Lock.ConvertToPoint();override; begin @@ -895,48 +1134,78 @@ end; function Lock.ReadXmlAttrExt(); begin - return {self.}XmlAttrExt.Value; + return ifnil({self.}XmlAttrExt.Value) ? fallback_.XmlAttrExt.Value : {self.}XmlAttrExt.Value; end; -function Lock.WriteXmlAttrExt(_value); +function Lock.WriteXmlAttrExt(_value: any); begin if ifnil({self.}XmlAttrExt) then begin {self.}XmlAttrExt := new OpenXmlAttribute("v", "ext", nil); - attributes_[length(attributes_)] := {self.}XmlAttrExt; + attributes_["v:ext"] := {self.}XmlAttrExt; end {self.}XmlAttrExt.Value := _value; end; function Lock.ReadXmlAttrAspectration(); begin - return {self.}XmlAttrAspectration.Value; + return ifnil({self.}XmlAttrAspectration.Value) ? fallback_.XmlAttrAspectration.Value : {self.}XmlAttrAspectration.Value; end; -function Lock.WriteXmlAttrAspectration(_value); +function Lock.WriteXmlAttrAspectration(_value: any); begin if ifnil({self.}XmlAttrAspectration) then begin {self.}XmlAttrAspectration := new OpenXmlAttribute("", "aspectration", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAspectration; + attributes_["aspectration"] := {self.}XmlAttrAspectration; end {self.}XmlAttrAspectration.Value := _value; end; -function F.Create();overload; +function Lock.ReadXmlAttrText(); begin - {self.}Create(nil, "v", "f"); + return ifnil({self.}XmlAttrText.Value) ? fallback_.XmlAttrText.Value : {self.}XmlAttrText.Value; end; -function F.Create(_node: XmlNode);overload; +function Lock.WriteXmlAttrText(_value: any); begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + if ifnil({self.}XmlAttrText) then + begin + {self.}XmlAttrText := new OpenXmlAttribute("", "text", nil); + attributes_["text"] := {self.}XmlAttrText; + end + {self.}XmlAttrText.Value := _value; end; -function F.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Lock.ReadXmlAttrShapetype(); +begin + return ifnil({self.}XmlAttrShapetype.Value) ? fallback_.XmlAttrShapetype.Value : {self.}XmlAttrShapetype.Value; +end; + +function Lock.WriteXmlAttrShapetype(_value: any); +begin + if ifnil({self.}XmlAttrShapetype) then + begin + {self.}XmlAttrShapetype := new OpenXmlAttribute("", "shapetype", nil); + attributes_["shapetype"] := {self.}XmlAttrShapetype; + end + {self.}XmlAttrShapetype.Value := _value; +end; + +function F.create();overload; +begin + {self.}create(nil, "v", "f"); +end; + +function F.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function F.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function F.Init();override; @@ -955,12 +1224,20 @@ function F.Copy(_obj: F);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Eqn) then {self.}Eqn := _obj.Eqn; tslassigning := tslassigning_backup; end; +function F.Clone(): F;override; +begin + obj := new F(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Eqn) then + obj.Eqn := {self.}Eqn; + return obj; +end; + function F.ConvertToPoint();override; begin @@ -968,33 +1245,33 @@ end; function F.ReadXmlAttrEqn(); begin - return {self.}XmlAttrEqn.Value; + return ifnil({self.}XmlAttrEqn.Value) ? fallback_.XmlAttrEqn.Value : {self.}XmlAttrEqn.Value; end; -function F.WriteXmlAttrEqn(_value); +function F.WriteXmlAttrEqn(_value: any); begin if ifnil({self.}XmlAttrEqn) then begin {self.}XmlAttrEqn := new OpenXmlAttribute("", "eqn", nil); - attributes_[length(attributes_)] := {self.}XmlAttrEqn; + attributes_["eqn"] := {self.}XmlAttrEqn; end {self.}XmlAttrEqn.Value := _value; end; -function Stroke.Create();overload; +function Stroke.create();overload; begin - {self.}Create(nil, "v", "stroke"); + {self.}create(nil, "v", "stroke"); end; -function Stroke.Create(_node: XmlNode);overload; +function Stroke.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Stroke.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Stroke.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Stroke.Init();override; @@ -1013,12 +1290,20 @@ function Stroke.Copy(_obj: Stroke);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Joinstyle) then {self.}Joinstyle := _obj.Joinstyle; tslassigning := tslassigning_backup; end; +function Stroke.Clone(): Stroke;override; +begin + obj := new Stroke(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Joinstyle) then + obj.Joinstyle := {self.}Joinstyle; + return obj; +end; + function Stroke.ConvertToPoint();override; begin @@ -1026,33 +1311,33 @@ end; function Stroke.ReadXmlAttrJoinstyle(); begin - return {self.}XmlAttrJoinstyle.Value; + return ifnil({self.}XmlAttrJoinstyle.Value) ? fallback_.XmlAttrJoinstyle.Value : {self.}XmlAttrJoinstyle.Value; end; -function Stroke.WriteXmlAttrJoinstyle(_value); +function Stroke.WriteXmlAttrJoinstyle(_value: any); begin if ifnil({self.}XmlAttrJoinstyle) then begin {self.}XmlAttrJoinstyle := new OpenXmlAttribute("", "joinstyle", nil); - attributes_[length(attributes_)] := {self.}XmlAttrJoinstyle; + attributes_["joinstyle"] := {self.}XmlAttrJoinstyle; end {self.}XmlAttrJoinstyle.Value := _value; end; -function Path.Create();overload; +function Path.create();overload; begin - {self.}Create(nil, "v", "path"); + {self.}create(nil, "v", "path"); end; -function Path.Create(_node: XmlNode);overload; +function Path.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Path.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Path.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Path.Init();override; @@ -1076,7 +1361,7 @@ function Path.Copy(_obj: Path);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Extrusionok) then {self.}Extrusionok := _obj.Extrusionok; if not ifnil(_obj.Textpathok) then @@ -1092,6 +1377,24 @@ begin tslassigning := tslassigning_backup; end; +function Path.Clone(): Path;override; +begin + obj := new Path(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Extrusionok) then + obj.Extrusionok := {self.}Extrusionok; + if not ifnil({self.}Textpathok) then + obj.Textpathok := {self.}Textpathok; + if not ifnil({self.}Gradientshapeok) then + obj.Gradientshapeok := {self.}Gradientshapeok; + if not ifnil({self.}Connecttype) then + obj.Connecttype := {self.}Connecttype; + if not ifnil({self.}Connectlocs) then + obj.Connectlocs := {self.}Connectlocs; + if not ifnil({self.}Connectangles) then + obj.Connectangles := {self.}Connectangles; + return obj; +end; + function Path.ConvertToPoint();override; begin @@ -1099,108 +1402,108 @@ end; function Path.ReadXmlAttrExtrusionok(); begin - return {self.}XmlAttrExtrusionok.Value; + return ifnil({self.}XmlAttrExtrusionok.Value) ? fallback_.XmlAttrExtrusionok.Value : {self.}XmlAttrExtrusionok.Value; end; -function Path.WriteXmlAttrExtrusionok(_value); +function Path.WriteXmlAttrExtrusionok(_value: any); begin if ifnil({self.}XmlAttrExtrusionok) then begin {self.}XmlAttrExtrusionok := new OpenXmlAttribute("o", "extrusionok", nil); - attributes_[length(attributes_)] := {self.}XmlAttrExtrusionok; + attributes_["o:extrusionok"] := {self.}XmlAttrExtrusionok; end {self.}XmlAttrExtrusionok.Value := _value; end; function Path.ReadXmlAttrTextpathok(); begin - return {self.}XmlAttrTextpathok.Value; + return ifnil({self.}XmlAttrTextpathok.Value) ? fallback_.XmlAttrTextpathok.Value : {self.}XmlAttrTextpathok.Value; end; -function Path.WriteXmlAttrTextpathok(_value); +function Path.WriteXmlAttrTextpathok(_value: any); begin if ifnil({self.}XmlAttrTextpathok) then begin {self.}XmlAttrTextpathok := new OpenXmlAttribute("", "textpathok", nil); - attributes_[length(attributes_)] := {self.}XmlAttrTextpathok; + attributes_["textpathok"] := {self.}XmlAttrTextpathok; end {self.}XmlAttrTextpathok.Value := _value; end; function Path.ReadXmlAttrGradientshapeok(); begin - return {self.}XmlAttrGradientshapeok.Value; + return ifnil({self.}XmlAttrGradientshapeok.Value) ? fallback_.XmlAttrGradientshapeok.Value : {self.}XmlAttrGradientshapeok.Value; end; -function Path.WriteXmlAttrGradientshapeok(_value); +function Path.WriteXmlAttrGradientshapeok(_value: any); begin if ifnil({self.}XmlAttrGradientshapeok) then begin {self.}XmlAttrGradientshapeok := new OpenXmlAttribute("", "gradientshapeok", nil); - attributes_[length(attributes_)] := {self.}XmlAttrGradientshapeok; + attributes_["gradientshapeok"] := {self.}XmlAttrGradientshapeok; end {self.}XmlAttrGradientshapeok.Value := _value; end; function Path.ReadXmlAttrConnecttype(); begin - return {self.}XmlAttrConnecttype.Value; + return ifnil({self.}XmlAttrConnecttype.Value) ? fallback_.XmlAttrConnecttype.Value : {self.}XmlAttrConnecttype.Value; end; -function Path.WriteXmlAttrConnecttype(_value); +function Path.WriteXmlAttrConnecttype(_value: any); begin if ifnil({self.}XmlAttrConnecttype) then begin {self.}XmlAttrConnecttype := new OpenXmlAttribute("o", "connecttype", nil); - attributes_[length(attributes_)] := {self.}XmlAttrConnecttype; + attributes_["o:connecttype"] := {self.}XmlAttrConnecttype; end {self.}XmlAttrConnecttype.Value := _value; end; function Path.ReadXmlAttrConnectlocs(); begin - return {self.}XmlAttrConnectlocs.Value; + return ifnil({self.}XmlAttrConnectlocs.Value) ? fallback_.XmlAttrConnectlocs.Value : {self.}XmlAttrConnectlocs.Value; end; -function Path.WriteXmlAttrConnectlocs(_value); +function Path.WriteXmlAttrConnectlocs(_value: any); begin if ifnil({self.}XmlAttrConnectlocs) then begin {self.}XmlAttrConnectlocs := new OpenXmlAttribute("o", "connectlocs", nil); - attributes_[length(attributes_)] := {self.}XmlAttrConnectlocs; + attributes_["o:connectlocs"] := {self.}XmlAttrConnectlocs; end {self.}XmlAttrConnectlocs.Value := _value; end; function Path.ReadXmlAttrConnectangles(); begin - return {self.}XmlAttrConnectangles.Value; + return ifnil({self.}XmlAttrConnectangles.Value) ? fallback_.XmlAttrConnectangles.Value : {self.}XmlAttrConnectangles.Value; end; -function Path.WriteXmlAttrConnectangles(_value); +function Path.WriteXmlAttrConnectangles(_value: any); begin if ifnil({self.}XmlAttrConnectangles) then begin {self.}XmlAttrConnectangles := new OpenXmlAttribute("o", "connectangles", nil); - attributes_[length(attributes_)] := {self.}XmlAttrConnectangles; + attributes_["o:connectangles"] := {self.}XmlAttrConnectangles; end {self.}XmlAttrConnectangles.Value := _value; end; -function Textpath.Create();overload; +function Textpath.create();overload; begin - {self.}Create(nil, "v", "textpath"); + {self.}create(nil, "v", "textpath"); end; -function Textpath.Create(_node: XmlNode);overload; +function Textpath.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Textpath.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Textpath.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Textpath.Init();override; @@ -1222,7 +1525,7 @@ function Textpath.Copy(_obj: Textpath);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj._On) then {self.}_On := _obj._On; if not ifnil(_obj.Fitshape) then @@ -1234,6 +1537,20 @@ begin tslassigning := tslassigning_backup; end; +function Textpath.Clone(): Textpath;override; +begin + obj := new Textpath(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}_On) then + obj._On := {self.}_On; + if not ifnil({self.}Fitshape) then + obj.Fitshape := {self.}Fitshape; + if not ifnil({self.}Style) then + obj.Style := {self.}Style; + if not ifnil({self.}String) then + obj.String := {self.}String; + return obj; +end; + function Textpath.ConvertToPoint();override; begin @@ -1241,78 +1558,78 @@ end; function Textpath.ReadXmlAttr_On(); begin - return {self.}XmlAttr_On.Value; + return ifnil({self.}XmlAttr_On.Value) ? fallback_.XmlAttr_On.Value : {self.}XmlAttr_On.Value; end; -function Textpath.WriteXmlAttr_On(_value); +function Textpath.WriteXmlAttr_On(_value: any); begin if ifnil({self.}XmlAttr_On) then begin {self.}XmlAttr_On := new OpenXmlAttribute("", "on", nil); - attributes_[length(attributes_)] := {self.}XmlAttr_On; + attributes_["on"] := {self.}XmlAttr_On; end {self.}XmlAttr_On.Value := _value; end; function Textpath.ReadXmlAttrFitshape(); begin - return {self.}XmlAttrFitshape.Value; + return ifnil({self.}XmlAttrFitshape.Value) ? fallback_.XmlAttrFitshape.Value : {self.}XmlAttrFitshape.Value; end; -function Textpath.WriteXmlAttrFitshape(_value); +function Textpath.WriteXmlAttrFitshape(_value: any); begin if ifnil({self.}XmlAttrFitshape) then begin {self.}XmlAttrFitshape := new OpenXmlAttribute("", "fitshape", nil); - attributes_[length(attributes_)] := {self.}XmlAttrFitshape; + attributes_["fitshape"] := {self.}XmlAttrFitshape; end {self.}XmlAttrFitshape.Value := _value; end; function Textpath.ReadXmlAttrStyle(); begin - return {self.}XmlAttrStyle.Value; + return ifnil({self.}XmlAttrStyle.Value) ? fallback_.XmlAttrStyle.Value : {self.}XmlAttrStyle.Value; end; -function Textpath.WriteXmlAttrStyle(_value); +function Textpath.WriteXmlAttrStyle(_value: any); begin if ifnil({self.}XmlAttrStyle) then begin {self.}XmlAttrStyle := new OpenXmlAttribute("", "style", nil); - attributes_[length(attributes_)] := {self.}XmlAttrStyle; + attributes_["style"] := {self.}XmlAttrStyle; end {self.}XmlAttrStyle.Value := _value; end; function Textpath.ReadXmlAttrString(); begin - return {self.}XmlAttrString.Value; + return ifnil({self.}XmlAttrString.Value) ? fallback_.XmlAttrString.Value : {self.}XmlAttrString.Value; end; -function Textpath.WriteXmlAttrString(_value); +function Textpath.WriteXmlAttrString(_value: any); begin if ifnil({self.}XmlAttrString) then begin {self.}XmlAttrString := new OpenXmlAttribute("", "string", nil); - attributes_[length(attributes_)] := {self.}XmlAttrString; + attributes_["string"] := {self.}XmlAttrString; end {self.}XmlAttrString.Value := _value; end; -function Handles.Create();overload; +function Handles.create();overload; begin - {self.}Create(nil, "v", "handles"); + {self.}create(nil, "v", "handles"); end; -function Handles.Create(_node: XmlNode);overload; +function Handles.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Handles.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Handles.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Handles.Init();override; @@ -1331,12 +1648,27 @@ function Handles.Copy(_obj: Handles);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildH) then {self.}H.Copy(_obj.XmlChildH); tslassigning := tslassigning_backup; end; +function Handles.Clone(): Handles;override; +begin + obj := new Handles(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "h": obj.H := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Handles.ConvertToPoint();override; begin if not ifnil({self.}XmlChildH) then @@ -1350,23 +1682,42 @@ begin {self.}XmlChildH := new H(self, {self.}Prefix, "h"); container_.Set({self.}XmlChildH); end - return {self.}XmlChildH; + return {self.}XmlChildH and not {self.}XmlChildH.Removed ? {self.}XmlChildH : fallback_.H; end; -function H.Create();overload; +function Handles.WriteXmlChildH(_p1: any; _p2: any); begin - {self.}Create(nil, "v", "h"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildH) then + {self.}RemoveChild({self.}XmlChildH); + end + else if v is class(H) then + begin + v.Parent := self; + {self.}XmlChildH := v; + container_.Set({self.}XmlChildH); + end + else begin + raise "Invalid assignment: H expects H or nil"; + end end; -function H.Create(_node: XmlNode);overload; +function H.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "v", "h"); end; -function H.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function H.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function H.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function H.Init();override; @@ -1374,8 +1725,8 @@ begin pre := {self.}Prefix ? {self.}Prefix + ":" : ""; attributes_ := array(); attributes_pf_ := array( - "xrange": makeweakref(thisFunction(WriteXmlAttrXrange)), "position": makeweakref(thisFunction(WriteXmlAttrPosition)), + "xrange": makeweakref(thisFunction(WriteXmlAttrXrange)), ); sorted_child_ := array( ); @@ -1386,63 +1737,73 @@ function H.Copy(_obj: H);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); - if not ifnil(_obj.Xrange) then - {self.}Xrange := _obj.Xrange; + inherited Copy(_obj); if not ifnil(_obj.Position) then {self.}Position := _obj.Position; + if not ifnil(_obj.Xrange) then + {self.}Xrange := _obj.Xrange; tslassigning := tslassigning_backup; end; +function H.Clone(): H;override; +begin + obj := new H(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Position) then + obj.Position := {self.}Position; + if not ifnil({self.}Xrange) then + obj.Xrange := {self.}Xrange; + return obj; +end; + function H.ConvertToPoint();override; begin end; -function H.ReadXmlAttrXrange(); -begin - return {self.}XmlAttrXrange.Value; -end; - -function H.WriteXmlAttrXrange(_value); -begin - if ifnil({self.}XmlAttrXrange) then - begin - {self.}XmlAttrXrange := new OpenXmlAttribute("", "xrange", nil); - attributes_[length(attributes_)] := {self.}XmlAttrXrange; - end - {self.}XmlAttrXrange.Value := _value; -end; - function H.ReadXmlAttrPosition(); begin - return {self.}XmlAttrPosition.Value; + return ifnil({self.}XmlAttrPosition.Value) ? fallback_.XmlAttrPosition.Value : {self.}XmlAttrPosition.Value; end; -function H.WriteXmlAttrPosition(_value); +function H.WriteXmlAttrPosition(_value: any); begin if ifnil({self.}XmlAttrPosition) then begin {self.}XmlAttrPosition := new OpenXmlAttribute("", "position", nil); - attributes_[length(attributes_)] := {self.}XmlAttrPosition; + attributes_["position"] := {self.}XmlAttrPosition; end {self.}XmlAttrPosition.Value := _value; end; -function Shape.Create();overload; +function H.ReadXmlAttrXrange(); begin - {self.}Create(nil, "v", "shape"); + return ifnil({self.}XmlAttrXrange.Value) ? fallback_.XmlAttrXrange.Value : {self.}XmlAttrXrange.Value; end; -function Shape.Create(_node: XmlNode);overload; +function H.WriteXmlAttrXrange(_value: any); begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + if ifnil({self.}XmlAttrXrange) then + begin + {self.}XmlAttrXrange := new OpenXmlAttribute("", "xrange", nil); + attributes_["xrange"] := {self.}XmlAttrXrange; + end + {self.}XmlAttrXrange.Value := _value; end; -function Shape.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Shape.create();overload; +begin + {self.}create(nil, "v", "shape"); +end; + +function Shape.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Shape.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Shape.Init();override; @@ -1475,7 +1836,7 @@ function Shape.Copy(_obj: Shape);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.Style) then @@ -1509,6 +1870,45 @@ begin tslassigning := tslassigning_backup; end; +function Shape.Clone(): Shape;override; +begin + obj := new Shape(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Style) then + obj.Style := {self.}Style; + if not ifnil({self.}Spid) then + obj.Spid := {self.}Spid; + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + if not ifnil({self.}Gfxdata) then + obj.Gfxdata := {self.}Gfxdata; + if not ifnil({self.}Filled) then + obj.Filled := {self.}Filled; + if not ifnil({self.}Allowincell) then + obj.Allowincell := {self.}Allowincell; + if not ifnil({self.}Fillcolor) then + obj.Fillcolor := {self.}Fillcolor; + if not ifnil({self.}Stroked) then + obj.Stroked := {self.}Stroked; + if not ifnil({self.}Ole) then + obj.Ole := {self.}Ole; + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + pre + "fill": obj.Fill := element.Clone(); + pre + "textbox": obj.Textbox := element.Clone(); + pre + "textpath": obj.Textpath := element.Clone(); + pre + "imagedata": obj.Imagedata := element.Clone(); + "w10:wrap": obj.Wrap := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Shape.ConvertToPoint();override; begin if not ifnil({self.}XmlChildFill) then @@ -1525,150 +1925,150 @@ end; function Shape.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function Shape.WriteXmlAttrId(_value); +function Shape.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; function Shape.ReadXmlAttrStyle(); begin - return {self.}XmlAttrStyle.Value; + return ifnil({self.}XmlAttrStyle.Value) ? fallback_.XmlAttrStyle.Value : {self.}XmlAttrStyle.Value; end; -function Shape.WriteXmlAttrStyle(_value); +function Shape.WriteXmlAttrStyle(_value: any); begin if ifnil({self.}XmlAttrStyle) then begin {self.}XmlAttrStyle := new OpenXmlAttribute("", "style", nil); - attributes_[length(attributes_)] := {self.}XmlAttrStyle; + attributes_["style"] := {self.}XmlAttrStyle; end {self.}XmlAttrStyle.Value := _value; end; function Shape.ReadXmlAttrSpid(); begin - return {self.}XmlAttrSpid.Value; + return ifnil({self.}XmlAttrSpid.Value) ? fallback_.XmlAttrSpid.Value : {self.}XmlAttrSpid.Value; end; -function Shape.WriteXmlAttrSpid(_value); +function Shape.WriteXmlAttrSpid(_value: any); begin if ifnil({self.}XmlAttrSpid) then begin {self.}XmlAttrSpid := new OpenXmlAttribute("o", "spid", nil); - attributes_[length(attributes_)] := {self.}XmlAttrSpid; + attributes_["o:spid"] := {self.}XmlAttrSpid; end {self.}XmlAttrSpid.Value := _value; end; function Shape.ReadXmlAttrType(); begin - return {self.}XmlAttrType.Value; + return ifnil({self.}XmlAttrType.Value) ? fallback_.XmlAttrType.Value : {self.}XmlAttrType.Value; end; -function Shape.WriteXmlAttrType(_value); +function Shape.WriteXmlAttrType(_value: any); begin if ifnil({self.}XmlAttrType) then begin {self.}XmlAttrType := new OpenXmlAttribute("", "type", nil); - attributes_[length(attributes_)] := {self.}XmlAttrType; + attributes_["type"] := {self.}XmlAttrType; end {self.}XmlAttrType.Value := _value; end; function Shape.ReadXmlAttrGfxdata(); begin - return {self.}XmlAttrGfxdata.Value; + return ifnil({self.}XmlAttrGfxdata.Value) ? fallback_.XmlAttrGfxdata.Value : {self.}XmlAttrGfxdata.Value; end; -function Shape.WriteXmlAttrGfxdata(_value); +function Shape.WriteXmlAttrGfxdata(_value: any); begin if ifnil({self.}XmlAttrGfxdata) then begin {self.}XmlAttrGfxdata := new OpenXmlAttribute("o", "gfxdata", nil); - attributes_[length(attributes_)] := {self.}XmlAttrGfxdata; + attributes_["o:gfxdata"] := {self.}XmlAttrGfxdata; end {self.}XmlAttrGfxdata.Value := _value; end; function Shape.ReadXmlAttrFilled(); begin - return {self.}XmlAttrFilled.Value; + return ifnil({self.}XmlAttrFilled.Value) ? fallback_.XmlAttrFilled.Value : {self.}XmlAttrFilled.Value; end; -function Shape.WriteXmlAttrFilled(_value); +function Shape.WriteXmlAttrFilled(_value: any); begin if ifnil({self.}XmlAttrFilled) then begin {self.}XmlAttrFilled := new OpenXmlAttribute("", "filled", nil); - attributes_[length(attributes_)] := {self.}XmlAttrFilled; + attributes_["filled"] := {self.}XmlAttrFilled; end {self.}XmlAttrFilled.Value := _value; end; function Shape.ReadXmlAttrAllowincell(); begin - return {self.}XmlAttrAllowincell.Value; + return ifnil({self.}XmlAttrAllowincell.Value) ? fallback_.XmlAttrAllowincell.Value : {self.}XmlAttrAllowincell.Value; end; -function Shape.WriteXmlAttrAllowincell(_value); +function Shape.WriteXmlAttrAllowincell(_value: any); begin if ifnil({self.}XmlAttrAllowincell) then begin {self.}XmlAttrAllowincell := new OpenXmlAttribute("o", "allowincell", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAllowincell; + attributes_["o:allowincell"] := {self.}XmlAttrAllowincell; end {self.}XmlAttrAllowincell.Value := _value; end; function Shape.ReadXmlAttrFillcolor(); begin - return {self.}XmlAttrFillcolor.Value; + return ifnil({self.}XmlAttrFillcolor.Value) ? fallback_.XmlAttrFillcolor.Value : {self.}XmlAttrFillcolor.Value; end; -function Shape.WriteXmlAttrFillcolor(_value); +function Shape.WriteXmlAttrFillcolor(_value: any); begin if ifnil({self.}XmlAttrFillcolor) then begin {self.}XmlAttrFillcolor := new OpenXmlAttribute("", "fillcolor", nil); - attributes_[length(attributes_)] := {self.}XmlAttrFillcolor; + attributes_["fillcolor"] := {self.}XmlAttrFillcolor; end {self.}XmlAttrFillcolor.Value := _value; end; function Shape.ReadXmlAttrStroked(); begin - return {self.}XmlAttrStroked.Value; + return ifnil({self.}XmlAttrStroked.Value) ? fallback_.XmlAttrStroked.Value : {self.}XmlAttrStroked.Value; end; -function Shape.WriteXmlAttrStroked(_value); +function Shape.WriteXmlAttrStroked(_value: any); begin if ifnil({self.}XmlAttrStroked) then begin {self.}XmlAttrStroked := new OpenXmlAttribute("", "stroked", nil); - attributes_[length(attributes_)] := {self.}XmlAttrStroked; + attributes_["stroked"] := {self.}XmlAttrStroked; end {self.}XmlAttrStroked.Value := _value; end; function Shape.ReadXmlAttrOle(); begin - return {self.}XmlAttrOle.Value; + return ifnil({self.}XmlAttrOle.Value) ? fallback_.XmlAttrOle.Value : {self.}XmlAttrOle.Value; end; -function Shape.WriteXmlAttrOle(_value); +function Shape.WriteXmlAttrOle(_value: any); begin if ifnil({self.}XmlAttrOle) then begin {self.}XmlAttrOle := new OpenXmlAttribute("o", "ole", nil); - attributes_[length(attributes_)] := {self.}XmlAttrOle; + attributes_["o:ole"] := {self.}XmlAttrOle; end {self.}XmlAttrOle.Value := _value; end; @@ -1680,7 +2080,26 @@ begin {self.}XmlChildFill := new Fill(self, {self.}Prefix, "fill"); container_.Set({self.}XmlChildFill); end - return {self.}XmlChildFill; + return {self.}XmlChildFill and not {self.}XmlChildFill.Removed ? {self.}XmlChildFill : fallback_.Fill; +end; + +function Shape.WriteXmlChildFill(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildFill) then + {self.}RemoveChild({self.}XmlChildFill); + end + else if v is class(Fill) then + begin + v.Parent := self; + {self.}XmlChildFill := v; + container_.Set({self.}XmlChildFill); + end + else begin + raise "Invalid assignment: Fill expects Fill or nil"; + end end; function Shape.ReadXmlChildTextbox(): Textbox; @@ -1690,7 +2109,26 @@ begin {self.}XmlChildTextbox := new Textbox(self, {self.}Prefix, "textbox"); container_.Set({self.}XmlChildTextbox); end - return {self.}XmlChildTextbox; + return {self.}XmlChildTextbox and not {self.}XmlChildTextbox.Removed ? {self.}XmlChildTextbox : fallback_.Textbox; +end; + +function Shape.WriteXmlChildTextbox(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTextbox) then + {self.}RemoveChild({self.}XmlChildTextbox); + end + else if v is class(Textbox) then + begin + v.Parent := self; + {self.}XmlChildTextbox := v; + container_.Set({self.}XmlChildTextbox); + end + else begin + raise "Invalid assignment: Textbox expects Textbox or nil"; + end end; function Shape.ReadXmlChildTextpath(): Textpath; @@ -1700,7 +2138,26 @@ begin {self.}XmlChildTextpath := new Textpath(self, {self.}Prefix, "textpath"); container_.Set({self.}XmlChildTextpath); end - return {self.}XmlChildTextpath; + return {self.}XmlChildTextpath and not {self.}XmlChildTextpath.Removed ? {self.}XmlChildTextpath : fallback_.Textpath; +end; + +function Shape.WriteXmlChildTextpath(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTextpath) then + {self.}RemoveChild({self.}XmlChildTextpath); + end + else if v is class(Textpath) then + begin + v.Parent := self; + {self.}XmlChildTextpath := v; + container_.Set({self.}XmlChildTextpath); + end + else begin + raise "Invalid assignment: Textpath expects Textpath or nil"; + end end; function Shape.ReadXmlChildImagedata(): Imagedata; @@ -1710,7 +2167,26 @@ begin {self.}XmlChildImagedata := new Imagedata(self, {self.}Prefix, "imagedata"); container_.Set({self.}XmlChildImagedata); end - return {self.}XmlChildImagedata; + return {self.}XmlChildImagedata and not {self.}XmlChildImagedata.Removed ? {self.}XmlChildImagedata : fallback_.Imagedata; +end; + +function Shape.WriteXmlChildImagedata(_p1: any; _p2: any); +begin + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildImagedata) then + {self.}RemoveChild({self.}XmlChildImagedata); + end + else if v is class(Imagedata) then + begin + v.Parent := self; + {self.}XmlChildImagedata := v; + container_.Set({self.}XmlChildImagedata); + end + else begin + raise "Invalid assignment: Imagedata expects Imagedata or nil"; + end end; function Shape.ReadXmlChildWrap(): Wrap; @@ -1720,23 +2196,42 @@ begin {self.}XmlChildWrap := new Wrap(self, "w10", "wrap"); container_.Set({self.}XmlChildWrap); end - return {self.}XmlChildWrap; + return {self.}XmlChildWrap and not {self.}XmlChildWrap.Removed ? {self.}XmlChildWrap : fallback_.Wrap; end; -function Wrap.Create();overload; +function Shape.WriteXmlChildWrap(_p1: any; _p2: any); begin - {self.}Create(nil, "w10", "wrap"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildWrap) then + {self.}RemoveChild({self.}XmlChildWrap); + end + else if v is class(Wrap) then + begin + v.Parent := self; + {self.}XmlChildWrap := v; + container_.Set({self.}XmlChildWrap); + end + else begin + raise "Invalid assignment: Wrap expects Wrap or nil"; + end end; -function Wrap.Create(_node: XmlNode);overload; +function Wrap.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "w10", "wrap"); end; -function Wrap.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Wrap.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function Wrap.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Wrap.Init();override; @@ -1756,7 +2251,7 @@ function Wrap.Copy(_obj: Wrap);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Anchorx) then {self.}Anchorx := _obj.Anchorx; if not ifnil(_obj.Anchory) then @@ -1764,6 +2259,16 @@ begin tslassigning := tslassigning_backup; end; +function Wrap.Clone(): Wrap;override; +begin + obj := new Wrap(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Anchorx) then + obj.Anchorx := {self.}Anchorx; + if not ifnil({self.}Anchory) then + obj.Anchory := {self.}Anchory; + return obj; +end; + function Wrap.ConvertToPoint();override; begin @@ -1771,48 +2276,48 @@ end; function Wrap.ReadXmlAttrAnchorx(); begin - return {self.}XmlAttrAnchorx.Value; + return ifnil({self.}XmlAttrAnchorx.Value) ? fallback_.XmlAttrAnchorx.Value : {self.}XmlAttrAnchorx.Value; end; -function Wrap.WriteXmlAttrAnchorx(_value); +function Wrap.WriteXmlAttrAnchorx(_value: any); begin if ifnil({self.}XmlAttrAnchorx) then begin {self.}XmlAttrAnchorx := new OpenXmlAttribute("", "anchorx", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAnchorx; + attributes_["anchorx"] := {self.}XmlAttrAnchorx; end {self.}XmlAttrAnchorx.Value := _value; end; function Wrap.ReadXmlAttrAnchory(); begin - return {self.}XmlAttrAnchory.Value; + return ifnil({self.}XmlAttrAnchory.Value) ? fallback_.XmlAttrAnchory.Value : {self.}XmlAttrAnchory.Value; end; -function Wrap.WriteXmlAttrAnchory(_value); +function Wrap.WriteXmlAttrAnchory(_value: any); begin if ifnil({self.}XmlAttrAnchory) then begin {self.}XmlAttrAnchory := new OpenXmlAttribute("", "anchory", nil); - attributes_[length(attributes_)] := {self.}XmlAttrAnchory; + attributes_["anchory"] := {self.}XmlAttrAnchory; end {self.}XmlAttrAnchory.Value := _value; end; -function Fill.Create();overload; +function Fill.create();overload; begin - {self.}Create(nil, "v", "fill"); + {self.}create(nil, "v", "fill"); end; -function Fill.Create(_node: XmlNode);overload; +function Fill.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Fill.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Fill.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Fill.Init();override; @@ -1831,12 +2336,20 @@ function Fill.Copy(_obj: Fill);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Opacity) then {self.}Opacity := _obj.Opacity; tslassigning := tslassigning_backup; end; +function Fill.Clone(): Fill;override; +begin + obj := new Fill(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Opacity) then + obj.Opacity := {self.}Opacity; + return obj; +end; + function Fill.ConvertToPoint();override; begin @@ -1844,33 +2357,33 @@ end; function Fill.ReadXmlAttrOpacity(); begin - return {self.}XmlAttrOpacity.Value; + return ifnil({self.}XmlAttrOpacity.Value) ? fallback_.XmlAttrOpacity.Value : {self.}XmlAttrOpacity.Value; end; -function Fill.WriteXmlAttrOpacity(_value); +function Fill.WriteXmlAttrOpacity(_value: any); begin if ifnil({self.}XmlAttrOpacity) then begin {self.}XmlAttrOpacity := new OpenXmlAttribute("", "opacity", nil); - attributes_[length(attributes_)] := {self.}XmlAttrOpacity; + attributes_["opacity"] := {self.}XmlAttrOpacity; end {self.}XmlAttrOpacity.Value := _value; end; -function Imagedata.Create();overload; +function Imagedata.create();overload; begin - {self.}Create(nil, "v", "imagedata"); + {self.}create(nil, "v", "imagedata"); end; -function Imagedata.Create(_node: XmlNode);overload; +function Imagedata.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Imagedata.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Imagedata.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Imagedata.Init();override; @@ -1890,7 +2403,7 @@ function Imagedata.Copy(_obj: Imagedata);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Id) then {self.}Id := _obj.Id; if not ifnil(_obj.Title) then @@ -1898,6 +2411,16 @@ begin tslassigning := tslassigning_backup; end; +function Imagedata.Clone(): Imagedata;override; +begin + obj := new Imagedata(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + if not ifnil({self.}Title) then + obj.Title := {self.}Title; + return obj; +end; + function Imagedata.ConvertToPoint();override; begin @@ -1905,48 +2428,48 @@ end; function Imagedata.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function Imagedata.WriteXmlAttrId(_value); +function Imagedata.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("r", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["r:id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; function Imagedata.ReadXmlAttrTitle(); begin - return {self.}XmlAttrTitle.Value; + return ifnil({self.}XmlAttrTitle.Value) ? fallback_.XmlAttrTitle.Value : {self.}XmlAttrTitle.Value; end; -function Imagedata.WriteXmlAttrTitle(_value); +function Imagedata.WriteXmlAttrTitle(_value: any); begin if ifnil({self.}XmlAttrTitle) then begin {self.}XmlAttrTitle := new OpenXmlAttribute("o", "title", nil); - attributes_[length(attributes_)] := {self.}XmlAttrTitle; + attributes_["o:title"] := {self.}XmlAttrTitle; end {self.}XmlAttrTitle.Value := _value; end; -function Textbox.Create();overload; +function Textbox.create();overload; begin - {self.}Create(nil, "v", "textbox"); + {self.}create(nil, "v", "textbox"); end; -function Textbox.Create(_node: XmlNode);overload; +function Textbox.create(_node: XmlNode);overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + inherited create(_node); end; -function Textbox.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function Textbox.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function Textbox.Init();override; @@ -1965,12 +2488,27 @@ function Textbox.Copy(_obj: Textbox);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.XmlChildTxbxContent) then {self.}TxbxContent.Copy(_obj.XmlChildTxbxContent); tslassigning := tslassigning_backup; end; +function Textbox.Clone(): Textbox;override; +begin + obj := new Textbox(nil, {self.}Prefix, {self.}LocalName); + pre := {self.}Prefix ? {self.}Prefix + ":" : ""; + elements := {self.}Elements(); + for _,element in elements do + begin + case element.ElementName of + "w:txbxContent": obj.TxbxContent := element.Clone(); + else obj.AppendChild(element.Clone()); + end + end + return obj; +end; + function Textbox.ConvertToPoint();override; begin if not ifnil({self.}XmlChildTxbxContent) then @@ -1984,23 +2522,42 @@ begin {self.}XmlChildTxbxContent := new DocxML.TxbxContent(self, "w", "txbxContent"); container_.Set({self.}XmlChildTxbxContent); end - return {self.}XmlChildTxbxContent; + return {self.}XmlChildTxbxContent and not {self.}XmlChildTxbxContent.Removed ? {self.}XmlChildTxbxContent : fallback_.TxbxContent; end; -function OLEObject.Create();overload; +function Textbox.WriteXmlChildTxbxContent(_p1: any; _p2: any); begin - {self.}Create(nil, "o", "OLEObject"); + v := realparamcount = 1 ? _p1 : _p2; + if ifnil(v) then + begin + if ifObj({self.}XmlChildTxbxContent) then + {self.}RemoveChild({self.}XmlChildTxbxContent); + end + else if v is class(TxbxContent) then + begin + v.Parent := self; + {self.}XmlChildTxbxContent := v; + container_.Set({self.}XmlChildTxbxContent); + end + else begin + raise "Invalid assignment: TxbxContent expects TxbxContent or nil"; + end end; -function OLEObject.Create(_node: XmlNode);overload; +function OLEObject.create();overload; begin - class(OpenXmlCompositeElement).Create(_node: XmlNode); + {self.}create(nil, "o", "OLEObject"); end; -function OLEObject.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +function OLEObject.create(_node: XmlNode);overload; +begin + inherited create(_node); +end; + +function OLEObject.create(_parent: tslobj; _prefix: string; _local_name: string);overload; begin setsysparam(pn_calcctrlword(), getsysparam(pn_calcctrlword()) .| 0x200); - class(OpenXmlCompositeElement).Create(_parent, _prefix, _local_name); + inherited create(_parent, _prefix, _local_name); end; function OLEObject.Init();override; @@ -2024,7 +2581,7 @@ function OLEObject.Copy(_obj: OLEObject);override; begin tslassigning_backup := tslassigning; tslassigning := 1; - class(OpenXmlCompositeElement).Copy(_obj); + inherited Copy(_obj); if not ifnil(_obj.Type) then {self.}Type := _obj.Type; if not ifnil(_obj.ProgID) then @@ -2040,6 +2597,24 @@ begin tslassigning := tslassigning_backup; end; +function OLEObject.Clone(): OLEObject;override; +begin + obj := new OLEObject(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Type) then + obj.Type := {self.}Type; + if not ifnil({self.}ProgID) then + obj.ProgID := {self.}ProgID; + if not ifnil({self.}ShapeID) then + obj.ShapeID := {self.}ShapeID; + if not ifnil({self.}DrawAspect) then + obj.DrawAspect := {self.}DrawAspect; + if not ifnil({self.}ObjectID) then + obj.ObjectID := {self.}ObjectID; + if not ifnil({self.}Id) then + obj.Id := {self.}Id; + return obj; +end; + function OLEObject.ConvertToPoint();override; begin @@ -2047,90 +2622,90 @@ end; function OLEObject.ReadXmlAttrType(); begin - return {self.}XmlAttrType.Value; + return ifnil({self.}XmlAttrType.Value) ? fallback_.XmlAttrType.Value : {self.}XmlAttrType.Value; end; -function OLEObject.WriteXmlAttrType(_value); +function OLEObject.WriteXmlAttrType(_value: any); begin if ifnil({self.}XmlAttrType) then begin {self.}XmlAttrType := new OpenXmlAttribute({self.}Prefix, "Type", nil); - attributes_[length(attributes_)] := {self.}XmlAttrType; + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "Type" : "Type"] := {self.}XmlAttrType; end {self.}XmlAttrType.Value := _value; end; function OLEObject.ReadXmlAttrProgID(); begin - return {self.}XmlAttrProgID.Value; + return ifnil({self.}XmlAttrProgID.Value) ? fallback_.XmlAttrProgID.Value : {self.}XmlAttrProgID.Value; end; -function OLEObject.WriteXmlAttrProgID(_value); +function OLEObject.WriteXmlAttrProgID(_value: any); begin if ifnil({self.}XmlAttrProgID) then begin {self.}XmlAttrProgID := new OpenXmlAttribute({self.}Prefix, "ProgID", nil); - attributes_[length(attributes_)] := {self.}XmlAttrProgID; + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "ProgID" : "ProgID"] := {self.}XmlAttrProgID; end {self.}XmlAttrProgID.Value := _value; end; function OLEObject.ReadXmlAttrShapeID(); begin - return {self.}XmlAttrShapeID.Value; + return ifnil({self.}XmlAttrShapeID.Value) ? fallback_.XmlAttrShapeID.Value : {self.}XmlAttrShapeID.Value; end; -function OLEObject.WriteXmlAttrShapeID(_value); +function OLEObject.WriteXmlAttrShapeID(_value: any); begin if ifnil({self.}XmlAttrShapeID) then begin {self.}XmlAttrShapeID := new OpenXmlAttribute({self.}Prefix, "ShapeID", nil); - attributes_[length(attributes_)] := {self.}XmlAttrShapeID; + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "ShapeID" : "ShapeID"] := {self.}XmlAttrShapeID; end {self.}XmlAttrShapeID.Value := _value; end; function OLEObject.ReadXmlAttrDrawAspect(); begin - return {self.}XmlAttrDrawAspect.Value; + return ifnil({self.}XmlAttrDrawAspect.Value) ? fallback_.XmlAttrDrawAspect.Value : {self.}XmlAttrDrawAspect.Value; end; -function OLEObject.WriteXmlAttrDrawAspect(_value); +function OLEObject.WriteXmlAttrDrawAspect(_value: any); begin if ifnil({self.}XmlAttrDrawAspect) then begin {self.}XmlAttrDrawAspect := new OpenXmlAttribute({self.}Prefix, "DrawAspect", nil); - attributes_[length(attributes_)] := {self.}XmlAttrDrawAspect; + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "DrawAspect" : "DrawAspect"] := {self.}XmlAttrDrawAspect; end {self.}XmlAttrDrawAspect.Value := _value; end; function OLEObject.ReadXmlAttrObjectID(); begin - return {self.}XmlAttrObjectID.Value; + return ifnil({self.}XmlAttrObjectID.Value) ? fallback_.XmlAttrObjectID.Value : {self.}XmlAttrObjectID.Value; end; -function OLEObject.WriteXmlAttrObjectID(_value); +function OLEObject.WriteXmlAttrObjectID(_value: any); begin if ifnil({self.}XmlAttrObjectID) then begin {self.}XmlAttrObjectID := new OpenXmlAttribute({self.}Prefix, "DrawAspect", nil); - attributes_[length(attributes_)] := {self.}XmlAttrObjectID; + attributes_[{self.}Prefix ? {self.}Prefix + ":" + "DrawAspect" : "DrawAspect"] := {self.}XmlAttrObjectID; end {self.}XmlAttrObjectID.Value := _value; end; function OLEObject.ReadXmlAttrId(); begin - return {self.}XmlAttrId.Value; + return ifnil({self.}XmlAttrId.Value) ? fallback_.XmlAttrId.Value : {self.}XmlAttrId.Value; end; -function OLEObject.WriteXmlAttrId(_value); +function OLEObject.WriteXmlAttrId(_value: any); begin if ifnil({self.}XmlAttrId) then begin {self.}XmlAttrId := new OpenXmlAttribute("r", "id", nil); - attributes_[length(attributes_)] := {self.}XmlAttrId; + attributes_["r:id"] := {self.}XmlAttrId; end {self.}XmlAttrId.Value := _value; end; diff --git a/openxml/OpenXmlCompositeElement.tsf b/openxml/OpenXmlCompositeElement.tsf index 017cfce..3bc6acb 100644 --- a/openxml/OpenXmlCompositeElement.tsf +++ b/openxml/OpenXmlCompositeElement.tsf @@ -9,7 +9,7 @@ public function AppendChild(_element: OpenXmlElement); function InsertAfter(_element: OpenXmlElement; _pos_element: OpenXmlElement); function RemoveChild(_element: OpenXmlElement); - // function InsertBefore(_pos_obj: tslobj; _obj: tslobj); + function InsertBefore(_element: OpenXmlElement; _pos_element: OpenXmlElement); // function PrependChild(_obj: tslobj); // function SetAttribute(_obj: OpenXmlAttribute); @@ -37,11 +37,12 @@ begin node := node.NextElement(); end tslassigning := tslassigning_backup; + deserialized_ := false; end; function OpenXmlCompositeElement.Deserialize();override; begin - if not ifObj({self.}XmlNode) then return; + if deserialized_ or not ifObj({self.}XmlNode) then return; attrs := {self.}XmlNode.Attributes(); for k, v in attrs do begin @@ -58,23 +59,27 @@ begin child_elements := container_.GetElements(); for k, v in child_elements do v.Deserialize(); + deserialized_ := true; end; function OpenXmlCompositeElement.Serialize();override; begin if {self.}DeleteSelf() then return; - {self.}GetNode(); + if {self.}Enable then {self.}GetNode(); // xmlns for k, v in xmlns_ do - {self.}XmlNode.SetAttribute(v.ElementName, v.Value); + if not ifnil(v.Value) then + {self.}GetNode().SetAttribute(v.ElementName, v.Value); + else if {self.}XmlNode then + {self.}GetNode().DeleteAttribute(v.ElementName); // Attributes for k, v in attributes_ do if not ifnil(v.Value) then - {self.}XmlNode.SetAttribute(v.ElementName, v.Value); + {self.}GetNode().SetAttribute(v.ElementName, v.Value); else if {self.}XmlNode then - {self.}XmlNode.DeleteAttribute(v.ElementName); + {self.}GetNode().DeleteAttribute(v.ElementName); // Children child_elements := container_.GetElements(); @@ -89,7 +94,7 @@ begin for k, v in child_elements do begin arr := array("type": "element", "name": v.ElementName, "attributes": array()); - if v is Class(OpenXmlTextElement) or v is Class(OpenXmlCompositeElement) then + if v is class(OpenXmlTextElement) or v is class(OpenXmlCompositeElement) then begin marshal := v.Marshal(); if length(marshal["children"]) = 0 and length(marshal["attributes"]) = 0 then continue; @@ -97,7 +102,7 @@ begin arr["attributes"] union= marshal["attributes"]; child_arr[length(child_arr)] := arr; end - else if v is Class(OpenXmlSimpleType) then + else if v is class(OpenXmlSimpleType) then begin marshal := v.Marshal(); if length(marshal) > 0 then child_arr[length(child_arr)] := arr; @@ -138,11 +143,13 @@ end; function OpenXmlCompositeElement.AppendChild(_element: OpenXmlElement); begin + _element.Parent := self; container_.Append(_element); end; function OpenXmlCompositeElement.InsertAfter(_element: OpenXmlElement; _pos_element: OpenXmlElement); begin + _element.Parent := self; container_.InsertAfter(_element, _pos_element); end; @@ -151,3 +158,8 @@ begin _element.Removed := true; end; +function OpenXmlCompositeElement.InsertBefore(_element: OpenXmlElement; _pos_element: OpenXmlElement); +begin + _element.Parent := self; + container_.InsertBefore(_element, _pos_element); +end; diff --git a/openxml/OpenXmlElement.tsf b/openxml/OpenXmlElement.tsf index 3b87a21..9dcbfe7 100644 --- a/openxml/OpenXmlElement.tsf +++ b/openxml/OpenXmlElement.tsf @@ -5,6 +5,7 @@ public function Init();virtual; function InitNode(_node: XmlNode);virtual; function Copy(_obj: tslobj);virtual; + function Clone(): OpenXmlElement;virtual; function Deserialize();virtual; function Serialize();virtual; function Marshal(): tableArray;virtual; @@ -31,6 +32,8 @@ public ElementName: string; Removed: boolean; // 节点删除标记,最后Serialize时候统一删除 + Enable: boolean; // 是否启用 没有属性 + protected attributes_: array of OpenXmlAttribute; // 属性 attributes_pf_: tableArray; @@ -38,6 +41,7 @@ protected sorted_child_: tableArray; container_: TSOfficeContainer; fallback_: OpenXmlElement; // 代理对象 + deserialized_: boolean; // 是否已反序列化 end; function OpenXmlElement.Create(_node: XmlNode);overload; @@ -57,9 +61,11 @@ begin {self.}XmlNode := nil; {self.}ElementName := ifString({self.}Prefix) and {self.}Prefix <> "" ? format("%s:%s", {self.}Prefix, {self.}LocalName) : {self.}LocalName; {self.}Removed := false; + {self.}Enable := false; {self.}Init(); xmlns_ := array(); fallback_ := nil; + deserialized_ := false; end; function OpenXmlElement.SetFallback(_fallback: OpenXmlElement); diff --git a/openxml/OpenXmlSimpleType.tsf b/openxml/OpenXmlSimpleType.tsf index 0d8f130..5204ad9 100644 --- a/openxml/OpenXmlSimpleType.tsf +++ b/openxml/OpenXmlSimpleType.tsf @@ -3,6 +3,7 @@ public function Init();override; function InitNode(_node: XmlNode);override; function Copy(_obj: tslobj);override; + function Clone(): OpenXmlSimpleType;override; function Deserialize();override; function Serialize();override; function Marshal(): tableArray;override; @@ -18,27 +19,33 @@ public // IsApplied: boolean; // 是否已经应用,和val值有关 property IsApplied read ReadIsApplied; function ReadIsApplied(); - -public - Enable: boolean; // 是否启用 没有属性,需要通过val写属性 end; function OpenXmlSimpleType.Init();override; begin - {self.}Enable := false; + // {self.}Enable := false; end; function OpenXmlSimpleType.InitNode(_node: XmlNode);override; begin {self.}XmlNode := ifObj(_node) ? _node : nil; + deserialized_ := false; end; function OpenXmlSimpleType.Copy(_obj: tslobj);override; begin - if not ifnil(_obj.Enable) then {self.}Enable := _obj.Enable; + {self.}Enable := _obj.Enable; if not ifnil(_obj.XmlAttrVal.Value) then {self.}Val := _obj.XmlAttrVal.Value; end; +function OpenXmlSimpleType.Clone(): OpenXmlSimpleType;override; +begin + obj := new OpenXmlSimpleType(nil, {self.}Prefix, {self.}LocalName); + obj.Enable := {self.}Enable; + if not ifnil({self.}XmlAttrVal.Value) then obj.Val := {self.}XmlAttrVal.Value; + return obj; +end; + function OpenXmlSimpleType.Marshal(): tableArray;override; begin if not {self.}Enable then return array(); @@ -50,6 +57,7 @@ end; function OpenXmlSimpleType.Deserialize();override; begin + if deserialized_ then return; if ifObj({self.}XmlNode) then begin attrs := {self.}XmlNode.Attributes(); @@ -67,13 +75,14 @@ begin {self.}Enable := false; {self.}XmlAttrVal := nil; end + deserialized_ := true; end; function OpenXmlSimpleType.Serialize();override; begin if not ifObj({self.}XmlNode) then begin - {self.}GetNode(); + if {self.}Enable then {self.}GetNode(); if not ifnil({self.}XmlAttrVal.Value) then {self.}XmlNode.SetAttribute({self.}XmlAttrVal.ElementName, {self.}XmlAttrVal.Value); end else begin @@ -102,6 +111,6 @@ end; function OpenXmlSimpleType.ReadIsApplied(); begin if {self.}Enable then - return {self.}XmlAttrVal.Value = "0" or {self.}XmlAttrVal.Value = "false" ? false : true; + return {self.}XmlAttrVal.Value = "0" or {self.}XmlAttrVal.Value = "false" or {self.}XmlAttrVal.Value = "off" ? false : true; return false; end; diff --git a/openxml/OpenXmlTextElement.tsf b/openxml/OpenXmlTextElement.tsf index 0ce74e5..b3e5ebf 100644 --- a/openxml/OpenXmlTextElement.tsf +++ b/openxml/OpenXmlTextElement.tsf @@ -2,6 +2,7 @@ type OpenXmlTextElement = class(OpenXmlElement) public function InitNode(_node: XmlNode);override; function Copy(_obj: tslobj);virtual; + function Clone(): OpenXmlTextElement;virtual; function Deserialize();override; function Serialize();override; function Marshal(): tableArray;override; @@ -13,6 +14,7 @@ end; function OpenXmlTextElement.InitNode(_node: XmlNode);override; begin {self.}XmlNode := ifObj(_node) ? _node : nil; + deserialized_ := false; end; function OpenXmlTextElement.Copy(_obj: tslobj);virtual; @@ -20,6 +22,13 @@ begin if not ifnil(_obj.Text) then {self.}Text := _obj.Text; end; +function OpenXmlTextElement.Clone(): OpenXmlTextElement;virtual; +begin + obj := new OpenXmlTextElement(nil, {self.}Prefix, {self.}LocalName); + if not ifnil({self.}Text) then obj.Text := {self.}Text; + return obj; +end + function OpenXmlTextElement.Marshal(): tableArray;override; begin arr := array("type": "element", "name": name_, "attributes": array(), "children": array()); @@ -31,7 +40,7 @@ end; function OpenXmlTextElement.Deserialize();override; begin - if not ifObj({self.}XmlNode) then return; + if deserialized_ or not ifObj({self.}XmlNode) then return; {self.}Text := {self.}XmlNode.GetText(); attrs := {self.}XmlNode.Attributes(); for k, v in attrs do @@ -46,6 +55,7 @@ begin if ifnil(pf) then continue; pf.Do(v); end + deserialized_ := true; end; function OpenXmlTextElement.Serialize();override;