OfficeVba/docx/TSDocxParagraph.tsf

104 lines
2.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;