delphi使用RichView控件 字体和段落

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 的两倍。

修改SizeSizeDouble属性的值会更改另一个属性的值。 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 保护段落样式。如果设置,ApplyParaStyleApplyParaStyleTemplateApplyStyleTemplate 不能改变该样式的段落样式。此选项不保护 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;
原文地址:https://www.cnblogs.com/txgh/p/15111927.html