Type TSDocxRange = class(TSVbaBase) Uses TSDocxEnumerations; public Function Init(docx, rangeObj); Function AddParagraph();overload; Function AddParagraph(direction);overload; Function AddTable(numRows, numColumns); Function InsertNewParagraph(); Function Clear(deleteAll); private Function CopyRunFormat(sourceRun, destRun); Function BreakIntoParagraphs(direction); private docx_; range_obj_; // TSWdRange range_font_; // TSDocxFontRange range_shading_; // TSDocxShadingRange paragraph_format_range_; // TSDocxParagraphFormatRange list_format_range_; // TSDocxListFormatRange borders_range_; // TSDocxBordersRange document_; // TSDocxDocument collapse_; public // Methods Function AutoFormat(); Function Calculate(); Function CheckGrammar(); Function CheckSpelling(CustomDictionary, IgnoreUppercase, AlwaysSuggest, CustomDictionary2, CustomDictionary3, CustomDictionary4, CustomDictionary5, CustomDictionary6, CustomDictionary7, CustomDictionary8, CustomDictionary9, CustomDictionary10); Function CheckSynonyms(); Function Collapse(Direction); Function ComputeStatistics(Statistic); Function ConvertHangulAndHanja(ConversionsMode, FastConversion, CheckHangulEnding, EnableRecentOrdering, CustomDictionary); Function ConvertToTable(Separator, NumRows, NumColumns, InitialColumnWidth, Format, ApplyBorders, ApplyShading, ApplyFont, ApplyColor, ApplyHeadingRows, ApplyLastRow, ApplyFirstColumn, ApplyLastColumn, AutoFit, AutoFitBehavior, DefaultTableBehavior); Function Copy(); Function CopyAsPicture(); Function Cut(); Function Delete(_Unit, Count); Function DetectLanguage(); Function EndOf(_Unit, Extend); Function Expand(_Unit); Function ExportAsFixedFormat(OutputFileName, ExportFormat, OpenAfterExport, OptimizeFor, ExportCurrentPage, Item, IncludeDocProps, KeepIRM, CreateBookmarks, DocStructureTags, BitmapMissingFonts, UseISO19005_1, FixedFormatExtClassPtr); Function ExportAsFixedFormat2(OutputFileName, ExportFormat, OpenAfterExport, OptimizeFor, ExportCurrentPage, Item, IncludeDocProps, KeepIRM, CreateBookmarks, DocStructureTags, BitmapMissingFonts, UseISO19005_1, OptimizeForImageQuality, FixedFormatExtClassPtr); Function ExportFragment(FileName, Format); Function GetSpellingSuggestions(CustomDictionary, IgnoreUppercase, MainDictionary, SuggestionMode, CustomDictionary2, CustomDictionary3, CustomDictionary4, CustomDictionary5, CustomDictionary6, CustomDictionary7, CustomDictionary8, CustomDictionary9, CustomDictionary10); Function GoTo(What, Which, Count, Name); Function GoToEditableRange(EditorID); Function GoToNext(What); Function GoToPrevious(What); Function ImportFragment(FileName, MatchDestination); Function InRange(Range); Function InsertAfter(Text); Function InsertAlignmentTab(Alignment, RelativeTo); Function InsertAutoText(Text); Function InsertBefore(Text); Function InsertBreak(Type); Function InsertCaption(_Label, Title, TitleAutoText, Position, ExcludeLabel); Function InsertCrossReference(ReferenceType, ReferenceKind, ReferenceItem, InsertAsHyperlink, IncludePosition, SeparateNumbers, SeparatorString); Function InsertDatabase(Format, Style, LinkToSource, Connection, SQLStatement, SQLStatement1, PasswordDocument, PasswordTemplate, WritePasswordDocument, WritePasswordTemplate, DataSource, From_, To_, IncludeFields); Function InsertDateTime(DateTimeFormat, InsertAsField, InsertAsFullWidth, DateLanguage, CalendarType); Function InsertFile(FileName, Range, ConfirmConversions, Link, Attachment); Function InsertParagraph(); Function InsertParagraphAfter(); Function InsertParagraphBefore(); Function InsertSymbol(CharacterNumber, Font, Unicode, Bias); Function InsertXML(XML, Transform); Function InStory(Range); Function IsEqual(Range); Function LookupNameProperties(); Function ModifyEnclosure(Style, Symbol, EnclosedText); Function Move(_Unit, Count); Function MoveEnd(_Unit, Count); Function MoveEndUntil(Cset, Count); Function MoveEndWhile(Cset, Count); Function MoveStart(_Unit, Count); Function MoveStartUntil(Cset, Count); Function MoveStartWhile(Cset, Count); Function MoveUnti(Cset, Count); Function MoveWhile(Cset, Count); Function Next(_Unit, Count); Function NextSubdocument(); Function Paste(); Function PasteAndFormat(Type); Function PasteAppendTable(); Function PasteAsNestedTable(); Function PasteExcelTable(LinkedToExcel, WordFormatting, RTF); Function PasteSpecial(IconIndex, Link, Placement, DisplayAsIcon, DataType, IconFileName, IconLabel); Function PhoneticGuide(Text, Alignment, Raise_, FontSize, FontName); Function Previous(_Unit, Count); Function PreviousSubdocument(); Function Relocate(Direction); Function Select(); Function SetListLevel(Level); Function SetRange(Start, _End); Function Sort(ExcludeHeader, FieldNumber, SortFieldType, SortOrder, FieldNumber2, SortFieldType2, SortOrder2, FieldNumber3, SortFieldType3, SortOrder3, SortColumn, Separator, CaseSensitive, BidiSort, IgnoreThe, IgnoreKashida, IgnoreDiacritics, IgnoreHe, LanguageID); Function SortAscending(); Function SortByHeadings(SortFieldType, SortOrder, CaseSensitive, BidiSort, IgnoreThe, IgnoreKashida, IgnoreDiacritics, IgnoreHe, LanguageID); Function SortDescending(); Function StartOf(_Unit, Extend); Function TCSCConverter(WdTCSCConverterDirection, CommonTerms, UseVariants); Function WholeStory(); // Properties property Bold read ReadBold write WriteBold; property BoldBi read ReadBoldBi write WriteBoldBi; property BookmarkID read ReadBookmarkID; property Bookmarks read ReadBookmarks; property Borders read ReadBorders; property Case_ read ReadCase write WriteCase; property Cells read ReadCells; property Characters read ReadCharacters; property CharacterStyle read ReadCharacterStyle; property CharacterWidth read ReadCharacterWidth write WriteCharacterWidth; property Columns read ReadColumns; property CombineCharacters read ReadCombineCharacters write WriteCombineCharacters; property Comments read ReadComments; property Conflicts read ReadConflicts; property ContentControls read ReadContentControls; property DisableCharacterSpaceGrid read ReadDisableCharacterSpaceGrid write WriteDisableCharacterSpaceGrid; property Document read ReadDocument; property Duplicate read ReadDuplicate; property Editors read ReadEditors; property EmphasisMark read ReadEmphasisMark write WriteEmphasisMark; property _End read ReadEnd write WriteEnd; property EndnoteOptions read ReadEndnoteOptions; property Endnotes read ReadEndnotes; property EnhMetaFileBits read ReadEnhMetaFileBits; property Fields read ReadFields; property Find read ReadFind; property FitTextWidth read ReadFitTextWidth write WriteFitTextWidth; property Font read ReadFont write WriteFont; property FootnoteOptions read ReadFootnoteOptions; property Footnotes read ReadFootnotes; property FormattedText read ReadFormattedText write WriteFormattedText; property FormFields read ReadFormFields; property Frames read ReadFrames; property GrammarChecked read ReadGrammarChecked write WriteGrammarChecked; property GrammaticalErrors read ReadGrammaticalErrors; property HighlightColorIndex read ReadHighlightColorIndex write WriteHighlightColorIndex; property HorizontalInVertical read ReadHorizontalInVertical write WriteHorizontalInVertical; property HTMLDivisions read ReadHTMLDivisions; property Hyperlinks read ReadHyperlinks; property ID read ReadID write WriteID; property Information read ReadInformation; property InlineShapes read ReadInlineShapes; property IsEndOfRowMark read ReadIsEndOfRowMark; property Italic read ReadItalic write WriteItalic; property ItalicBi read ReadItalicBi write WriteItalicBi; property Kana read ReadKana write WriteKana; property LanguageDetected read ReadLanguageDetected write WriteLanguageDetected; property LanguageID read ReadLanguageID write WriteLanguageID; property LanguageIDFarEast read ReadLanguageIDFarEast write WriteLanguageIDFarEast; property LanguageIDOther read ReadLanguageIDOther write WriteLanguageIDOther; property ListFormat read ReadListFormat; property ListParagraphs read ReadListParagraphs; property ListStyle read ReadListStyle; property Locks read ReadLocks; property NextStoryRange read ReadNextStoryRange; property NoProofing read ReadNoProofing write WriteNoProofing; property OMaths read ReadOMaths; property Orientation read ReadOrientation write WriteOrientation; property PageSetup read ReadPageSetup; property ParagraphFormat read ReadParagraphFormat write WriteParagraphFormat; property Paragraphs read ReadParagraphs; property ParagraphStyle read ReadParagraphStyle; property ParentContentControl read ReadParentContentControl; property PreviousBookmarkID read ReadPreviousBookmarkID; property ReadabilityStatistics read ReadReadabilityStatistics; property Revisions read ReadRevisions; property Rows read ReadRows; property Scripts read ReadScripts; property Sections read ReadSections; property Sentences read ReadSentences; property Shading read ReadShading; property ShapeRange read ReadShapeRange; property ShowAll read ReadShowAll write WriteShowAll; property SpellingChecked read ReadSpellingChecked write WriteSpellingChecked; property SpellingErrors read ReadSpellingErrors; property Start read ReadStart write WriteStart; property StoryLength read ReadStoryLength; property StoryType read ReadStoryType; property Style read ReadStyle write WriteStyle; property Subdocuments read ReadSubdocuments; property SynonymInfo read ReadSynonymInfo; property Tables read ReadTables; property TableStyle read ReadTableStyle; property Text read ReadText write WriteText; property TextRetrievalMode read ReadTextRetrievalMode write WriteTextRetrievalMode; property TextVisibleOnScreen read ReadTextVisibleOnScreen; property TopLevelTables read ReadTopLevelTables; property TwoLinesInOne read ReadTwoLinesInOne write WriteTwoLinesInOne; property Underline read ReadUnderline write WriteUnderline; property Updates read ReadUpdates; property WordOpenXML read ReadWordOpenXML; property Words read ReadWords; property XML read ReadXML; Function ReadXML(); Function ReadWords(); Function ReadWordOpenXML(); Function ReadUpdates(); Function WriteUnderline(value); Function ReadUnderline(); Function WriteTwoLinesInOne(value); Function ReadTwoLinesInOne(); Function ReadTopLevelTables(); Function ReadTextVisibleOnScreen(); Function WriteTextRetrievalMode(value); Function ReadTextRetrievalMode(); Function WriteText(value); Function ReadText(); Function ReadTableStyle(); Function ReadTables(); Function ReadSynonymInfo(); Function ReadSubdocuments(); Function WriteStyle(value); Function ReadStyle(); Function ReadStoryType(); Function ReadStoryLength(); Function WriteStart(value); Function ReadStart(); Function ReadSpellingErrors(); Function WriteSpellingChecked(value); Function ReadSpellingChecked(); Function WriteShowAll(value); Function ReadShowAll(); Function ReadShapeRange(); Function ReadShading(); Function ReadSentences(); Function ReadSections(); Function ReadScripts(); Function ReadRows(); Function ReadRevisions(); Function ReadReadabilityStatistics(); Function ReadPreviousBookmarkID(); Function ReadParentContentControl(); Function ReadParagraphStyle(); Function ReadParagraphs(); Function WriteParagraphFormat(value); Function ReadParagraphFormat(); Function ReadPageSetup(); Function WriteOrientation(value); Function ReadOrientation(); Function ReadOMaths(); Function WriteNoProofing(value); Function ReadNoProofing(); Function ReadNextStoryRange(); Function ReadLocks(); Function ReadListStyle(); Function ReadListParagraphs(); Function ReadListFormat(); Function WriteLanguageIDOther(value); Function ReadLanguageIDOther(); Function WriteLanguageIDFarEast(value); Function ReadLanguageIDFarEast(); Function WriteLanguageID(value); Function ReadLanguageID(); Function WriteLanguageDetected(value); Function ReadLanguageDetected(); Function WriteKana(value); Function ReadKana(); Function WriteItalicBi(value); Function ReadItalicBi(); Function WriteItalic(value); Function ReadItalic(); Function ReadIsEndOfRowMark(); Function ReadInlineShapes(); Function ReadInformation(Type); Function WriteID(value); Function ReadID(); Function ReadHyperlinks(); Function ReadHTMLDivisions(); Function WriteHorizontalInVertical(value); Function ReadHorizontalInVertical(); Function WriteHighlightColorIndex(value); Function ReadHighlightColorIndex(); Function ReadGrammaticalErrors(); Function WriteGrammarChecked(value); Function ReadGrammarChecked(); Function ReadFrames(); Function ReadFormFields(); Function WriteFormattedText(value); Function ReadFormattedText(); Function ReadFootnotes(); Function ReadFootnoteOptions(); Function WriteFont(value); Function ReadFont(); Function WriteFitTextWidth(value); Function ReadFitTextWidth(); Function ReadFind(); Function ReadFields(); Function ReadEnhMetaFileBits(); Function ReadEndnotes(); Function ReadEndnoteOptions(); Function WriteEnd(value); Function ReadEnd(); Function WriteEmphasisMark(value); Function ReadEmphasisMark(); Function ReadEditors(); Function ReadDuplicate(); Function ReadDocument(); Function WriteDisableCharacterSpaceGrid(value); Function ReadDisableCharacterSpaceGrid(); Function ReadContentControls(); Function ReadConflicts(); Function ReadComments(); Function WriteCombineCharacters(value); Function ReadCombineCharacters(); Function ReadColumns(); Function WriteCharacterWidth(value); Function ReadCharacterWidth(); Function ReadCharacterStyle(); Function ReadCharacters(); Function ReadCells(); Function WriteCase(value); Function ReadCase(); Function ReadBorders(index); Function ReadBookmarks(); Function ReadBookmarkID(); Function WriteBoldBi(value); Function ReadBoldBi(); Function WriteBold(value); Function ReadBold(); End; // ============== 实现 ================= // Function TSDocxRange.Init(docx, rangeObj); Begin docx_ := docx; range_obj_ := rangeObj; range_font_ := new TSDocxFontRange(self.Application, self.Creator, self); range_font_.Init(range_obj_); range_shading_ := new TSDocxShadingRange(self.Application, self.Creator, self); range_shading_.Init(range_obj_); paragraph_format_range_ := new TSDocxParagraphFormatRange(self.Application, self.Creator, self); paragraph_format_range_.Init(docx_, range_obj_); list_format_range_ := new TSDocxListFormatRange(self.Application, self.Creator, self); list_format_range_.Init(docx_, range_obj_); borders_range_ := new TSDocxBordersRange(self.Application, self.Creator, self); borders_range_.Init(range_obj_); collapse_ := nil; document_ := self.Parent; while not (document_ is class(TSDocxDocument)) do document_ := document_.Parent; End; Function TSDocxRange.AddParagraph();overload; Begin if collapse_ = TSDocxEnumerations.wdCollapseEnd() then return self.AddParagraph("after"); return self.AddParagraph("before"); End; Function TSDocxRange.AddParagraph(direction);overload; Begin [flag, last_node, new_node] := self.BreakIntoParagraphs(direction); if not flag then new_node := direction = "before" ? last_node.Parent().InsertBeforeChild(last_node, "element", "w:p") : last_node.Parent().InsertAfterChild(last_node, "element", "w:p"); pos := document_.Paragraphs.AddParagraph(last_node, new_node, direction); return document_.Paragraphs.Item(pos + 1); End; Function TSDocxRange.InsertNewParagraph(); Begin case collapse_ of TSDocxEnumerations.wdCollapseStart(): return self.AddParagraph("before"); TSDocxEnumerations.wdCollapseEnd(): return self.AddParagraph("after"); else begin self.Clear(); if not range_obj_[0].TParagraph.Empty() then return self.AddParagraph("after"); pos := document_.Paragraphs.FindNewParagraphPosition(range_obj_[0].TParagraph.Root()); return document_.Paragraphs.Item(pos + 1); end end; End; Function TSDocxRange.AddTable(numRows, numColumns); Begin padd_table := function(ttable, node); begin if node.Parent().GetName() = "w:tc" then begin docx := new TCell(); docx.Create(node); table := docx.InsertTable(ttable, node); end else if node.Parent().GetName() = "w:body" then begin table := docx_.InsertTable(ttable, node); end return table; end paragraph := self.AddParagraph(); node := paragraph.Object().Root(); data := nils(numRows, numColumns); ttable := docx_.CreateTable(data); table := ##padd_table(ttable, node); document_.Paragraphs.AddTableToParagraphs(node, table); paragraph.Range.Clear(true); if ifnil(collapse_) then self.Clear(true); return table; End; Function TSDocxRange.Clear(deleteAll); Begin arr := range_obj_.Clear(deleteAll); for i:=0 to length(arr)-1 do document_.Paragraphs.DeleteParagraph(arr[i]); End; Function TSDocxRange.CopyRunFormat(sourceRun, destRun); Begin rpr := sourceRun.FirstChildElement("w:rPr"); marshal := rpr.Marshal(); node := class(TSXml).GetNode(destRun, "w:rPr", "first"); class(TSXml).UpdateNode(node, marshal[0]["attribute"], marshal[0]["children"]); End; Function TSDocxRange.BreakIntoParagraphs(direction); Begin index := direction = "before" ? 0 : range_obj_.Size()-1; range_obj_.SplitRun(index); run := range_obj_[index].TRun; paragraph := range_obj_[index].TParagraph; root := paragraph.Root(); if not ifObj(run.Root()) or (not run.Root().NextElement("w:r") and direction = "after") or (not run.Root().PrevElement("w:r") and direction = "before") then return array(false, root, nil); parent_node := root.Parent(); node := direction = "before" ? parent_node.InsertBeforeChild(root, "element", "w:p") : parent_node.InsertAfterChild(root, "element", "w:p"); ppr := root.FirstChildElement("w:pPr"); ppr_node := ppr ? node.InsertFirstChild(string(ppr.Data())) : node.InsertFirstChild("element", "w:rPr"); if direction = "before" then begin run_node := root.FirstChildElement("w:r"); while not run_node.Eq(run.Root()) do begin node.InsertEndChild(string(run_node.Data())); delete_node := run_node; run_node := run_node.NextElement("w:r"); root.DeleteChild(delete_node); end end else begin run_node := run.Root().NextElement("w:r"); while ifObj(run_node) do begin node.InsertEndChild(string(run_node.Data())); delete_node := run_node; run_node := run_node.NextElement("w:r"); root.DeleteChild(delete_node); end end return array(true, root, node); End; // Methods Function TSDocxRange.InsertAfter(Text); // 无论range是什么,都在段落末尾添加文字 Begin size := range_obj_.Size(); paragraph := range_obj_[size-1].TParagraph; if paragraph.Empty() then begin run := paragraph.AppendRun(); run.AddText(Text); paragraph.CopyRunFormat(false, run.Root()); end else begin trun := range_obj_[size-1].TRun; run := paragraph.AppendRun(trun); run.AddText(Text); self.CopyRunFormat(trun.Root(), run.Root()); end range_obj_.Refresh(); End; Function TSDocxRange.InsertBefore(Text); // 无论range是什么,都在段落前添加文字 Begin paragraph := range_obj_[0].TParagraph; if paragraph.Empty() then begin run := paragraph.AppendRun(); run.AddText(Text); paragraph.CopyRunFormat(false, run.Root()); end else begin trun := range_obj_[0].TRun; run := paragraph.PrependRun(trun); run.AddText(Text); self.CopyRunFormat(trun.Root(), run.Root()); end range_obj_.Refresh(); End; Function TSDocxRange.InsertBreak(Type); Begin if self.Information(TSDocxEnumerations.wdWithInTable()) then raise "This method is not supported for the table range and cell range"; pf := function(t, c); begin case collapse_ of TSDocxEnumerations.wdCollapseStart(): index := 0; TSDocxEnumerations.wdCollapseEnd(): index := range_obj_.Size()-1; else begin range_obj_.Clear(); index := 0; flag := 1; end end; range_obj_.SplitRun(index); tparagraph := range_obj_[index].TParagraph; run := flag = 1 ? range_obj_[0].TRun : tparagraph.PrependRun(range_obj_[index].TRun); run.Br.Type := t; run.Br.Clear := c; run.Apply(); end if ifnil(Type) then Type := TSDocxEnumerations.wdPageBreak(); case Type of TSDocxEnumerations.wdColumnBreak(): begin paragraph_obj := self.InsertNewParagraph(); if collapse_ = TSDocxEnumerations.wdCollapseStart() then paragraph_obj := paragraph_obj.Next(1); obj := paragraph_obj.Object(); run := obj.PrependRun(); run.Br.Type := "column"; run.Apply(); end TSDocxEnumerations.wdLineBreak(): ##pf("textWrapping", nil); TSDocxEnumerations.wdLineBreakClearLeft(): ##pf("textWrapping", "left"); TSDocxEnumerations.wdLineBreakClearRight(): ##pf("textWrapping", "right"); TSDocxEnumerations.wdPageBreak(): begin paragraph_obj := self.InsertNewParagraph(); paragraph_obj := self.InsertNewParagraph(); paragraph_obj.Format.Alignment := TSDocxEnumerations.wdAlignParagraphLeft(); paragraph_obj.Format.WidowControl := true; paragraph_obj.Format.Apply(); obj := paragraph_obj.Object(); run := obj.AppendRun(); run.Br.Type := "page"; run.Apply(); end TSDocxEnumerations.wdSectionBreakContinuous(), TSDocxEnumerations.wdSectionBreakEvenPage(), TSDocxEnumerations.wdSectionBreakNextPage(), TSDocxEnumerations.wdSectionBreakOddPage(): raise "This Type is not suppoted"; TSDocxEnumerations.wdTextWrappingBreak(): ##pf("textWrapping", "all"); end; End; Function TSDocxRange.Collapse(Direction); Begin if ifnil(Direction) then Direction := TSDocxEnumerations.wdCollapseStart(); collapse_ := Direction; End; Function TSDocxRange.Delete(_Unit, Count); Begin self.Clear(true); End; Function TSDocxRange.InsertParagraph(); Begin self.InsertNewParagraph(); End; Function TSDocxRange.InsertParagraphAfter(); Begin self.AddParagraph("after"); End; Function TSDocxRange.InsertParagraphBefore(); Begin self.AddParagraph("before"); End; // Properties Function TSDocxRange.WriteBoldBi(value); Begin range_font_.BoldBi := value; range_font_.Apply(); End; Function TSDocxRange.ReadBoldBi(); Begin return range_font_.BoldBi; End; Function TSDocxRange.WriteBold(value); Begin range_font_.Bold := value; range_font_.Apply(); End; Function TSDocxRange.ReadBold(); Begin return range_font_.Bold; End; Function TSDocxRange.WriteFont(value); Begin range_font_.ReWrite(value); End; Function TSDocxRange.ReadFont(); Begin return range_font_; End; Function TSDocxRange.ReadBorders(index); Begin return ifnil(index) ? borders_range_ : borders_range_.Item(index); End; Function TSDocxRange.WriteParagraphFormat(value); Begin paragraph_format_range_.ReWrite(value); End; Function TSDocxRange.ReadParagraphFormat(); Begin return paragraph_format_range_; End; Function TSDocxRange.ReadInformation(Type); Begin case Type of // TSDocxEnumerations.wdActiveEndAdjustedPageNumber(): // TSDocxEnumerations.wdActiveEndPageNumber(): // TSDocxEnumerations.wdActiveEndSectionNumber(): // TSDocxEnumerations.wdAtEndOfRowMarker(): // TSDocxEnumerations.wdCapsLock(): // TSDocxEnumerations.wdEndOfRangeColumnNumber(): // TSDocxEnumerations.wdEndOfRangeRowNumber(): // TSDocxEnumerations.wdFirstCharacterColumnNumber(): // TSDocxEnumerations.wdFirstCharacterLineNumber(): // TSDocxEnumerations.wdFrameIsSelected(): // TSDocxEnumerations.wdHeaderFooterType(): // TSDocxEnumerations.wdHorizontalPositionRelativeToPage(): // TSDocxEnumerations.wdHorizontalPositionRelativeToTextBoundary(): // TSDocxEnumerations.wdInBibliography(): // TSDocxEnumerations.wdInCitation(): // TSDocxEnumerations.wdInClipboard(): // TSDocxEnumerations.wdInCommentPane(): // TSDocxEnumerations.wdInContentControl(): // TSDocxEnumerations.wdInCoverPage(): // TSDocxEnumerations.wdInEndnote(): // TSDocxEnumerations.wdInFieldCode(): // TSDocxEnumerations.wdInFieldResult(): // TSDocxEnumerations.wdInFootnote(): // TSDocxEnumerations.wdInFootnoteEndnotePane(): // TSDocxEnumerations.wdInHeaderFooter(): // TSDocxEnumerations.wdInMasterDocument(): // TSDocxEnumerations.wdInWordMail(): // TSDocxEnumerations.wdMaximumNumberOfColumns(): // TSDocxEnumerations.wdMaximumNumberOfRows(): // TSDocxEnumerations.wdNumberOfPagesInDocument(): // TSDocxEnumerations.wdNumLock(): // TSDocxEnumerations.wdOverType(): // TSDocxEnumerations.wdReferenceOfType(): // TSDocxEnumerations.wdRevisionMarking(): // TSDocxEnumerations.wdSelectionMode(): // TSDocxEnumerations.wdStartOfRangeColumnNumber(): // TSDocxEnumerations.wdStartOfRangeRowNumber(): // TSDocxEnumerations.wdVerticalPositionRelativeToPage(): // TSDocxEnumerations.wdVerticalPositionRelativeToTextBoundary(): TSDocxEnumerations.wdWithInTable(): begin for i:=0 to range_obj_.Size()-1 do begin node := range_obj_[i].TParagraph.Root(); if not (node.Parent().GetName() in array("w:tbl", "w:tc")) then return false; end return true; end // TSDocxEnumerations.wdZoomPercentage(): else raise "This Type is not suppoted"; end; End; Function TSDocxRange.WriteStyle(value); Begin paragraph_format_range_.Style := value; paragraph_format_range_.Apply(); End; Function TSDocxRange.ReadStyle(); Begin return paragraph_format_range_.Style; End; Function TSDocxRange.WriteText(value); Begin range_obj_.SplitRun(); self.Clear(); run := range_obj_[0].TRun; if ifObj(run.Root()) then run.SetText(value); else begin run := range_obj_[0].TParagraph.AppendRun(); run.SetText(value); range_obj_[0].TRun := run; end End; Function TSDocxRange.ReadText(); Begin range_obj_.SplitRun(); txt := ""; prev := range_obj_[0].TParagraph; for i:=0 to range_obj_.Size()-1 do begin run := range_obj_[i].TRun; if not ifObj(run.Root()) then continue; if prev = range_obj_[i].TParagraph then begin txt += run.Text(); end else begin txt += "\n" + run.Text(); prev := range_obj_[i].TParagraph; end end return txt; End; Function TSDocxRange.ReadListFormat(); Begin return list_format_range_; End; Function TSDocxRange.ReadShading(); Begin return range_shading_; End; Function TSDocxRange.ReadEnd(); Begin return range_obj_.GetEnd(); End; Function TSDocxRange.ReadStart(); Begin return range_obj_.GetStart(); End; Function TSDocxRange.InsertFile(FileName, Range, ConfirmConversions, Link, Attachment); Begin alias := ""; paragraph := self.InsertNewParagraph(); docx_.InsertFile(alias, FileName, paragraph.Object().Root()); paragraph.Range.Delete(); document_.Paragraphs.Init(docx_); End;