delphi使用RichView控件 更改选择内容样式

TRichView更改选择内容样式

方法

TCustomRichViewEdit.ApplyParaStyle

应用指定的段落样式。

procedure ApplyParaStyle(ParaStyleNo: Integer);

参数

ParaStyleNo 段落样式集合中的索引(Style.ParaStyles)。

该方法将段落样式ParaStyleNo应用于包含插入符号和所有选定段落的段落。

如果现有段落的Protection中的样式为rvprStyleProtect,则此方法不会更改其样式。

如果要实现“更改对齐”、“增加缩进”等命令,请改用ApplyParaStyleConversion

TCustomRichViewEdit.ApplyParaStyleConversion

将自定义转换过程应用于所选段落的样式。

procedure ApplyParaStyleConversion(UserData: Integer; Recursive: Boolean = True);

参数

UserDataOnParaStyleConversion传递的值

Recursive False,不会为所选表格的单元格调用 OnStyleConversion(单个表格中的多单元格选择情况除外)。

此过程调用每个所选项目的ondAstyLeConversion事件。 使用此方法,可以实现“更改对齐”或“增加缩进”等命令。

此方法忽略任何段落保护,它可以改变段落样式,即使rvpaoStyleProtect包含在现有段落的Options中。 如果要保留段落保护,请在ondAstyLeConversion事件中检查此选项。

TCustomRichViewEdit.OnParaStyleConversion

在执行ApplyParAstyleConversion方法时发生。

type
  TRVStyleConversionEvent = 
    procedure (Sender: TCustomRichViewEdit;
      StyleNo, UserData: Integer; AppliedToText: Boolean;
      var NewStyleNo: Integer) of object;

property OnParaStyleConversion:TRVStyleConversionEvent;

此事件允许您为所选段落的样式创建自定义转换过程。 对所有选中的项目调用此事件,允许更改其段落样式。

它对于实现“更改段落对齐”,“更改段落缩进”等命令很有用。

参数

StyleNo 当前的段落样式(样式集合的索引Style.ParaStyles)。

UserDataApplyParaStyleConversion中作为参数传递的值。

AppliedToText 不使用

NewStyleNo 最初等于StyleNo; 为此参数分配一个新值以更改段落样式。

示例

示例 1

procedure TMyForm.MyRichViewEditParaStyleConversion(Sender: TCustomRichViewEdit;
  StyleNo, UserData: Integer; AppliedToText: Boolean;
  var NewStyleNo: Integer);
var ParaInfo: TParaInfo;
begin
  // 创建具有所需属性的段落样式 
  ParaInfo := TParaInfo.Create(nil);
  try
    ParaInfo.Assign(RVStyle1.ParaStyles[StyleNo]);
    case UserData of
      PARA_ALIGNMENT:
        ParaInfo.Alignment := GetAlignment;
      PARA_INDENTINC:
        begin
          ParaInfo.LeftIndent := ParaInfo.LeftIndent+20;
          if ParaInfo.LeftIndent>1000 then
            ParaInfo.LeftIndent := 1000;
        end;
      PARA_INDENTDEC:
        begin
          ParaInfo.LeftIndent := ParaInfo.LeftIndent-20;
          if ParaInfo.LeftIndent<0 then
            ParaInfo.LeftIndent := 0;
        end;
      PARA_COLOR:
        ParaInfo.Background.Color := ColorDialog1.Color;
      // 添加代码.... 
    end;
    // 搜索样式(没有时添加) 
    NewStyleNo := RVStyle1.FindParaStyle(ParaInfo);
  finally
    ParaInfo.Free;
  end;
end;

此示例显示如何实现以下命令:

  • 更改段落对齐方式,
  • 增加左缩进,
  • 减少左缩进,
  • 更改段落背景颜色。

在此代码中:

  • PARA_*** – 用户定义的Integer常量,具有唯一值; 这些常数识别命令; 它们作为 UserData 传递给ApplyParaStyleConversion;
  • RVStyle1 – TRVStyle组件与MyRichViewEdit组件链接;
  • ColorDialog1: TColorDialog;
  • GetAlignment – 函数返回用户选择的段落对齐方式。

你可以看到此事件中添加的新段落样式,Standard属性被设置为False。这很重要,否则DeleteUnusedStyles将不能删除此样式,即使此样式的所有段落都将被删除。

posted @ 2022-01-19 10:38  txgh  阅读(164)  评论(0编辑  收藏  举报