OfficeVba/docx/font/TSDocxFont.tsf

735 lines
21 KiB
Plaintext

Type TSDocxFont = Class(TSVbaBase)
Uses TSDocxEnumerations;
public
Function Init(pr);
Function Apply();virtual;
Function ReWrite(pr);virtual;
protected
pr_;
color_index_;
color_;
public
// Methods
Function Grow();virtual;
Function Reset();virtual;
Function SetAsTemplateDefault();virtual;
Function Shrink();virtual;
// Properties
property AllCaps read ReadAllCaps write WriteAllCaps;
property Bold read ReadBold write WriteBold;
property BoldBi read ReadBoldBi write WriteBoldBi;
property Borders read ReadBorders;
property Color read ReadColor write WriteColor;
property ColorIndex read ReadColorIndex write WriteColorIndex;
property ColorIndexBi read ReadColorIndexBi write WriteColorIndexBi;
property ContextualAlternates read ReadContextualAlternates write WriteContextualAlternates;
property DiacriticColor read ReadDiacriticColor write WriteDiacriticColor;
property DisableCharacterSpaceGrid read ReadDisableCharacterSpaceGrid write WriteDisableCharacterSpaceGrid;
property DoubleStrikeThrough read ReadDoubleStrikeThrough write WriteDoubleStrikeThrough;
property Duplicate read ReadDuplicate;
property Emboss read ReadEmboss write WriteEmboss;
property EmphasisMark read ReadEmphasisMark write WriteEmphasisMark;
property Engrave read ReadEngrave write WriteEngrave;
property Fill read ReadFill;
property Glow read ReadGlow;
property Hidden read ReadHidden write WriteHidden;
property Italic read ReadItalic write WriteItalic;
property ItalicBi read ReadItalicBi write WriteItalicBi;
property Kerning read ReadKerning write WriteKerning;
property Ligatures read ReadLigatures write WriteLigatures;
property Line read ReadLine write WriteLine;
property Name read ReadName write WriteName;
property NameAscii read ReadNameAscii write WriteNameAscii;
property NameBi read ReadNameBi write WriteNameBi;
property NameFarEast read ReadNameFarEast write WriteNameFarEast;
property NameOther read ReadNameOther write WriteNameOther;
property NumberForm read ReadNumberForm write WriteNumberForm;
property NumberSpacing read ReadNumberSpacing write WriteNumberSpacing;
property Outline read ReadOutline write WriteOutline;
property Position read ReadPosition write WritePosition;
property Reflection read ReadReflection;
property Scaling read ReadScaling write WriteScaling;
property Shading read ReadShading;
property Shadow read ReadShadow write WriteShadow;
property Size read ReadSize write WriteSize;
property SizeBi read ReadSizeBi write WriteSizeBi;
property SmallCaps read ReadSmallCaps write WriteSmallCaps;
property Spacing read ReadSpacing write WriteSpacing;
property StrikeThrough read ReadStrikeThrough write WriteStrikeThrough;
property StylisticSet read ReadStylisticSet write WriteStylisticSet;
property Subscript read ReadSubscript write WriteSubscript;
property Superscript read ReadSuperscript write WriteSuperscript;
property TextColor read ReadTextColor;
property TextShadow read ReadTextShadow;
property ThreeD read ReadThreeD;
property Underline read ReadUnderline write WriteUnderline;
property UnderlineColor read ReadUnderlineColor write WriteUnderlineColor;
Function WriteUnderlineColor(value);virtual;
Function ReadUnderlineColor();virtual;
Function WriteUnderline(value);virtual;
Function ReadUnderline();virtual;
Function ReadThreeD();virtual;
Function ReadTextShadow();virtual;
Function ReadTextColor();virtual;
Function WriteSuperscript(value);virtual;
Function ReadSuperscript();virtual;
Function WriteSubscript(value);virtual;
Function ReadSubscript();virtual;
Function WriteStylisticSet(value);virtual;
Function ReadStylisticSet();virtual;
Function WriteStrikeThrough(value);virtual;
Function ReadStrikeThrough();virtual;
Function WriteSpacing(value);virtual;
Function ReadSpacing();virtual;
Function WriteSmallCaps(value);virtual;
Function ReadSmallCaps();virtual;
Function WriteSizeBi(value);virtual;
Function ReadSizeBi();virtual;
Function WriteSize(value);virtual;
Function ReadSize();virtual;
Function WriteShadow(value);virtual;
Function ReadShadow();virtual;
Function ReadShading();virtual;
Function WriteScaling(value);virtual;
Function ReadScaling();virtual;
Function ReadReflection();virtual;
Function WritePosition(value);virtual;
Function ReadPosition();virtual;
Function WriteOutline(value);virtual;
Function ReadOutline();virtual;
Function WriteNumberSpacing(value);virtual;
Function ReadNumberSpacing();virtual;
Function WriteNumberForm(value);virtual;
Function ReadNumberForm();virtual;
Function WriteNameOther(value);virtual;
Function ReadNameOther();virtual;
Function WriteNameFarEast(value);virtual;
Function ReadNameFarEast();virtual;
Function WriteNameBi(value);virtual;
Function ReadNameBi();virtual;
Function WriteNameAscii(value);virtual;
Function ReadNameAscii();virtual;
Function WriteName(value);virtual;
Function ReadName();virtual;
Function WriteLine(value);virtual;
Function ReadLine();virtual;
Function WriteLigatures(value);virtual;
Function ReadLigatures();virtual;
Function WriteKerning(value);virtual;
Function ReadKerning();virtual;
Function WriteItalicBi(value);virtual;
Function ReadItalicBi();virtual;
Function WriteItalic(value);virtual;
Function ReadItalic();virtual;
Function WriteHidden(value);virtual;
Function ReadHidden();virtual;
Function ReadGlow();virtual;
Function ReadFill();virtual;
Function WriteEngrave(value);virtual;
Function ReadEngrave();virtual;
Function WriteEmphasisMark(value);virtual;
Function ReadEmphasisMark();virtual;
Function WriteEmboss(value);virtual;
Function ReadEmboss();virtual;
Function ReadDuplicate();virtual;
Function WriteDoubleStrikeThrough(value);virtual;
Function ReadDoubleStrikeThrough();virtual;
Function WriteDisableCharacterSpaceGrid(value);virtual;
Function ReadDisableCharacterSpaceGrid();virtual;
Function WriteDiacriticColor(value);virtual;
Function ReadDiacriticColor();virtual;
Function WriteContextualAlternates(value);virtual;
Function ReadContextualAlternates();virtual;
Function WriteColorIndexBi(value);virtual;
Function ReadColorIndexBi();virtual;
Function WriteColorIndex(value);virtual;
Function ReadColorIndex();virtual;
Function WriteColor(value);virtual;
Function ReadColor();virtual;
Function ReadBorders();virtual;
Function WriteBoldBi(value);virtual;
Function ReadBoldBi();virtual;
Function WriteBold(value);virtual;
Function ReadBold();virtual;
Function WriteAllCaps(value);virtual;
Function ReadAllCaps();virtual;
End;
// ============== 实现 ================= //
Function TSDocxFont.Init(pr);
Begin
pr_ := pr;
color_index_ := TSWdColorIndex();
color_ := TSWdColor();
End;
Function TSDocxFont.Apply();virtual;
Begin
pr_.Update("first");
End;
Function TSDocxFont.ReWrite(pr);virtual;
Begin
self.Reset();
rpr := pr.Root().FirstChildElement("w:rPr");
if not ifObj(rpr) then return;
marshal := rPr.Marshal()[0];
node := class(TSXml).GetNode(pr_.Root(), "w:rPr", "first");
class(TSXml).UpdateNode(node, marshal["attributes"], marshal["children"]);
End;
// Methods
Function TSDocxFont.Reset();virtual;
Begin
pr_.Delete();
End;
// Properties
Function TSDocxFont.WriteAllCaps(value);virtual;
Begin
pr_.Caps := value = TSDocxEnumerations.wdToggle() ? _Not(self.Caps) : value;
End;
Function TSDocxFont.ReadAllCaps();virtual;
Begin
return pr_.Value("Caps");
End;
Function TSDocxFont.WriteBold(value);virtual;
Begin
pr_.Bold := value = TSDocxEnumerations.wdToggle() ? _Not(self.Bold) : value;
End;
Function TSDocxFont.ReadBold();virtual;
Begin
return pr_.Value("Bold");
End;
Function TSDocxFont.WriteBoldBi(value);virtual;
Begin
pr_.BCs := value = TSDocxEnumerations.wdToggle() ? _Not(self.BoldBi) : value;
End;
Function TSDocxFont.ReadBoldBi();virtual;
Begin
return pr_.Value("bCs");
End;
Function TSDocxFont.WriteColor(value);virtual;
Begin
val := color_index_[value];
if ifnil(val) then val := color_[value];
pr_.Color := val;
End;
Function TSDocxFont.ReadColor();virtual;
Begin
v := pr_.Value("Color");
value := color_index_[v];
return ifnil(value) ? color_[v] : value;
End;
Function TSDocxFont.WriteColorIndex(value);virtual;
Begin
val := color_index_[value];
pr_.Color := val;
End;
Function TSDocxFont.ReadColorIndex();virtual;
Begin
return color_index_[pr_.Value("Color")];
End;
Function TSDocxFont.WriteColorIndexBi(value);virtual;
Begin
self.ColorIndex := value;
End;
Function TSDocxFont.ReadColorIndexBi();virtual;
Begin
return self.ColorIndex;
End;
Function TSDocxFont.WriteContextualAlternates(value);virtual;
Begin
pr_.ContextualAlternates := value;
End;
Function TSDocxFont.ReadContextualAlternates();virtual;
Begin
return pr_.Value("ContextualAlternates");
End;
Function TSDocxFont.WriteDisableCharacterSpaceGrid(value);virtual;
Begin
pr_.SnapToGrid := value ? false : true;
End;
Function TSDocxFont.ReadDisableCharacterSpaceGrid();virtual;
Begin
return pr_.Value("SnapToGrid") ? false : true;
End;
Function TSDocxFont.WriteDoubleStrikeThrough(value);virtual;
Begin
pr_.dStrike := value;
End;
Function TSDocxFont.ReadDoubleStrikeThrough();virtual;
Begin
return pr_.Value("dStrike");
End;
Function TSDocxFont.ReadDuplicate();virtual;
Begin
pr := pr_;
return pr;
End;
Function TSDocxFont.WriteEmboss(value);override;
Begin
pr_.Emboss := value;
End;
Function TSDocxFont.ReadEmboss();override;
Begin
return pr_.Value("Emboss");
End;
Function TSDocxFont.WriteEmphasisMark(value);virtual;
Begin
case value of
TSDocxEnumerations.wdEmphasisMarkNone:
pr_.Em := "none";
TSDocxEnumerations.wdEmphasisMarkOverComma:
pr_.Em := "comma";
TSDocxEnumerations.wdEmphasisMarkOverSolidCircle:
pr_.Em := "dot";
TSDocxEnumerations.wdEmphasisMarkOverWhiteCircle:
pr_.Em := "circle";
TSDocxEnumerations.wdEmphasisMarkUnderSolidCircle:
pr_.Em := "underDot";
end;
End;
Function TSDocxFont.ReadEmphasisMark();virtual;
Begin
case pr_.Value("Em") of
"none", nil:
return TSDocxEnumerations.wdEmphasisMarkNone;
"comma":
return TSDocxEnumerations.wdEmphasisMarkOverComma;
"dot":
return TSDocxEnumerations.wdEmphasisMarkOverSolidCircle;
"circle":
return TSDocxEnumerations.wdEmphasisMarkOverWhiteCircle;
"underDot":
return TSDocxEnumerations.wdEmphasisMarkUnderSolidCircle;
end;
End;
Function TSDocxFont.WriteEngrave(value);virtual;
Begin
pr_.ImPrint := value;
End;
Function TSDocxFont.ReadEngrave();virtual;
Begin
return pr_.Value("ImPrint");
End;
Function TSDocxFont.WriteHidden(value);virtual;
Begin
pr_.Vanish := value;
End;
Function TSDocxFont.ReadHidden();virtual;
Begin
return pr_.Value("Vanish");
End;
Function TSDocxFont.WriteItalic(value);virtual;
Begin
pr_.Italic := value;
End;
Function TSDocxFont.ReadItalic();virtual;
Begin
return pr_.Value("Italic");
End;
Function TSDocxFont.WriteItalicBi(value);virtual;
Begin
pr_.ICs := value;
End;
Function TSDocxFont.ReadItalicBi();virtual;
Begin
return pr_.Value("ICs");
End;
Function TSDocxFont.WriteKerning(value);virtual;
Begin
pr_.Kern := value * 2;
End;
Function TSDocxFont.ReadKerning();virtual;
Begin
return pr_.Value("Kern") / 2;
End;
Function TSDocxFont.WriteLigatures(value);virtual;
Begin
case value of
TSDocxEnumerations.wdLigaturesAll():
pr_.Ligatures := "all";
TSDocxEnumerations.wdLigaturesContextual():
pr_.Ligatures := "contextual";
TSDocxEnumerations.wdLigaturesContextualDiscretional():
pr_.Ligatures := "contextualDiscretional";
TSDocxEnumerations.wdLigaturesContextualHistorical():
pr_.Ligatures := "contextualHistorical";
TSDocxEnumerations.wdLigaturesContextualHistoricalDiscretional():
pr_.Ligatures := "contextualHistoricalDiscretional";
TSDocxEnumerations.wdLigaturesDiscretional():
pr_.Ligatures := "discretional";
TSDocxEnumerations.wdLigaturesHistorical():
pr_.Ligatures := "historical";
TSDocxEnumerations.wdLigaturesHistoricalDiscretional():
pr_.Ligatures := "historicalDiscretional";
TSDocxEnumerations.wdLigaturesNone():
pr_.Ligatures := "none";
TSDocxEnumerations.wdLigaturesStandard():
pr_.Ligatures := "standard";
TSDocxEnumerations.wdLigaturesStandardContextual():
pr_.Ligatures := "standardContextual";
TSDocxEnumerations.wdLigaturesStandardContextualDiscretional():
pr_.Ligatures := "standardContextualDiscretional";
TSDocxEnumerations.wdLigaturesStandardContextualHistorical():
pr_.Ligatures := "standardContextualHistorical";
TSDocxEnumerations.wdLigaturesStandardDiscretional():
pr_.Ligatures := "standardDiscretional";
TSDocxEnumerations.wdLigaturesStandardHistorical():
pr_.Ligatures := "standardHistorical";
TSDocxEnumerations.wdLigaturesStandardHistoricalDiscretional():
pr_.Ligatures := "standardHistoricalDiscretional";
end;
End;
Function TSDocxFont.ReadLigatures();virtual;
Begin
case pr_.Value("Ligatures") of
"all":
return TSDocxEnumerations.wdLigaturesAll();
"contextual":
return TSDocxEnumerations.wdLigaturesContextual();
"contextualDiscretional":
return TSDocxEnumerations.wdLigaturesContextualDiscretional();
"contextualHistorical":
return TSDocxEnumerations.wdLigaturesContextualHistorical();
"contextualHistoricalDiscretional":
return TSDocxEnumerations.wdLigaturesContextualHistoricalDiscretional();
"discretional":
return TSDocxEnumerations.wdLigaturesDiscretional();
"historical":
return TSDocxEnumerations.wdLigaturesHistorical();
"historicalDiscretional":
return TSDocxEnumerations.wdLigaturesHistoricalDiscretional();
"none", nil:
return TSDocxEnumerations.wdLigaturesNone();
"standard":
return TSDocxEnumerations.wdLigaturesStandard();
"standardContextual":
return TSDocxEnumerations.wdLigaturesStandardContextual();
"standardContextualDiscretional":
return TSDocxEnumerations.wdLigaturesStandardContextualDiscretional();
"standardContextualHistorical":
return TSDocxEnumerations.wdLigaturesStandardContextualHistorical();
"standardDiscretional":
return TSDocxEnumerations.wdLigaturesStandardDiscretional();
"standardHistorical":
return TSDocxEnumerations.wdLigaturesStandardHistorical();
"standardHistoricalDiscretional":
return TSDocxEnumerations.wdLigaturesStandardHistoricalDiscretional();
end;
End;
Function TSDocxFont.WriteName(value);virtual;
Begin
pr_.rFont.EastAsia := value;
pr_.rFont.Ascii := value;
End;
Function TSDocxFont.ReadName();virtual;
Begin
return pr_.rFont.Value("EastAsia");
End;
Function TSDocxFont.WriteNameAscii(value);virtual;
Begin
pr_.rFont.Ascii := value;
End;
Function TSDocxFont.ReadNameAscii();virtual;
Begin
return pr_.rFont.Value("Ascii");
End;
Function TSDocxFont.WriteNameBi(value);virtual;
Begin
pr_.rFont.Cs := value;
End;
Function TSDocxFont.ReadNameBi();virtual;
Begin
return pr_.rFont.Value("Cs");
End;
Function TSDocxFont.WriteNameFarEast(value);virtual;
Begin
pr_.rFont.EastAsia := value;
End;
Function TSDocxFont.ReadNameFarEast();virtual;
Begin
ret := pr_.rFont.Value("EastAsia");
return ret ? ret : "宋体";
End;
Function TSDocxFont.WriteNameOther(value);virtual;
Begin
pr_.rFont.HAnsi := value;
End;
Function TSDocxFont.ReadNameOther();virtual;
Begin
return pr_.rFont.Value("HAnsi");
End;
Function TSDocxFont.WriteNumberForm(value);virtual;
Begin
case value of
TSDocxEnumerations.wdNumberFormDefault():
pr_.NumForm := "default";
TSDocxEnumerations.wdNumberFormLining():
pr_.NumForm := "lining";
TSDocxEnumerations.wdNumberFormOldstyle():
pr_.NumForm := "oldStyle";
end;
End;
Function TSDocxFont.ReadNumberForm();virtual;
Begin
case pr_.Value("NumForm") of
"default", nil:
return TSDocxEnumerations.wdNumberFormDefault();
"lining":
return TSDocxEnumerations.wdNumberFormLining();
"oldStyle":
return TSDocxEnumerations.wdNumberFormOldstyle();
end;
End;
Function TSDocxFont.WriteNumberSpacing(value);virtual;
Begin
case value of
TSDocxEnumerations.wdNumberSpacingDefault():
pr_.NumSpacing := "default";
TSDocxEnumerations.wdNumberSpacingProportional():
pr_.NumSpacing := "proportional";
TSDocxEnumerations.wdNumberSpacingTabular():
pr_.NumSpacing := "tabular";
end;
End;
Function TSDocxFont.ReadNumberSpacing();virtual;
Begin
case pr_.Value("NumSpacing") of
"default", nil:
return TSDocxEnumerations.wdNumberSpacingDefault();
"proportional":
return TSDocxEnumerations.wdNumberSpacingProportional();
"tabular":
return TSDocxEnumerations.wdNumberSpacingTabular();
end;
End;
Function TSDocxFont.WriteOutline(value);virtual;
Begin
pr_.Outline := value = TSDocxEnumerations.wdToggle() ? _Not(self.Outline) : value;
End;
Function TSDocxFont.ReadOutline();virtual;
Begin
return pr_.Value("Outline");
End;
Function TSDocxFont.WritePosition(value);virtual;
Begin
pr_.Position := value * 2;
End;
Function TSDocxFont.ReadPosition();virtual;
Begin
return pr_.Value("Position") / 2;
End;
Function TSDocxFont.WriteScaling(value);virtual;
Begin
pr_.W := value;
End;
Function TSDocxFont.ReadScaling();virtual;
Begin
return pr_.Value("W");
End;
Function TSDocxFont.WriteShadow(value);virtual;
Begin
pr_.Shadow := value;
End;
Function TSDocxFont.ReadShadow();virtual;
Begin
return pr_.Value("Shadow");
End;
Function TSDocxFont.WriteSize(value);virtual;
Begin
pr_.Sz := value * 2;
End;
Function TSDocxFont.ReadSize();virtual;
Begin
return pr_.Value("Sz") / 2;
End;
Function TSDocxFont.WriteSizeBi(value);virtual;
Begin
pr_.SzCs := value * 2;
End;
Function TSDocxFont.ReadSizeBi();virtual;
Begin
return pr_.Value("SzCs") / 2;
End;
Function TSDocxFont.WriteSmallCaps(value);virtual;
Begin
pr_.SmallCaps := value = TSDocxEnumerations.wdToggle() ? _Not(self.SmallCaps) : value;
End;
Function TSDocxFont.ReadSmallCaps();virtual;
Begin
return pr_.Value("SmallCaps");
End;
Function TSDocxFont.WriteSpacing(value);virtual;
Begin
pr_.Spacing := value * 20;
End;
Function TSDocxFont.ReadSpacing();virtual;
Begin
return pr_.Value("Spacing") / 20;
End;
Function TSDocxFont.WriteStrikeThrough(value);virtual;
Begin
pr_.Strike := value;
End;
Function TSDocxFont.ReadStrikeThrough();virtual;
Begin
return pr_.Value("Strike");
End;
Function TSDocxFont.WriteSubscript(value);virtual;
Begin
if value then pr_.VertAlign := "subscript";
else if self.Subscript then pr_.VertAlign := "none";
End;
Function TSDocxFont.ReadSubscript();virtual;
Begin
val := pr_.Value("VertAlign");
return val = "subscript";
End;
Function TSDocxFont.WriteSuperscript(value);virtual;
Begin
if value then pr_.VertAlign := "supercript";
else if self.Superscript then pr_.VertAlign := "none";
End;
Function TSDocxFont.ReadSuperscript();virtual;
Begin
val := pr_.Value("VertAlign");
return val = "supercript";
End;
Function TSDocxFont.WriteUnderline(value);virtual;
Begin
case value of
TSDocxEnumerations.wdUnderlineDash():
pr_.U := "dash";
TSDocxEnumerations.wdUnderlineDashHeavy():
pr_.U := "dashedHeavy";
TSDocxEnumerations.wdUnderlineDashLong():
pr_.U := "dashLong";
TSDocxEnumerations.wdUnderlineDashLongHeavy():
pr_.U := "dashLongHeavy";
TSDocxEnumerations.wdUnderlineDotDash():
pr_.U := "dotDash";
TSDocxEnumerations.wdUnderlineDotDashHeavy():
pr_.U := "dashDotHeavy";
TSDocxEnumerations.wdUnderlineDotDotDash():
pr_.U := "dotDotDash";
TSDocxEnumerations.wdUnderlineDotDotDashHeavy():
pr_.U := "dashDotDotHeavy";
TSDocxEnumerations.wdUnderlineDotted():
pr_.U := "dotted";
TSDocxEnumerations.wdUnderlineDottedHeavy():
pr_.U := "dottedHeavy";
TSDocxEnumerations.wdUnderlineDouble():
pr_.U := "double";
TSDocxEnumerations.wdUnderlineNone():
pr_.U := "none";
TSDocxEnumerations.wdUnderlineSingle():
pr_.U := "single";
TSDocxEnumerations.wdUnderlineThick():
pr_.U := "thick";
TSDocxEnumerations.wdUnderlineWavy():
pr_.U := "wave";
TSDocxEnumerations.wdUnderlineWavyDouble():
pr_.U := "wavyDoule";
TSDocxEnumerations.wdUnderlineWavyHeavy():
pr_.U := "wavyHeavy";
TSDocxEnumerations.wdUnderlineWords():
pr_.U := "words";
end;
End;
Function TSDocxFont.ReadUnderline();virtual;
Begin
case pr_.Value("U") of
"dash":
return TSDocxEnumerations.wdUnderlineDash();
"dashedHeavy":
return TSDocxEnumerations.wdUnderlineDashHeavy();
"dashLong":
return TSDocxEnumerations.wdUnderlineDashLong();
"dashLongHeavy":
return TSDocxEnumerations.wdUnderlineDashLongHeavy();
"dotDash":
return TSDocxEnumerations.wdUnderlineDotDash();
"dashDotHeavy":
return TSDocxEnumerations.wdUnderlineDotDashHeavy();
"dotDotDash":
return TSDocxEnumerations.wdUnderlineDotDotDash();
"dashDotDotHeavy":
return TSDocxEnumerations.wdUnderlineDotDotDashHeavy();
"dotted":
return TSDocxEnumerations.wdUnderlineDotted();
"dottedHeavy":
return TSDocxEnumerations.wdUnderlineDottedHeavy();
"double":
return TSDocxEnumerations.wdUnderlineDouble();
"none", nil:
return TSDocxEnumerations.wdUnderlineNone();
"single":
return TSDocxEnumerations.wdUnderlineSingle();
"thick":
return TSDocxEnumerations.wdUnderlineThick();
"wave":
return TSDocxEnumerations.wdUnderlineWavy();
"wavyDoule":
return TSDocxEnumerations.wdUnderlineWavyDouble();
"wavyHeavy":
return TSDocxEnumerations.wdUnderlineWavyHeavy();
"words":
return TSDocxEnumerations.wdUnderlineWords();
end;
End;
Function TSDocxFont.WriteUnderlineColor(value);virtual;
Begin
pr_.UColor := color_[value];
End;
Function TSDocxFont.ReadUnderlineColor();virtual;
Begin
return color_[pr_.Value("UColor", true)];
End;