当前位置:网站首页>RichView TRVStyle 模板样式的设置与使用
RichView TRVStyle 模板样式的设置与使用
2022-07-06 06:47:00 【lyhoo163】
RichView TRVStyle 模板样式设置与使用
一、RichEdit的Style
Style四个重要的属性:
1、TextStyles[TextNo]
默认有5个:
序号 名称
0: Normal text Arial
1: Heading Arial
2: Subheading Arial
3: Keywords Arial
4: Jump 1 Arial
5: Jump 2 Arial
2、ParaStyles[ParaNo]
默认有2个:
序号 名称
0: Paragraph Style 0
1: Centered 0
3、StyleTemplates[StyleNo]
默认有11个:
序号 名称
0 Normal
1 heading 1
2 heading 2
3 heading 3
4 Hyperlink
5 header
6 footer
7 footnote reference
8 endnote reference
9 footnote text
10 endnote text
4、MainStyle
默认有0个(未使用):
二、详细说明
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);
边栏推荐
- 攻防世界 MISC中reverseMe简述
- 基于PyTorch和Fast RCNN快速实现目标识别
- librosa音频处理教程
- How to reconstruct the class explosion caused by m*n strategies?
- Attributeerror successfully resolved: can only use cat accessor with a ‘category‘ dtype
- 顶测分享:想转行,这些问题一定要考虑清楚!
- [Yu Yue education] flower cultivation reference materials of Weifang Vocational College
- Number of query fields
- BUU的MISC(不定时更新)
- Office doc add in - Online CS
猜你喜欢
接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
Windows Server 2016 standard installing Oracle
How to translate professional papers and write English abstracts better
接口自动化测试框架:Pytest+Allure+Excel
前缀和数组系列
Introduction and underlying analysis of regular expressions
Brief introduction to the curriculum differences of colleges and universities at different levels of machine human major -ros1/ros2-
顶测分享:想转行,这些问题一定要考虑清楚!
利用快捷方式-LNK-上线CS
因高额网络费用,Arbitrum 奥德赛活动暂停,Nitro 发行迫在眉睫
随机推荐
简单描述 MySQL 中,索引,主键,唯一索引,联合索引 的区别,对数据库的性能有什么影响(从读写两方面)
Erreur de type résolue avec succès: type de données « catégorie» non sous - jacente
前缀和数组系列
C语言_双创建、前插,尾插,遍历,删除
My seven years with NLP
AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models.common‘ from ‘/home/yolov5/models/comm
Simple query cost estimation
接口自动化测试框架:Pytest+Allure+Excel
26岁从财务转行软件测试,4年沉淀我已经是25k的测开工程师...
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
《从0到1:CTFer成长之路》书籍配套题目(周更)
成功解决TypeError: data type ‘category‘ not understood
Basic commands of MySQL
AI on the cloud makes earth science research easier
钓鱼&文件名反转&office远程模板
[Yu Yue education] Dunhuang Literature and art reference materials of Zhejiang Normal University
【Hot100】739. 每日温度
机器人类专业不同层次院校课程差异性简述-ROS1/ROS2-
查询字段个数
Reflex WMS中阶系列3:显示已发货可换组