1. 程式人生 > 其它 >delphi使用RichView控制元件 字型和段落

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;