TRichView字体和段落
介绍
TRVStyle.TextStyles
Unit RVStyle;
//文本样式属性的集合。
property TextStyles : TFontInfos;
//文本样式集合中的项目类。
TFontInfos = class(TCustomRVInfos)
//文本样式定义文档中的字体和其他文本属性。
TFontInfo = class(TCustomRVFontInfo)
TRVStyle.ParaStyles
Unit RVStyle;
//段落样式的集合。
property ParaStyles : TParaInfos;
//段落样式集合中的项目类。
TParaInfos = class(TCustomRVInfos)
属性
字体名称
property FontName: TFontName;
type TFontName = type string;
Default value 'Arial'
字体大小
property Size: Integer;
property SizeDouble: Integer;
(SizeDouble 是在version 15 中引入的)
Size
以磅为单位指定字体大小,类似于 TFont.Size
。
SizeDouble
以半点为单位指定字体大小,即它的值是 Size 的两倍。
修改Size
或SizeDouble
属性的值会更改另一个属性的值。 SizeDouble
允许以更高的精度指定字体大小。
Size
Default value 10
SizeDouble
Default value 20
字体颜色
property Color: TColor;
类似于 TFont.Color
。
Default value clWindowText
字体格式
property Style: TFontStyles;
type TFontStyle = (fsBold, fsItalic, fsUnderline, fsStrikeOut);
type TFontStyles = set of TFontStyle;
类似于 TFont.Style
。
Default value []
字体上标下标样式
type
TRVSubSuperScriptType = (rvsssNormal, rvsssSubscript, rvsssSuperScript);
property SubSuperScriptType: TRVSubSuperScriptType;
指定此样式是普通文本rvsssNormal
、下标rvsssSubscript
还是上标rvsssSuperScript
。(在version 10中引入)
下标和上标以比大小中指定的字体更小的字体显示。
Default value rvsssNormal
段落对齐方式
property Alignment : TRVAlignment;
type
TRVAlignment =
(rvaLeft, rvaRight, rvaCenter, rvaJustify, rvaDistribute);
-
rvaLeft 左对齐
-
rvaRight 右对齐
-
rvaCenter 居中
-
rvaJustify 两端对齐 最后一行根据
LastLineAlignment
属性对齐。 -
rvaDistribute 分撒对齐 最后一行根据
LastLineAlignment
属性对齐。
Default value rvaLeft
段落选项
property Options: TRVParaOptions;
type
TRVParaOption =
(rvpaoNoWrap, rvpaoReadOnly,
rvpaoStyleProtect, rvpaoDoNotWantReturns,
rvpaoKeepLinesTogether, rvpaoKeepWithNext,
rvpaoWidowOrphanControl);
TRVParaOptions = set of TRVParaOption;
布局选项
- rvpaoNoWrap 段落中不自动换行。如果使用无换行段落,建议在
RichView.Options
中添加rvoClientTextWidth
。
编辑和保护选项
-
rvpaoReadOnly 禁止在 TRichViewEdit 中编辑此样式的段落。当用户在段落开头或结尾按 Enter 键时,此选项不会防止添加新段落。此选项不会保护此段落与较多的选择一起被删除。
-
rvpaoStyleProtect 保护段落样式。如果设置,
ApplyParaStyle
、ApplyParaStyleTemplate
、ApplyStyleTemplate
不能改变该样式的段落样式。此选项不保护ApplyParaStyleConversion
,但可以在OnParaStyleConversion
事件中修改。 -
rvpaoDoNotWantReturns 不能回车。如果插入符号在此样式的段落内,则 Enter 键将被阻止。
打印选项
-
rvpaoKeepLinesTogether 如果可能,此样式的段落打印在一页上。
-
rvpaoKeepWithNext 如果可能,此样式的段落与下一段打印在同一页上。 此外,此选项的工作方式类似于 rvpaoKeepLinesTogether。
-
rvpaoWidowOrphanControl 在此样式的段落中,防止在第一行之后和最后一行之前出现分页符。
段落缩进
//段落的第一行缩进。
property FirstIndent: TRVStyleLength;
//段落左缩进。
property LeftIndent: TRVStyleLength;
//段落右缩进。
property RightIndent: TRVStyleLength;
该值以屏幕像素(pixels
)或缇(twips
)为单位测量(打印时,根据打印机分辨率重新计算),具体取决于链接的 TRVStyle 组件的单位。
在带有项目符号或编号的段落中,如果 BiDiMode
=rvbdRightToLeft
,此属性被列表级别的属性覆盖。
-
FirstIndent
段落的第一行缩进。该值可以为负。从左边框开始的第一段行的缩进(假设缩进转换为像素) = TCustomRichView.LeftMargin + LeftIndent + FirstIndent。Default value 0 -
LeftIndent
段落左缩进。从左边框缩进段落(假设缩进转换为像素)= TCustomRichView.LeftMargin + LeftIndent [ + FirstIndent 第一行 ]。Default value 0 -
RightIndent
段落右缩进。从右边框缩进段落(假设缩进转换为像素)= TCustomRichView.RightMargin + RightIndent。Default value 0
方法
查询添加样式
function FindTextStyle(TextStyle: TFontInfo): Integer;
function FindParaStyle(ParaStyle: TParaInfo): Integer;
搜索与参数中指定的样式类似的样式,不存在时添加,返回样式列表中的索引。
例子
增加字体
uses RVStyle;
procedure TForm1.Button1Click(Sender: TObject);
var
FontStyle: TFontInfo;
NewFontNo: Integer;
begin
//复制文本样式列表中第一个样式
FontStyle := TFontInfo.Create(nil);
FontStyle.Assign(RichViewEdit1.Style.TextStyles[0]);
//设置字体名称
FontStyle.FontName := '宋体';
//设置字体大小
FontStyle.SizeDouble := 20;
//设置加粗
FontStyle.Style := [fsBold];
//添加到文本样式列表中,并获取在文本样式列表中的索引
NewFontNo := RichViewEdit1.Style.FindTextStyle(FontStyle);
FontStyle.Free;
//设置当前文档的字体
RichViewEdit1.CurTextStyleNo := NewFontNo;
end;
增加段落
uses RVStyle;
procedure TForm1.Button1Click(Sender: TObject);
var
ParaStyle: TParaInfo;
NewParaNo: Integer;
begin
//复制段落样式列表中第一个样式
ParaStyle := TParaInfo.Create(nil);
ParaStyle.Assign(RichViewEdit1.Style.ParaStyles[0]);
//设置段落的对齐方式
ParaStyle.Alignment := rvaCenter;
//设置段落不自动换行
ParaStyle.Options := ParaStyle.Options + [rvpaoNoWrap];
//添加到段落样式列表中,并获取在段落样式列表中的索引
NewParaNo := RichViewEdit1.Style.FindParaStyle(ParaStyle);
ParaStyle.Free;
//设置当前文档的段落
RichViewEdit1.CurParaStyleNo := NewParaNo;
end;