一、TRichView文档结构
1TRichView文档结构由段落和Item组成,如下图:
绘图的组织形式如下图:
2、段落Pragraph
TRichView文档是通过段落进行组织的,每个段落都有自己的样式,文档内所有的段落样式作为存储为集合(RichView.Style.ParaStyles)。
TRichView中,所有的Item都必须指定ParaNoParaStyles的索引;设置ParaNo=-1,将延续上个段落的样式。
段落主要设置边框和背景,包括:左缩进、右缩进、边框左偏移、边框右偏移等,如下图:
3Item
·Item是文档中的基本绘图单元
·Item分为文本Item和非文本Item
·Item都被组织在段落中
文档Item必须要有符合规定的属性
ParaStyle索引:标示样式
是否是段落开头标记
是否在段落中占整行
所有Item都是继承与RVItem的类
所有Item类型都是继承与TcustomRVItemInfo
4Item类型
·Text 文本
·Tabulators 制表位
·Pictures 图片
·Hot-Pictures 带超链接的图片
·Break 分页(占满整行的水平线)
·Controls Delphi/C++Builder控件
·Bullets 项目符号
·Hotspots 带超链接的项目符号
·Tables 表格
·List Markers 段落项目符号或编号
·Labels 不能换行的类似于文本的控件
·Numbered Sequences 编号序列
·Endnotes尾注
·Footnotes脚注
·Custom Item 自定义Item
·Item的层次
合法文档对Item的限制
段落中的Item必须用相同的ParaStyle
文档中的第一个Item必须是段落的开始
BreaksTable这种整行Item必须重起一行
Table单元格最少要有一个Item,默认会包含一个空的Text Item
5ItemTag属性
RichView中的每个Item都有一个关联的Integer类型的Tag值,TagTRichView提供了一种能够保存额外4个字节的Integer值或指针信息的特性。RichView中的Tag作为PChar指针用于动态的进行定位。
·
如果不指定TagTag=0
·在默认模式下,即非rvoTagsArePChar选项,RichView本身不能使用tags,可以随意使用;
·如果设置了rvoTagsArePChartags被作为指针用于动态定位;
·CheckPointTagItemTag作用对于CheckPoint同样有效
·编辑器可以将tag设置为0
·TRichView有两种tag模式:Tags store Integers(储存为4字节的Integer值)和Tags Store Stringtag作为指针存储,例如可以讲Urltag中存储时,使用这种模式)
TagPchar模式
·当删除items时将清空tag字符串的内容
·在内部将Tag当做字符串进行比较
·
RVFtags将保存为字符串
RichViewEdit需要复制Tag时(比如:通过回车将当前行分为2行),编辑器将Tag的指针指向同一个字符串。
所有的添加ItemAddXXX)的方法都有AddXXXTag的替代方法,将Tag作为方法的最后一个参数,通过StrNewStrAlloc函数或0nil)转换成Integer作为参数。
例如:MyRichView.AddNLTag('Example',0,0,Integer(StrNew('Tag Example')));
6、创建文档
TRichView创建文档的方式,分为3步:1、清空TRichView2、添加Item3、重新格式化和重绘RichView
添加的类型包括:
1、添加Text Item
2、添加图片
3、添加热点图片
4、添加Delphi控件
5、添加项目符号
6、添加水平线
7、添加列表标记(段落列表和编号列表)
8、添加表格
9、添加标签
10、添加尾注和脚注
11、添加自定义Item
12、添加CheckPoint
13、添加分页
14、添加或插入 RVF
15、添加其他RichView对象的内容
7TRichViewTRichViewEdit
TRichView有三组方法修改文档TRichView的特点是不需要文档进行格式化:
1、在文档尾部添加Item
2根据给定的索引,修改Item(赋值的方式)
3直接从文件或流中读取RVF
TRichViewEdit4组方法修改文档
1、TRichView的所有方法
2在当前光标出插入Item
3修改光标处修改Item(编辑的方式)
4通过额外的方法修改给定索引的Item
TRichViewEdit的特点是
  ·文档必须是格式化过的
  ·修改文档后,reformat方法会自动调用
  ·如果文档是只读的,则不能修改
  ·文档实现textparagraphs样式的保护设置
  ·可以生成Onchage事件
  ·修改都记录在UndoRedo列表中
8TRVStyle
TRVStyle是控制RichView可视化表现的运行时非可视化控件,RVStyle的三个属性
  TextStyle 文本样式集合(TfontInfo的集合)
  ParaStyle 段落样式集合 TParaIno的集合)
  ListStyle 段落列表样式集合(TRVListInfo的集合)
8.1TextStyleTextStyle定义了字体以及其他文本特性。
TextSytle TfontInfo的集合,TfontInfoTCustomRVFontInfo的子类,继承关系
TObjectTPersistentTCollectionItemTCustomRVInfoTCustomRVFontInfo
  属性
  ·Unicode 定义文本的编码格式为UTF-16格式或ANSI格式
True:文本为Unicode编码格式(UTF-16WideString);
FalseANSI编码格式,对应的字符集通过Charset属性设置
Delphi 2009版本后默认值是True,老版本的Delphi默认值是False;所以Delphi2007要修改默认值为Unicode
  ·NextStyleNo 当回车后显示的TextSytle的索引号
如果NextSytleNo =-1,则回车后新增的段落将沿用回车前那个段落的text Style
默认值为-1,即继承上一个段落的Text Style
  方法
  ·IsEqual 判断两个TextStyle是否相同
  ·Assign 将一个TextSytle赋值给另一个TextStyle
继承于TCustomRVFontInfo的属性
  属性
textstyle
FontName
字体名称,字符串型,默认值='Arial'
Size
字体大小,整数型,默认值=10
Color
字体颜,TColor型,默认为clWindowgText
Style
文本样式,枚举类型fsBoldfsItalicfsUnderlinefsStrikeOut
CharSet
对于非Unicode文本,设置字符集
BackColor
文本底
UnderlIneColor
下划线颜,Tcolor类型,默认为clNone
UnderlineType
下划线样式(普通、双线、顿点
SytleEx
附加文本样式,枚举类型rvfsOverline(上划线)、rvfsAllCaps(全大写)
SubSuperScriptType
上标、下标类型
Vshift
相对于基线的垂直位移,整数型,值是相对于文本高度的百分比,只对普通文本有效,对上下标无效
CharScale
水平缩放,整数型,为字符宽度的百分比
CharSpacing
字间距,TRVSytleLength类型,单位为Sceenpixel或者twips
BiDiMode
指定文字方向,TRVBidiMode类型,rvbdUnspecified(继承与段落的bidi设置),rvbLeftToRight(从左到右)、rvdbRightToLeft(从右到左),默认为:rvbdUnspecified
Jump
指定是否为超文本类型,布尔型,如果为True,以下属性生效
HoverColor
文本高亮颜
HoverBackColor
文本背景
HoverUnderlineColor
文本下划线颜
HoverEffects
超链接效果
JumpCursor
超链接的鼠标样式
编辑属性
  Protection
保护属性,TRVProtectOptions类型,包括以下值
普通保护
rvprStyleProtect
保护文本样式受ApplyTextStyle的影响,该保护被ApplyStyleConversion不起效果,但可以手工在OnStyleConversion事件中处理
rvprStyleSplitProtect
保护文本Item不会被分开设置样式,即不能通过选择文本Item的一部分去设置文本样式
rvprModifyProtect
保护这个Style的文本Item不能修改,但是可以作为整体删除
rvprDeleteProtect
保护这个Style的文本Item不能被整体删除,但是可以修改
rvprConcateProtect
不运行文本进行样式合并
rvprRVFInsertProtect
保护文本Item中间不能通过InsertRV的方法进行插入
rvprDoNotAutoSwitch
保护文本Item不会自动切换文本样式
rvprParaStartProtect
不允许文本Item移到到新行,即阻止在文本Item执行回车
Sticking
rvprSticking
不运行在设置有这个保护的两个文本Item之间插入
rvprSticking2
同上
rvprSticking3
同上
rvprStickToTop
如果文本Item在文档的最前,不允许在其之前插入
rvprStickToBottom
如果文本Item在文档的最后,不允许在其之后插入
文本导出属性
  Options
设置导出RTFHTML的文本样式,TRVTextOption类型
RvteoRTFCode
文本不保存到HTML
'{', '}', '\' 被原样保存到RTF
rvteoHTMLCode
文本不保存到RTF
'&', '<', '>',和空格被原样保存到RTF
rvteoHidden
导出后,文本将隐藏,除非在RichView.Options中设置了rvoShowHidden(显示隐藏字符)
8.2ParaStyle

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。