Type TSDocxFontRange = Class(TSDocxFont) Uses TSDocxEnumerations; public Function Init(arr); private Function CallFunction(pf, value);overload; Function CallFunction(pf);overload; Function SplitRun(); private range_arr_; split_flag_; // 写之前切割run,切割后设为true public Function Reset();override; Function WriteUnderlineColor(value);override; Function ReadUnderlineColor();override; Function WriteUnderline(value);override; Function ReadUnderline();override; Function ReadThreeD();override; Function ReadTextShadow();override; Function ReadTextColor();override; Function WriteSuperscript(value);override; Function ReadSuperscript();override; Function WriteSubscript(value);override; Function ReadSubscript();override; Function WriteStylisticSet(value);override; Function ReadStylisticSet();override; Function WriteStrikeThrough(value);override; Function ReadStrikeThrough();override; Function WriteSpacing(value);override; Function ReadSpacing();override; Function WriteSmallCaps(value);override; Function ReadSmallCaps();override; Function WriteSizeBi(value);override; Function ReadSizeBi();override; Function WriteSize(value);override; Function ReadSize();override; Function WriteShadow(value);override; Function ReadShadow();override; Function ReadShading();override; Function WriteScaling(value);override; Function ReadScaling();override; Function ReadReflection();override; Function WritePosition(value);override; Function ReadPosition();override; Function WriteOutline(value);override; Function ReadOutline();override; Function WriteNumberSpacing(value);override; Function ReadNumberSpacing();override; Function WriteNumberForm(value);override; Function ReadNumberForm();override; Function WriteNameOther(value);override; Function ReadNameOther();override; Function WriteNameFarEast(value);override; Function ReadNameFarEast();override; Function WriteNameBi(value);override; Function ReadNameBi();override; Function WriteNameAscii(value);override; Function ReadNameAscii();override; Function WriteName(value);override; Function ReadName();override; Function WriteLine(value);override; Function ReadLine();override; Function WriteLigatures(value);override; Function ReadLigatures();override; Function WriteKerning(value);override; Function ReadKerning();override; Function WriteItalicBi(value);override; Function ReadItalicBi();override; Function WriteItalic(value);override; Function ReadItalic();override; Function WriteHidden(value);override; Function ReadHidden();override; Function ReadGlow();override; Function ReadFill();override; Function WriteEngrave(value);override; Function ReadEngrave();override; Function WriteEmphasisMark(value);override; Function ReadEmphasisMark();override; Function WriteEmboss(value);override; Function ReadEmboss();override; Function ReadDuplicate();override; Function WriteDoubleStrikeThrough(value);override; Function ReadDoubleStrikeThrough();override; Function WriteDisableCharacterSpaceGrid(value);override; Function ReadDisableCharacterSpaceGrid();override; Function WriteDiacriticColor(value);override; Function ReadDiacriticColor();override; Function WriteContextualAlternates(value);override; Function ReadContextualAlternates();override; Function WriteColorIndexBi(value);override; Function ReadColorIndexBi();override; Function WriteColorIndex(value);override; Function ReadColorIndex();override; Function ReadBorders();override; Function WriteBoldBi(value);override; Function ReadBoldBi();override; Function WriteBold(value);override; Function ReadBold();override; Function WriteAllCaps(value);override; Function ReadAllCaps();override; End; // ============== 实现 ================= // Function TSDocxFontRange.Init(arr); Begin range_arr_ := arr; split_flag_ := false; class(TSDocxFont).Init(nil); End; Function TSDocxFontRange.SplitRun(); Begin if split_flag_ then return; class(TSWdCommon).SplitRangeRun(range_arr_); self.Parent.SetRangeArr(range_arr_); split_flag_ := true; End; Function TSDocxFontRange.CallFunction(pf, value);overload; Begin SplitRun(); for i:=0 to length(range_arr_)-1 do begin paragraph := range_arr_[i]["tparagraph"]; pr_ := paragraph.pPr.rPr; ##pf(value); for i:=0 to length(range_arr_)-1 do begin pr_ := range_arr_[i]["trun"].rPr; ##pf(value); end end; End; Function TSDocxFontRange.CallFunction(pf);overload; Begin ret := nil; for i:=0 to length(range_arr_)-1 do begin pr_ := range_arr_[i]["trun"].rPr; if not ifObj(pr_.Root()) then continue; cur := ##pf(); if ifnil(ret) then ret := cur; if ret <> cur then return TSDocxEnumerations.wdUndefined(); end return ret; End; // function Function TSDocxFontRange.Reset();override; Begin CallFunction(ThisFunction(class(TSDocxFont).Reset)); End; // property Function TSDocxFontRange.WriteUnderlineColor(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteUnderlineColor), value); End; Function TSDocxFontRange.ReadUnderlineColor();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadUnderlineColor)); End; Function TSDocxFontRange.WriteUnderline(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteUnderline), value); End; Function TSDocxFontRange.ReadUnderline();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadUnderline)); End; Function TSDocxFontRange.ReadThreeD();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadThreeD)); End; Function TSDocxFontRange.ReadTextShadow();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadTextShadow)); End; Function TSDocxFontRange.ReadTextColor();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadTextColor)); End; Function TSDocxFontRange.WriteSuperscript(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteSuperscript), value); End; Function TSDocxFontRange.ReadSuperscript();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadSuperscript)); End; Function TSDocxFontRange.WriteSubscript(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteSubscript), value); End; Function TSDocxFontRange.ReadSubscript();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadSubscript)); End; Function TSDocxFontRange.WriteStylisticSet(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteStylisticSet), value); End; Function TSDocxFontRange.ReadStylisticSet();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadStylisticSet)); End; Function TSDocxFontRange.WriteStrikeThrough(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteStrikeThrough), value); End; Function TSDocxFontRange.ReadStrikeThrough();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadStrikeThrough)); End; Function TSDocxFontRange.WriteSpacing(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteSpacing), value); End; Function TSDocxFontRange.ReadSpacing();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadSpacing)); End; Function TSDocxFontRange.WriteSmallCaps(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteSmallCaps), value); End; Function TSDocxFontRange.ReadSmallCaps();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadSmallCaps)); End; Function TSDocxFontRange.WriteSizeBi(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteSizeBi), value); End; Function TSDocxFontRange.ReadSizeBi();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadSizeBi)); End; Function TSDocxFontRange.WriteSize(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteSize), value); End; Function TSDocxFontRange.ReadSize();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadSize)); End; Function TSDocxFontRange.WriteShadow(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteShadow), value); End; Function TSDocxFontRange.ReadShadow();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadShadow)); End; Function TSDocxFontRange.ReadShading();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadShading)); End; Function TSDocxFontRange.WriteScaling(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteScaling), value); End; Function TSDocxFontRange.ReadScaling();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadScaling)); End; Function TSDocxFontRange.ReadReflection();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadReflection)); End; Function TSDocxFontRange.WritePosition(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WritePosition), value); End; Function TSDocxFontRange.ReadPosition();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadPosition)); End; Function TSDocxFontRange.WriteOutline(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteOutline), value); End; Function TSDocxFontRange.ReadOutline();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadOutline)); End; Function TSDocxFontRange.WriteNumberSpacing(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteNumberSpacing), value); End; Function TSDocxFontRange.ReadNumberSpacing();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadNumberSpacing)); End; Function TSDocxFontRange.WriteNumberForm(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteNumberForm), value); End; Function TSDocxFontRange.ReadNumberForm();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadNumberForm)); End; Function TSDocxFontRange.WriteNameOther(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteNameOther), value); End; Function TSDocxFontRange.ReadNameOther();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadNameOther)); End; Function TSDocxFontRange.WriteNameFarEast(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteNameFarEast), value); End; Function TSDocxFontRange.ReadNameFarEast();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadNameFarEast)); End; Function TSDocxFontRange.WriteNameBi(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteNameBi), value); End; Function TSDocxFontRange.ReadNameBi();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadNameBi)); End; Function TSDocxFontRange.WriteNameAscii(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteNameAscii), value); End; Function TSDocxFontRange.ReadNameAscii();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadNameAscii)); End; Function TSDocxFontRange.WriteName(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteName), value); End; Function TSDocxFontRange.ReadName();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadName)); End; Function TSDocxFontRange.WriteLine(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteLine), value); End; Function TSDocxFontRange.ReadLine();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadLine)); End; Function TSDocxFontRange.WriteLigatures(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteLigatures), value); End; Function TSDocxFontRange.ReadLigatures();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadLigatures)); End; Function TSDocxFontRange.WriteKerning(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteKerning), value); End; Function TSDocxFontRange.ReadKerning();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadKerning)); End; Function TSDocxFontRange.WriteItalicBi(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteItalicBi), value); End; Function TSDocxFontRange.ReadItalicBi();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadItalicBi)); End; Function TSDocxFontRange.WriteItalic(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteItalic), value); End; Function TSDocxFontRange.ReadItalic();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadItalic)); End; Function TSDocxFontRange.WriteHidden(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteHidden), value); End; Function TSDocxFontRange.ReadHidden();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadHidden)); End; Function TSDocxFontRange.ReadGlow();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadGlow)); End; Function TSDocxFontRange.ReadFill();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadFill)); End; Function TSDocxFontRange.WriteEngrave(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteEngrave), value); End; Function TSDocxFontRange.ReadEngrave();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadEngrave)); End; Function TSDocxFontRange.WriteEmphasisMark(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteEmphasisMark), value); End; Function TSDocxFontRange.ReadEmphasisMark();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadEmphasisMark)); End; Function TSDocxFontRange.WriteEmboss(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteEmboss), value); End; Function TSDocxFontRange.ReadEmboss();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadEmboss)); End; Function TSDocxFontRange.ReadDuplicate();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadDuplicate)); End; Function TSDocxFontRange.ReadDoubleStrikeThrough();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadDoubleStrikeThrough)); End; Function TSDocxFontRange.WriteDisableCharacterSpaceGrid(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteDisableCharacterSpaceGrid), value); End; Function TSDocxFontRange.ReadDisableCharacterSpaceGrid();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadDisableCharacterSpaceGrid)); End; Function TSDocxFontRange.WriteDiacriticColor(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteDiacriticColor), value); End; Function TSDocxFontRange.ReadDiacriticColor();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadDiacriticColor)); End; Function TSDocxFontRange.WriteContextualAlternates(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteContextualAlternates), value); End; Function TSDocxFontRange.ReadContextualAlternates();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadContextualAlternates)); End; Function TSDocxFontRange.WriteColorIndexBi(value);override; Begin CallFunction(ThisFunction(class(TSDocxFont).WriteColorIndexBi), value); End; Function TSDocxFontRange.ReadColorIndexBi();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadColorIndexBi)); End; Function TSDocxFontRange.WriteColorIndex(value);override; Begin return CallFunction(ThisFunction(class(TSDocxFont).WriteColorIndex), value); End; Function TSDocxFontRange.ReadColorIndex();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadColorIndex)); End; Function TSDocxFontRange.ReadBorders();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadBorders)); End; Function TSDocxFontRange.WriteBoldBi(value);override; Begin return CallFunction(ThisFunction(class(TSDocxFont).WriteBoldBi), value); End; Function TSDocxFontRange.ReadBoldBi();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadBoldBi)); End; Function TSDocxFontRange.WriteBold(value);override; Begin return CallFunction(ThisFunction(class(TSDocxFont).WriteBold), value); End; Function TSDocxFontRange.ReadBold();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadBold)); End; Function TSDocxFontRange.WriteAllCaps(value);override; Begin return CallFunction(ThisFunction(class(TSDocxFont).WriteAllCaps), value); End; Function TSDocxFontRange.ReadAllCaps();override; Begin return CallFunction(ThisFunction(class(TSDocxFont).ReadAllCaps)); End;