RichView TRVStyle 模板样式的设置与使用

95 篇文章 0 订阅
24 篇文章 2 订阅

RichView TRVStyle  模板样式设置与使用 

    一、RichEdit的Style
    Style四个重要的属性:
    1、TextStyles[TextNo]
    默认有5个:

序号  名称 
0:     Normal text
1:     Heading
2:     Subheading
3:     Keywords
4:     Jump 1
5:     Jump 2

    2、ParaStyles[ParaNo]
    默认有2个:
序号  名称 
0:     Paragraph Style
1:     Centered

    3、StyleTemplates[StyleNo]

见上图,标准样式,默认有11个:
序号  名称                 中文名(语言选择中文)
0        Normal            正文

1        heading 1        标题1
2        heading 2        标题2
3        heading 3        标题3
4        Hyperlink         超链接
5       header             页眉        
6       footer               页脚
7       footnote reference   脚注引用
8       endnote reference   尾注引用
9       footnote text            脚注文本
10     endnote text            尾注文本

    控件样式的默认值,都欧美习惯,比如字体都是Arial。

    这11个样式,可以读取Default.rvst文件,读取默认值,也可在FormCreat事件,通过代码修改设置。或者直接清除,重新设置。

    4、MainStyle
    默认有0个(未使用):

    MainStyle,可以预先设置,供其它Style共享。 

  二、详细说明
    1、TextStyles[TextNo]和ParaStyles[ParaNo]作为样式,TextNo和ParaNo,不是配套使用的。仅供用户在使用AddNL等函数调用时使用:

  RVE.AddNL(Text, TextNo, ParaNo);   

       实际上,TextStyles[TextNo].StyleName 和 ParaStyles[ParaNo].StyleName, 在 TextStyles 和 ParaStyles 用于表示任意格式时没有多大意义,我们可以简单地忽略它们(可能最好将它们保留为空,以防止保存不必要的XML/RVF 文件中的信息)。

    2、StyleTemplates[StyleNo],才是软件真实的样式,它0-StyleNo,都定义TextStyles和ParaStyles,使用统一的Name。
StyleTemplates[StyleNo].Name
    代码中,完全可以忽略TextStyles[TextNo]和ParaStyles[ParaNo],直接使用StyleTemplates[StyleNo]。

  rve.AddNL(S1,
    MakeTextStyle(rvs, nil, rvs.StyleTemplates[0]),
    MakeParaStyle(rvs, rvs.StyleTemplates[0]));

    比如,当您将某些格式(例如,将文本设为斜体)应用到由某种文本样式格式化的文本时,可能会在现有文本样式的基础上创建新的文本样式,并且此新样式会继承现有样式的所有未修改属性,包括其样式名称。因此,在编辑操作中添加样式时,StyleName[No] 不能用于识别 TextStyles 和 ParaStyles。如果您使用 StyleTemplates[StyleNo],这时样式模板的名称才有实际意义。

     三、实际意义
     1、TextStyles[TextNo]和ParaStyles[ParaNo]作为独立单一文档的样式。比如:一篇文档有7个文本的样式,有4种段落的样式。你就可以设置0-6个文字样式,设置0-3个段落样式。它是个性样式的调用。

  RVE.AddNL(Text, TextNo, ParaNo);   

        2、通过StyleTemplates建立行业或单元(或个人),统一规范的样式模板。创建文档时,统一使用StyleTemplates。

  rve.AddNL(S1,
    MakeTextStyle(rvs, nil, rvs.StyleTemplates[0]),
    MakeParaStyle(rvs, rvs.StyleTemplates[0]));

    四、TextStyles和ParaStyles的建立
    1、对原样式修改

  with RVHeader.Style.TextStyles[0] do begin
    FontName:='宋体';                    // 字体名称;
    Size:=10;                            // 字体大小
    Color:= clBlack;                     // 文本颜色;
    Style:=[];                           // 文本样式(粗体,斜体,下划线,删除线)
    Charset:=DEFAULT_CHARSET;            // 字体字符集(用于非unicode文本样式)。
  end;
  with RVHeader.Style.ParaStyles[0] do begin
    FirstIndent:=0;                      //  段落第一行的缩进,用LeftIndent进行总结;
    LeftIndent:=0;                       //  左边缘缩进;
    RightIndent:=0;                      //  右边缘的缩进;
    SpaceBefore:=0;                      //  段落上方间隔;
    SpaceAfter:=0;                       //  段落下方的空格;
    LineSpacing:=200;                    //  200%
  end;

or

RichView.Style.TextStyles.Items[0].FontName:='Monotype Corsiva';
RichView.Style.TextStyles.Items[0].Size:=15;
RichView.Style.TextStyles.Items[0].Color:=clBlack;
RichView.Style.TextStyles.Items[0].Style:=[];

RichView.Style.ParaStyles.Items[0].Alignment:=rvaJustify;
RichView.Style.ParaStyles.Items[0].LineSpacing:=100;

    2、创建新的样式

RVStyle1.ParaStyles.Clear;
  with RVStyle1.ParaStyles.Add do begin
    StyleName := 'Paragraph 1';
    Alignment := rvaLeft;                  //  段落进行对齐( left, right, center, justify or distribute)
    LastLineAlignment:=rvaLeft;            //  下一行段落进行对齐(左对齐,右对齐,居中对齐,对齐或分配);
    FirstIndent:=0;                        //  段落第一行的缩进
    LeftIndent:=0;                         //  左边缘缩进;
    RightIndent:=0;                        //  右边缘的缩进;
    SpaceBefore:=5;                        //  段落上方间隔;
    SpaceAfter:=5;                         //  段落下方的空格;
    Border:=:bsNone;                      //  无边框
  end; 
  with RVStyle1.ParaStyles.Add do begin
    StyleName := 'Paragraph 2';
    Alignment := rvaCenter;                //  段落进行对齐( left, right, center, justify or distribute)
    LastLineAlignment:=rvaLeft;            //  下一行段落进行对齐(左对齐,右对齐,居中对齐,对齐或分配);
    FirstIndent:=0;                        //  段落第一行的缩进
    LeftIndent:=0;                         //  左边缘缩进;
    RightIndent:=0;                        //  右边缘的缩进;
    SpaceBefore:=5;                        //  段落上方间隔;
    SpaceAfter:=5;                         //  段落下方的空格;
    Border.Style:=rvbSingle;               //  有边框
    Border.VisibleBorders.Top:=True;       //  边框是否显示
    Border.VisibleBorders.Left:=False;
    Border.VisibleBorders.Right:=False;
    Border.VisibleBorders.Bottom:=True;
  end;

    五、StyleTemplates模板样式的创建
    1、对原样式的修改

     ...

    2、重新建立StyleTemplates   

    ...    

    六、获取样式的序号

var
  ParaNo, StyleNo: Integer;
  HeadingStyleTemplate: TRVStyleTemplate;

...

  HeadingStyleTemplate := RVStyle1.StyleTemplates.FindItemByName('heading 1');
  ParaNo := MakeParaStyle(RVStyle1, HeadingStyleTemplate);
  StyleNo := MakeTextStyle(RVStyle1, nil, HeadingStyleTemplate);
  RichViewEdit1.AddNL('This is Heading 1', StyleNo, ParaNo);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值