关于RichView,做过或想做编辑器的朋友一定要知道,它对文本、图片、表格提供了诸多支持,可以极大的缩短开发时间。
本人搜集的fullsrc:
下面是转自别人的结构说明:
1 TrichView结构
的文档结构由段落和Item组成,如下图
绘图的组织形式如下图:
2 段落Pragraph
文档是通过段落进行组织的,每个段落都有自己的样式,文档内所有的段落样式作为存储为集合(RichView.Style.ParaStyles)
在TrichView中,所有的Item都必须指定ParaNo即ParaStyles的索引;设置ParaNo=-1,将延续上个段落的样式;
段落主要设置边框和背景,包括:左缩进、右缩进、边框左偏移、边框右偏移..,如下图。
3 Item
l Item是文档中的基本绘图单元
l Item分为文本Item和非文本Item
l Item都被组织在段落中
文档Item必须要有符合以下规定的属性
Ø ParaStyle索引:标示样式
Ø 是否是段落开头标记
Ø 是否在段落中占整行
l 所有Item都是继承与RVItem的类
l 所有Item类型都是继承与TcustomRVItemInfo
4 Item类型
l Text 文本
l Tabulators 制表位
l Pictures 图片
l Hot-Pictures 带超链接的图片
l Break 分页(占满整行的水平线)
l Controls Delphi/C++Builder控件
l Bullets 项目符号
l Hotspots 带超链接的项目符号
l Tables 表格
l List Markers 段落项目符号或编号
l Labels 不能换行的类似于文本的控件
l Numbered Sequences 编号序列
l Endnotes尾注
l Footnotes脚注
l Custom Item 自定义Item
的层次
合法文档对Item的限制:
段落中的Item必须用相同的ParaStyle;
文档中的第一个Item必须是段落的开始;
Breaks和Table这种整行Item必须重起一行;
Table单元格最少要有一个item,默认会包含一个空的text item
5 Item的Tag属性
在RichView中的每个Item都有一个关联的integer类型的Tag值,Tag为TrichView提供了一种能够保存额外4个字节的integer值或指针信息的特性。RichView中的Tag作为Pchar指针用于动态的进行定位。
Ø 如果不指定Tag,Tag=0;
Ø 在默认模式下,即非rvoTagsArePChar选项,RichView本身不能使用tags,可以随意使用;
Ø 如果设置了rvoTagsArePChar,tags被作为指针用于动态定位;
Ø CheckPoint有Tag,Item的Tag作用对于CheckPoint同样有效
Ø 编辑器可以将tag设置为0
Ø TrichView有两种tag模式:Tags store integers(储存为4字节的integer值)和Tags Store String(tag作为指针存储,例如可以讲Url在tag中存储时,使用这种模式)
Tag的Pchar模式
Ø 当删除items时将清空tag字符串的内容
Ø 在内部将Tag当做字符串进行比较
Ø 在RVF中tags将保存为字符串
当RichViewEdit需要复制Tag时(比如:通过回车将当前行分为2行),编辑器将Tag的指针指向同一个字符串。
所有的添加Item(AddXXX)的方法都有AddXXXTag的替代方法,将Tag作为方法的最后一个参数,通过StrNew或StrAlloc函数或0(nil)转换成Integer作为参数。
例如:MyRichView.AddNLTag('Example',0,0,Integer(StrNew('Tag Example')));
6 创建文档
创建文档的方式,分为3步
清空TrichView
添加Item
重新格式化和重绘RichView
添加的类型包括:
添加Text Item
添加图片
添加热点图片
添加Delphi控件
添加项目符号
添加水平线
添加列表标记(段落列表和编号列表)
添加表格
添加标签
添加尾注和脚注
添加自定义Item
添加CheckPoint
添加分页
添加或插入 RVF流
添加其他RichView对象的内容
7 TRichView和TrichViewEdit
TrichView有三组方法修改文档
在文档尾部添加Item
根据给定的索引,修改Item(赋值的方式)
直接从文件或流中读取RVF
的特点是不需要文档进行格式化
TrichViewEdit有4组方法修改文档
的所有方法
在当前光标出插入Item
修改光标处修改Item(编辑的方式)
通过额外的方法修改给定索引的Item
的特点是
l 文档必须是格式化过的
l 修改文档后,reformat方法会自动调用
l 如果文档是只读的,则不能修改
l 文档实现text和paragraphs样式的保护设置
l 可以生成Onchage事件
l 修改都记录在Undo和Redo列表中
8 TRVStyle
是控制RichView可视化表现的运行时非可视化控件
的三个属性
l TextStyle 文本样式集合(TfontInfo的集合)
l ParaStyle 段落样式集合 (TParaIno的集合)
l ListStyle 段落列表样式集合(TRVListInfo的集合)
8.1 TextStyle
定义了字体以及其他文本特性。
是 TfontInfo的集合,TfontInfo是TCustomRVFontInfo的子类,继承关系
TObject
TPersistent
TCollectionItem
TCustomRVInfo
TCustomRVFontInfo
l 属性
Ø Unicode 定义文本的编码格式为UTF-16格式或ANSI格式
:文本为Unicode编码格式(UTF-16,WideString);
:ANSI编码格式,对应的字符集通过Charset属性设置
在Delphi 2009版本后默认值是True,老版本的Delphi默认值是False;所以Delphi2007要修改默认值为Unicode;
Ø NextStyleNo 当回车后显示的TextSytle的索引号
如果NextSytleNo =-1,则回车后新增的段落将沿用回车前那个段落的text Style
默认值为-1,即继承上一个段落的Text Style;
l 方法
Ø IsEqual 判断两个TextStyle是否相同
Ø Assign 将一个TextSytle赋值给另一个TextStyle
继承于TCustomRVFontInfo的属性
l 属性
字体属性
Ø FontName
字体名称,字符串型,默认值='Arial';
Ø Size
字体大小,整数型,默认值=10;
Ø Color
字体颜色,TColor型,默认为clWindowgText;
Ø Style
文本样式,枚举类型fsBold、fsItalic、fsUnderline、fsStrikeOut
Ø 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
指定是否为超文本类型,Boolean类型,如果为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
设置导出RTF和HTML的文本样式,TRVTextOption类型
RvteoRTFCode | 文本不保存到HTML '{', '}', '\' 被原样保存到RTF |
rvteoHTMLCode | 文本不保存到RTF '&', '<', '>',和空格被原样保存到RTF |
rvteoHidden | 导出后,文本将隐藏,除非在RichView.Options中设置了rvoShowHidden(显示隐藏字符) |
8.2 ParaStyle
定义了段落属性,ParaSytle是 TParaInfos的集合,TParaInfo是TCustomRVParaInfo的子类,继承关系
TObject
TPersistent
TCollectionItem
TCustomRVInfo
属性
l Alignment 对齐
指定段落对齐方式,TRVAlignment枚举类型(vaLeft左对齐,rvaRight右对齐,rvaCenter置中,rvaJustify两端对齐),默认为rvaLeft;
l FirstIndent 首行缩进
定义为第一行的缩进,TRVStyleLength类型,默认为0;
l LeftIndent 左缩进
定义为行的左缩进,TRVStyleLength类型,默认为0;
l RightIndent 右缩进
定义为行的右缩进,TRVStyleLength类型,默认为0;
l SpaceBefore
段前间距,TRVStyleLength类型,默认为0;
l SpaceAfter – spacing below the paragraph;
段后间距,TRVStyleLength类型,默认为0;
l Border 段落边框
段落边框,TRVBorder类型,默认为none;
l Background 段落背景
段落背景,TRVBackgroundRect类型,默认为transparent透明
l Tabs 制表位
步进,TRVTabInfos类型,默认的步进为48;属性包括Positon(从左空白LeftMargin的距离)、Align对齐方式(左、右、中)、Leader(填充制表位的文字,默认为空)
l LineSpacing 行间距
行间距,TRVLineSpacingValue类型,默认值为100;
l LineSpacingType行间距类型
行间距类型,TRVLineSpacingType枚举类型,默认值为rvlsPercent;
rvlsPercent | LineSpacing定义为文本高度的百分比 |
rvlsSpaceBetween | 可以通过RVStyle设定单位,这种类型的LineSpacing不能导出到RTF和HTML中 |
rvlsLineHeightAtLeast | LineSpacing定义为最小行高,单位为RVStyle.Units |
rvlsLineHeightExact | LineSpacing定义为行高,单位为RVStyle.Units |
l BiDiMode 文本方向
同TextStyle的BiDiMode属性
l Options 属性
段落的属性,TRVParaOption类型,默认为空
布局属性
不允许自动折行
编辑和保护属性
rvpaoReadOnly | 不允许编辑该样式的段落,但不能组织用户通过按回车键在段落前或段落后添加段落; 这个选项也不能阻止通过选择方式进行的整体删除。 |
rvpaoStyleProtect | 不能通过ApplyParaSytle方法修改段落样式,不能保护通过ApplyParaStyleConversion方法进行的修改,可以在OnParaSytleConversion事件中处理 |
rvpaoDoNotWantReturns | 在段落中阻止回车键. |
打印选项
rvpaoKeepLinesTogether | 这种样式的段落尽量打印在一页上 |
rvpaoKeepWithNext | 这种样式的段落,如果样式和下一个段落相同,将打印在同一页上 |
rvpaoWidowOrphanControl | 保留属性 |
l OutlineLevel 大纲级别
定义段落的大纲级别,整数型,默认值为0,0为正文,正数定义为标题大纲级别。
8.3 ListStyle
定义了段落列表样式,ListStyle是 TRVListInfos的集合,TRVListInfo是TCustomRVInfo的子类,继承关系
TObject
TPersistent
TCollectionItem
TCustomRVInfo
属性
l Levels 大纲级别
大纲级别,TRVListLevel类型;
包括以下属性:
布局属性
Ø FirstIndent 首行缩进
Ø LeftIndent 左缩进
Ø MarkerIndent 标号缩进
Ø MarkerAlignment 标号对齐
大纲标记属性
Ø ListType 标记类型
Ø Font 字体
Ø Picture 图片
Ø ImageList, ImageIndex 图像列表属性
Ø FormatString, FormatStringW 格式字符串
编号列表属性
Ø StartFrom 编号列表的起始数
Ø Options 列表大纲类型
2 rvloContinuous 预留属性
2 rvloLevelReset 重新编号
2 rvloLegalStyleNumbering
如果Option包含了rvloLegalStyleNumbering,所有上级的罗马和字母序列将被转换成阿拉伯数字
l OnLevelPreview 大纲预览
被应用程序用来为这种大纲样式定义预览缩略图
方法
l AllNumbered
判断是否都被编号,如果大纲都是编号大纲,返回True
l HasNumbering
判断是否有编号大纲,如果有编号大纲,返回True
9 Item的属性和方法
9.1 Text Item 文本
用来显示ANSI或Unicode字符串,主要的属性在TextStyle中进行定义;
不能包含以下内容:
n CR 和LF(#13和#10)字符,即回车和换行
n TAB(#09)tab键字符
n #0字符,即空字符
n FF(#12)字符,即换页符
方法:
TcustomRichView
添加Text Item
n 单个Item方法
在文档尾部添加单个Ietm,并通过Sytle-No设置TextStyle和ParaNo设置ParaStyle
方法名称 | 参数 | 说明 |
AddNLTag | s:String text item的文本 | Text Item不能包含 CR 回车 LF 换行 TAB 步进 FF 换页
|
StyleNo:Integer TextStyle的序号 | ||
ParaNo:Integer ParaStyle的序号 | ||
Tag:Integer TextItem的Tag | ||
AddNLATag | Const s:TRVAnsiString 传入Ansi格式字符串 |
|
StyleNo:Integer TextStyle的序号 | ||
ParaNo:Integer ParaStyle的序号 | ||
Tag:Integer TextItem的Tag | ||
ADDNLWTag | Const s:TRVUnicodeString 传入Unicode格式字符串 |
|
StyleNo:Integer TextStyle的序号 | ||
ParaNo:Integer ParaStyle的序号 | ||
Tag:Integer TextItem的Tag | ||
AddNL | 等同于 AddNLTag(…,0) | 缩略版本,不带Tag标记 |
Add | 等同于 AddNLTag(…,-1,0) | 缩略版本,不带paraNo和Tag标记 |
AddTag | AddNLTag(s,StyleNo,-1,Tag) | 缩略版本,不带paraNo标记 |
n 多个Item方法
用于在文档上尾部添加多行text item
方法名称 | 参数 | 说明 |
AddTextNL | s:String text item的文本 | TextItem可以包含 CR 回车 LF 换行 TAB 步进 FF 换页 |
StyleNo:Integer TextStyle的序号 | ||
FirstParaNo:Integer 第一行的ParaStyle的序号 如果=-1延续上一行 如果>0,设置新的paraStyle | ||
OtherParaNo:Integer TextItem的Tag 设置其他行的paraSytle,必须>0 | ||
AddTextNLA | s:TRVAnsiString text item的文本 | TextItem可以包含 CR 回车 LF 换行 TAB 步进 FF 换页 |
StyleNo:Integer TextStyle的序号 | ||
FirstParaNo:Integer 第一行的ParaStyle的序号 如果=-1延续上一行 如果>0,设置新的paraStyle | ||
OtherParaNo:Integer TextItem的Tag 设置其他行的paraSytle,必须>0 | ||
AddTextNLW | s:TRVUnicodeString text item的文本 | TextItem可以包含 CR 回车 LF 换行 TAB 步进 FF 换页 |
StyleNo:Integer TextStyle的序号 | ||
FirstParaNo:Integer 第一行的ParaStyle的序号 如果=-1延续上一行 如果>0,设置新的paraStyle | ||
OtherParaNo:Integer TextItem的Tag 设置其他行的paraSytle,必须>0 | ||
DefAsSingleParagraph:Boolean False:使用当前的添加段落模式 True:将#13回车和#10换行认为是行分割,而不是段落分割 |
修改Text Item
方法名称 | 参数 | 说明 |
SetItemText | ItemNo:Integer 要修改的Text item的序号 |
|
Const s:String 要修改的字符串 | ||
SetItemTextA | ItemNo:Integer 要修改的Text item的序号 |
|
S:TRVAnsiString Ansi字符串 | ||
SetItemTextW | ItemNo:Integer 要修改的Text item的序号 |
|
S:TRVUnicodeString Unicode的字符串 |
获取Text Item
方法名称 | 参数 | 说明 |
GetItemText | ItemNo:Integer 要修改的Text item的序号 | 返回String |
GetItemTextA | ItemNo:Integer 要修改的Text item的序号 | 返回TRVAnsiString |
GetItemTextW | ItemNo:Integer 要修改的Text item的序号 | 返回TRVUnicodeString |
从文件或流添加文本
方法名称 | 参数 | 说明 |
LoadText | Const FileName:String 文件名 |
|
StyleNo TextStyle的序号 | ||
ParaNo ParaStyle的序号 | ||
AsSingleParagraph False:使用当前的添加段落模式 True:将#13回车和#10换行认为是行分割,而不是段落分割 | ||
LoadTextW | 同上 | 支持Unicode标记字符
|
LoadTextFromStream | Stream:Tstream 流 |
|
LoadTextFromStreamW | Stream:Tstream 流 | 返回TRVUnicodeString |
TCustomRichViewEdit
插入Text Item
n 单个Item方法
在光标处插入单个Ietm,插入的text item具有当前光标处的TextSytle和ParaStyle
方法名称 | 参数 | 说明 |
InsertStringTag 返回值:Boolean | s:String text item的文本 | l S参数不能包含 CR 回车 LF 换行 FF 换页 l TAB被替换成空格,即使设置SpaceInTab=0 l 插入的字符串不与周围的textitem合并,即使是有相同的textSytle和Tag |
Tag:Integer TextItem的Tag | ||
InsertStringATag 返回值:Boolean | Const s:TRVAnsiString 传入Ansi格式字符串 |
|
InsertStringWTag 返回值:Boolean | Const s: TRVUnicodeString 传入Unicode格式字符串 |
|
n 多个Item方法
插入具有
方法名称 | 参数 | 说明 |
InsertText 返回值:Boolean | Const text:String text item的文本 | l S参数可以包含 CR 回车 LF 换行 FF 换页 Tab 步进 l CaretBefore=True 表示完成操作后,光标在Item的前面 CaretBefore=False 表示完成操作后,光标在Item的后面 |
CaretBefore:Boolean=False TextItem的Tag | ||
InsertTextA 返回值:Boolean | Const text:TRVAnsiString 传入Ansi格式字符串 |
|
InsertTextW 返回值:Boolean | Const text: TRVUnicodeString 传入Unicode格式字符串 |
|
修改Text Item
在编辑模式下,修改textItm的文本,或者非文本item的name
方法名称 | 参数 | 说明 |
SetItemTextEd | ItemNo:Integer 要修改的Text item的序号 |
|
Const s:String 要修改的字符串 | ||
SetItemTextEdA | ItemNo:Integer 要修改的Text item的序号 |
|
S:TRVAnsiString Ansi字符串 | ||
SetItemTextEdW | ItemNo:Integer 要修改的Text item的序号 |
|
S:TRVUnicodeString Unicode的字符串 | ||
SetCurrentItemText | Const s:String 修改的值 | 等同于TopLevelEditor.SetItemTextEd(TopLevelEditor.CurItemNo, s) |
SetCurrentItemTextA | Const s:TRVAnsiString 修改的值 | 等同于 TopLevelEditor.SetItemTextEdA(TopLevelEditor.CurItemNo, s) |
SetCurrentItemTextW | Const s:TRVUnicodeString 修改的值 | 等同于 TopLevelEditor.SetItemTextEdW(TopLevelEditor.CurItemNo, s) |
获取Text Item
返回当前光标出的Text Item
方法名称 | 参数 | 说明 |
GetCurrentItemText | ItemNo:Integer 要修改的Text item的序号 | 返回String 等同于 TopLevelEditor.GetItemText(TopLevelEditor.CurItemNo). |
GetCurrentItemTextA | ItemNo:Integer 要修改的Text item的序号 | 返回TRVAnsiString 等同于 TopLevelEditor.GetItemTextA(TopLevelEditor.CurItemNo) |
GetCurrentItemTextW | ItemNo:Integer 要修改的Text item的序号 | 返回TRVUnicodeString 等同于 TopLevelEditor.GetItemTextW(TopLevelEditor.CurItemNo) |
从文件插入文本
从文件插入文本Item,并具有当前的TextStyle和ParaStyle
方法名称 | 参数 | 说明 |
InsertTextFromFile | Const FileName:String 文件名 | 如果当前的textStyle是Unicode,会自动转换成Unicode |
InsertTextFromFileW | 同上 | 支持Unicode标记字符 如果当前的textStyle是ANSI,会自动转换成ANSI |
9.2 Tabulators 制表位
制表位是指在水平标尺上的位置,指定文字缩进的距离或一栏文字开始之处,制表位是在文档左间距的基础上计算,通过ParaStyle的LefIndent、paraStyle的Tabs以及TRVSyle.DefTabWidth进行定义的。
9.3 Pictures 图片
用来显示存储在Tgraphic对象中的一张图片,Delphi支持以下几种标准的图片类:
l TBitmap (stores bitmap (*.bmp), probably with transparency);
l TMetafile (stores 32-bit (*.emf) or 16-bit (*.wmf) metafile);
l TIcon (stores icon; this class does not work with icons having more than 16 colors properly);
l JpegImage (D3+; stores Jpegs (*.jpg));
l TGifImage (D2007+, stores Gifs (*.gif));
l PngImage (D2009+, stores Png (*.png)).
另外还支持一些第三方的图片类。
附加属性有:
l rvepImageWidth, rvepImageHeight
拉伸图片
l rvepTransparent, rvepTransparentMode, rvepTransparentColor
定义图片的透明度
l rvepAnimationInterval
定义bitmap动画的时间间隔
l rvepMinHeightOnPage
允许将一张图片打印在多页上
l rvepSpacing
定义图片边距
l rvepResizable
l 定义是否可以改变大小,TIcon不支持
9.4 Hot-Pictures 带超链接的图片
是带有超链接的图片,属性同Pictures,主要的不同是插入Hot-Pictures的方法不同。
9.5 Breaks分页(占满整行的水平线)
是一条指定宽度和颜色的水平线或矩形,它总是占一行。
9.6 Controls Delphi/C++Builder控件
是添加到文档上的普通的Delphi/C++Builder可视化控件,额外属性有:
l rvepSpacing
定义控件边距
l rvepResizable
定义是否可以改变大小
l rvepVisible
定义是否可以隐藏控件
9.7 Bullets 项目符号
项目符号是TimageList中的一个图片,他与段落的项目符号和列表没有关系,主要用于在文档中重复使用一张小图片。
额外属性有:
l rvepSpacing
定义边距
9.8 Hotspots 带超链接的项目符号
是带有超链接的Bullet Item,当获得鼠标焦点后可以改变图像
9.9 Tables 表格
中的表格中的单元格都是一个子文档,表格可以嵌套。
额外属性有:
l rvspImageFileName
当导出HTML文件时,用于保存背景图的文件位置
方法:
TcustomRichView
添加/获取表格
方法名称 | 参数 | 说明 |
AddItem | Const Text:String 表格名称 |
|
Item:TcustomRVItemInfo 添加表格专用的TRVTableItemInfo | ||
GetItem | ItemNo:Integer 表格的ItemNo | 返回指定ItemNo的表格的TRVTableItemInfo |
TcustomRichViewEdit
插入/获取光标处表格
方法名称 | 参数 | 说明 |
InsertItem | Const Text:String 表格名称 |
|
Item:TcustomRVItemInfo 添加表格专用的TRVTableItemInfo | ||
GetCurrentItem | 返回当前光标处的表格的TRVTableItemInfo | |
GetCurrentItemEx | RequiredClass:TCustomRVItemInfoClass 这里是TRVTableItemInfo类 | 返回给定类型的当前光标处的对象 |
ItemRichViewEdit:TCustomRichViewEdit 输出参数,返回保护了这个表格的编辑器或者单元格内部的编辑器,比如嵌套表格 | ||
Item:TCustomRVItemInfo 输出参数,返回当前表格的TRVTableItemInfo |
TRVTableItemInfo
是TrichView文档的表达类,该类的实例由TRichView在运行时创建,或者在AddItem或InsertItem时创建。
TRVTableItemInfo = class(TRVFullLineItemInfo)
属性列表 | ||
属性名称 | 类型 | 说明 |
表格外边框属性 | ||
BorderWidth 边框宽度 | TRVStyleLength | 设置为0表示隐藏边框 |
BorderStyle 边框类型 | TRVTableBorderStyle Ø rvtbRaised Ø rvtbLowered Ø rvtbColor Ø rvtbRaisedColor Ø rvtbLoweredColor |
|
BorderColor 边框颜色 | TColor | 默认为clWindowText |
BorderLightColor 3D边框亮色 | Tcolor | 默认为clBtnHighlight
|
VisibleBorder 边框可见性 | TRVBooleanRect 4个Boolean值,代表 左、上、右、下 | 默认为True、True、True、True |
BorderHSpacing | TRVStyleLength | 边框水平间距 |
BorderVSpacing | TRVStyleLength | 边框垂直间距 |
单元格外边框属性 | ||
CellBorderWidth | 同上 |
|
CellBorderStyle | 同上 |
|
CellBorderColor | 同上 |
|
CellBorderLightColor | 同上 |
|
单元格间距 | ||
CellHSpacing | TRVStyleLength | 单元格水平间距 |
CellVSpacing | TRVStyleLength | 单元格垂直间距 |
BorderHSpacing | TRVStyleLength | 单元格边框水平间距 |
BorderVSpacing | TRVStyleLength | 单元格边框垂直间距 |
CellHPadding | TRVStyleLength | 单元格水平填充 |
CellVPadding | TRVStyleLength | 单元格垂直填充 |
背景 | ||
Color | Tcolor | 背景颜色 |
BackgroundImage | TGraphic | 背景图片 |
BackgroundStyle | TRVItemBackgroundStyle Ø rvbsColor颜色 Ø rvbsStretched拉伸 Ø rvbsTiled平铺 Ø rvbsCentered置中 | 背景样式 |
BackgroundImageFileName | String | 背景外部图片文件名 |
边框颜色 | ||
BorderColor | Tcolor | 边框颜色 |
BorderLightColor | Tcolor | 边框高亮色 |
CellBorderColor | Tcolor | 单元格颜色 |
CellBorderLightColor | Tcolor | 单元格高亮色 |
Rules | ||
HRuleWidth | TRVStyleLength | 水平标尺宽度 |
HRuleColor | TRVStyleLength | 水平标尺颜色 |
HOutermostRule | Boolean | 默认值Flase 是否在表格边框和最外层单元格绘制水平标尺 |
VRuleWidth | TRVStyleLength | 垂直标尺宽度 |
VRuleColor | TRVStyleLength | 垂直标尺颜色 |
VOutermostRule | Boolean | 默认值Flase 是否在表格边框和最外层单元格绘制垂直标尺 |
导出 | ||
TextColSeparator | 表格列分隔符 | 默认值:#13#10 |
TextRowSeparator | 表格行分隔符 | 默认值:#13#10 |
BackgroundImageFileName | 外部背景图文件名 |
|
其他 | ||
Options |
|
|
PrintOptions | TRVTablePrintOption Ø rvtoHalftoneBorders 设置则打印表格和单元格边框 不设置,将不打印颜色,只有黑白色 Ø rvtoRowsSplit 拆分行,如果不设置,可以避免将表格打印在多个页上 Ø rvtoWhiteBackground 不打印背景 | 默认值: rvtoHalftoneBorders rvtoRowsSplit |
HeadingRowCount | Integer | 默认值:0 重复表头的行数 |
方法列表 | ||
方法名称 | 参数 | 说明 |
插入行和列 | ||
InsertColsLeft | Count: Integer 插入的列数 | 在选中的单元左边插入列 |
InsertColsRight | Count: Integer 插入的列数 | 在选中的单元右边插入列 |
InsertRowsAbove | Count: Integer 插入的行数 | 在选中的单元上面插入行 |
InsertRowsBelow | Count: Integer 插入的行数 | 在选中的单元下面插入行 |
删除行和列 | ||
DeleteSelectedCols |
| 删除选中列 |
DeleteSelectedRows | 删除选中行 | |
合并和分拆单元格 | ||
MergeSelectedCells 合并单元格 | AllowMergeRC:Boolean =False,禁止合并 | 执行前通过CanMergeSelectedCells判断是否可以合并 必须在文档Formatted之后执行 |
UnmergeSelectedCells 取消合并 | UnmergeRows:Boolean 如果True,将每个选中的单元格拆分到RowSpan(行跨度)行中 UnmergeCols:Boolean 如果True,将每个选中的单元格拆分到ColSpan(列跨度)列中 |
|
SplitSelectedCellsHorizontally 拆分成行 | RowCount:Integer 行数 | 将单元格拆分成指定RowCount的行 |
SplitSelectedCellsVertically 拆分成列 | ColCount:Integer 列数 | 将单元格拆分成指定ColCount的列 |
其他 | ||
InsertCols 插入列 | Index:Integer 要插入的列前索引 Count:Integer CopyIndex:Integer 如果<>-1,指定为要复制属性的目标列序号 |
|
InsertRows 插入行 | Index:Integer 要插入的行前索引 Count:Integer CopyIndex:Integer 如果<>-1,指定为要复制属性的目标行序号 |
|
DeleteCols 删除列 | Index:Integer 要删除的第一个列的索引 Count:Integer 要删除的列数 DecreaseWidth:Boolean 是否自动调整宽度 |
|
DeleteRows 删除行 | Index:Integer 要删除的第一个列的索引 Count:Integer 要删除的列数 DecreaseHeight:Boolean 是否自动调整高度 |
|
MergeCells 合并单元格 | TopRow:Integer 起始行索引 LeftCol:Integer 起始列索引 ColSpan:Integer 合并的列数 RowSpan:Integer 合并的行数 AllowMergeRC:Boolean =False,禁止合并 |
|
UnmergeCells 取消合并格 | TopRow:Integer 起始行索引 LeftCol:Integer 起始列索引 ColSpan:Integer 合并的列数 RowSpan:Integer 合并的行数 UnmergeRows: Boolean =True,不将行放到RowSpan行中 UnmergeCols: Boolean =True,不将列放到RowCol行中 |
|
DeleteEmptyRows 删除所有空行 |
| 删除所有只包含了nil单元格的行 |
DeleteEmptyCols 删除所有空列 |
| 删除所有只包含了nil单元格的列 |
9.10 List Markers 段落项目符号或编号
表示段落项目符号和列表的特殊Item,属性由TRVStyle.ListStyle定义
9.11 Labels 不能换行的类似于文本的控件
是类似于Text Item的非文本Item,Label不能折行,在Delphi/C++Builder 2009及后续版本中,label的文本是Unicode,之前的版本是ANSI;
其属性由TRVLabelItemInfo定义,其属性都与RVSytle中的属性有关联:
l 显示的文本样式使用TextStyle的样式
l Label的光标;
l Label的最小宽度(MinWidth属性);
l Label的水平文本对齐 Alignment;
9.12 Numbered Sequences 编号序列
编号序列是显示数字的类似于Labels的Item,编号序列也不能折行。编号序列用于对图片、表格、公式进行编号。
其属性由TRVSeqItemInfo定义,主要有:
l SeqName:用于定义序列名称,保证相同SeqName的值能够连续,@footnote@和@endnte@被脚注和尾注保留使用。
l NumberType 定义编号类型,包括数字、罗马数字等
9.13 Endnotes尾注
尾注类似与编号序列,尾注包含子文档,尾注不在TrichView插入处显示,所有尾注都在文档尾部显示和打印。
9.14 Footnotes脚注
脚注类似与编号序列,脚注包含子文档,脚注不在TrichView插入处显示,所有尾注都在文档每页的尾部显示和打印。