RichView and ScaleRichView StyleTemplate 样式格式模板设置

本文详细介绍了如何使用TSRichViewEdit的StyleTemplate样式格式模板,包括UseStyleTemplates、TRVStyleTemplateInsertMode、RVFTextStylesReadMode和RVFParaStylesReadMode四个关键属性的设置,以及如何通过Load和Insert方法读取样式模板。文章还探讨了不同插入模式对文本和段落格式的影响,强调了统一编辑格式的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RichView and ScaleRichView StyleTemplate样式格式模板设置

    TSRichViewEdit提供的StyleTemplate样式格式模板,使用的过程中,发现设置段字体,样式等等属性随意性比较大,造成用者很不方便。

    因此,制作编辑器,数据远程存入云,让编辑器使用统一的样式格式的模板,统一编规格辑格式的要求。

     通过摸索,找出决定TSRichViewEdit,SyleTemplate模板的几个因素,达到编程目的。

    RichView  决定TSRichViewEdit的SyleTemplate模板,由以下四个属性决定:   
    UseStyleTemplates、
    TRVStyleTemplateInsertMode、
    RVFTextStylesReadMode、
    RVFParaStylesReadMode。

    一、UseStyleTemplates属性
    设置UseStyleTemplates属性为True,才能让 TSRichViewEdit使用 StyleTemplates样式格式模板。

    二、RVStyleTemplateInsertMode属性
    1、TRVStyleTemplateInsertMode声明

type
    TRVStyleTemplateInsertMode =
      rvstimUseTargetFormatting,rvstimUseSourceFormatting,rvstimIgnoreSourceStyleTemplates); 
    property StyleTemplateInsertMode: TRVStyleTemplateInsertMode;

    只有当UseStyleTemplates=True时,才使用此属性。

    2、TRVStyleTemplateInsertMode类型值意义
模式                                                     意义
rvstimUseTargetFormatting                使用当前(目标)文档的格式
rvstimUseSourceFormatting               对插入的(源)文档进行格式化
rvstimIgnoreSourceStyleTemplates    忽略插入(源)文档中的样式。

    1) rvstimUseTargetFormatting
    如果源文档和目标文档具有相同名称的样式模板,则该样式模板的文本(和段落)将根据目标样式模板进行格式化。
    例如,让源文档有一个名为“heading 1”的样式模板,定义文本颜色=红色,而一些文本格式为“heading 1”+粗体,即它看起来是红色和粗体。让目标文档有一个相同名称的样式模板,定义文本颜色=黑色。当这个文本被插入时,它的格式为“标题1”+粗体,即它看起来是黑色+粗体。
    只有具有新名称的样式模板才会从源文档添加到目标文档。

    2) rvstimUseSourceFormatting
    如果源文档和目标文档具有相同名称的样式模板,则该样式模板的文本(和段落)将根据源样式模板进行格式化。
    在上面的例子中,这个文本被插入为“heading 1”+红色+粗体,因此它看起来像在源文档中,尽管它链接到目标文档的“heading 1”而不是源文档的“heading 1”。
    只有具有新名称的样式模板才会从源文档添加到目标文档。

    3) rvstimIgnoreSourceStyleTemplates
    源文档中的样式模板将被忽略。插入的段落链接到目标文档的“Normal”样式模板(如果存在的话)。插入的文本是无样式的,除了超链接(它们链接到目标文档的“超链接”样式,如果存在的话)。
    在上面的例子中,这个文本被插入为“Normal”+红色+粗体,所以它看起来像在原始文档中。

    请注意
    当插入无样式段落时,“Normal”样式模板应用于它们。要在模式(1)和(2)中插入它们,你可以给全局变量RichViewAutoAssignNormalStyleTemplate = False赋值。在模式(3)中,“Normal”总是被应用。

    三、RVFTextStylesReadMode属性、RVFParaStylesReadMode属性

    RVFTextStylesReadMode 是读取Style.TextStyles属性;
    RVFParaStylesReadMode 是读取Style.ParaStyles and Style.ListStyles属性.
    二者使用的数据类型是TRVFReaderStyleMode。
    1、TRVFReaderStyleMode声明

type
  TRVFReaderStyleMode = (rvf_sIgnore, rvf_sInsertMap, rvf_sInsertMerge)

    这是RVFTextStylesReadMode属性、RVFParaStylesReadMode属性的一个数据类型。:
    
    2、RVFTextStylesReadMode、RVFParaStylesReadMode属性意义 

   (1)When loading RVF

rvf_sIgnore                  RVF中的样式集合将被忽略。为了正确加载,

                                    这个RVF文件必须以相同的样式集合保存。     
rvf_sInsertMerge         当前的样式集合将被来自RVF的值替换。      

rvf_sInsertMap           当前的样式集合将被来自RVF的值替换。  

    (2)When Inserting RVF

rvf_sIgnore                 RVF中的样式集合将被忽略。为了正确加载,

                                   这个RVF文件必须以相同的样式集合保存。     
rvf_sInsertMerge        当前的样式将与来自RVF的样式合并(如果需要,新的样式将添加到集合中)。
rvf_sInsertMap           来自RVF的样式将映射到最相似的现有样式。不会添加新的样式。   

      注意:  应该小心最后两种模式:只有当TRVStyle组件被指定的TRichView[编辑]专用时,才建议使用它们。
    如果使用样式模板:

    RVFTextStylesReadMode=rvf_sInsertMerge

    RVFParaStylesReadMode=rvf_sInsertMerge

    StyleTemplateInsertMode<>rvstimIgnoreSourceStyleTemplates

     RVF加载方法将替换现有的style。使用从RVF读取的样式模板;RVF插入方法将来自RVF的样式模板集合合并到现有的样式模板中,并根据StyleTemplateInsertMode读取文本和段落样式。

    四、读入样式格式模板
    注意读入样式格式模板有二种方式,在读取数据后的效果是不一样的(自己体会吧)。事前你要做一个标准的Default.rvst文件。
    1、Load方式

  SRichViewEdit1.RichViewEdit.Style.StyleTemplates.LoadFromRVST(MainPath+ 'Default.rvst', SRichViewEdit1.RichViewEdit.Style.Units);

    2、Insert方式

  SRichViewEdit1.RichViewEdit.Style.StyleTemplates.InsertFromRVST(MainPath+ 'Default.rvst', SRichViewEdit1.RichViewEdit.Style.Units);

  最后,理解StyleTemplate,相关代码及设置到位,就可以了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值