98 lines
2.2 KiB
Plaintext
98 lines
2.2 KiB
Plaintext
Type TSDocxParagraph = Class(TSDocxParagraphFormat)
|
||
|
||
public
|
||
Function Init(docx, paragraph, index);
|
||
Function Object();
|
||
|
||
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;
|
||
|
||
// 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;
|