Type TSDocxParagraph = Class(TSDocxParagraphFormat) public Function Init(docx, paragraph, index); Function Object(); Function Index(); private paragraph_; // TOfficeObj("TParagraph") index_; // 第N个段落,1开始计数 range_; document_; public // Methods Function Indent(); Function JoinList(); Function ListAdvanceTo(); Function Next(Count); Function Outdent(); Function OutlineDemote(); Function OutlineDemoteToBody(); Function OutlinePromote(); Function Previous(Count); Function ResetAdvanceTo(); Function SelectNumber(); Function SeparateList(); // Properties property CollapsedState read ReadCollapsedState write WriteCollapsedState; property DropCap read ReadDropCap; property Format read ReadFormat write WriteFormat; property ID read ReadID write WriteID; property IsStyleSeparator read ReadIsStyleSeparator; property ListNumberOriginal read ReadListNumberOriginal; property Range read ReadRange; Function WriteCollapsedState(value); Function ReadCollapsedState(); Function ReadDropCap(); Function WriteFormat(value); Function ReadFormat(); Function WriteID(value); Function ReadID(); Function ReadIsStyleSeparator(); Function ReadListNumberOriginal(); Function ReadRange(); End; // ============== 实现 ================= // Function TSDocxParagraph.Init(docx, paragraph, index); Begin paragraph_ := paragraph; index_ := index; range_ := nil; class(TSDocxParagraphFormat).Init(docx, paragraph_.pPr); document_ := self.Parent; while not (document_ is class(TSDocxDocument)) do document_ := document_.Parent; End; Function TSDocxParagraph.Object(); Begin return paragraph_; End; Function TSDocxParagraph.Index(); Begin return index_; End; // Methods Function TSDocxParagraph.Next(Count); Begin return document_.Paragraphs.Item(index_ + Count); End; Function TSDocxParagraph.Previous(Count); Begin return document_.Paragraphs.Item(index_ - Count); End; // Properties Function TSDocxParagraph.ReadRange(); Begin if ifnil(range_) then begin obj := new TSWdRange(docx_.Body().Root(), paragraph_.Root()); range_ := new TSDocxRange(self.Application, self.Creator, self); range_.Init(docx_, obj); end return range_; End; Function TSDocxParagraph.ReadFormat(); Begin return self; End; Function TSDocxParagraph.WriteFormat(value); Begin self.ReWrite(value); End;