type TSDocxComponentsWare = class(Components) public function Create(); function GetStyles(): Styles; function GetStylesAdapter(): StylesAdapter; function GetDocumentRelsAdapter(): RelationShipsAdapter; function GetNumberingWare(): TSNumberingWare; private styles_deserialize_flag_; styles_adapter_; document_rels_adapter_; numbering_ware_; end; function TSDocxComponentsWare.Create(); begin class(Components).Create(); end; function TSDocxComponentsWare.GetStyles(): Styles; begin if styles_deserialize_flag_ then return {self.}Styles; {self.}Styles.Deserialize(); styles_deserialize_flag_ := true; return {self.}Styles; end; function TSDocxComponentsWare.GetStylesAdapter(): StylesAdapter; begin if styles_adapter_ then return styles_adapter_; styles_adapter_ := new StylesAdapter({self.}GetStyles()); return styles_adapter_; end; function TSDocxComponentsWare.GetDocumentRelsAdapter(): RelationShipsAdapter; begin if document_rels_adapter_ then return document_rels_adapter_; {self.}DocumentRels.Deserialize(); document_rels_adapter_ := new RelationShipsAdapter({self.}DocumentRels); return document_rels_adapter_; end; function TSDocxComponentsWare.GetNumberingWare(): TSNumberingWare; begin if numbering_ware_ then return numbering_ware_; if not {self.}Numbering then return nil; {self.}Numbering.Deserialize(); numbering_ware_ := new TSNumberingWare({self.}Numbering); return numbering_ware_; end;