TrichView文档结构1

1                TrichView结构

TrichView的文档结构由段落和Item组成,如下图

绘图的组织形式如下图:

2                段落Pragraph

TRichView文档是通过段落进行组织的,每个段落都有自己的样式,文档内所有的段落样式作为存储为集合(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的限制:

1.         段落中的Item必须用相同的ParaStyle;

2.         文档中的第一个Item必须是段落的开始;

3.         Breaks和Table这种整行Item必须重起一行;

4.         Table单元格最少要有一个item,默认会包含一个空的text item

5                ItemTag属性

在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                创建文档

TrichView创建文档的方式,分为3步

1、 清空TrichView

2、 添加Item

3、 重新格式化和重绘RichView

添加的类型包括:

1、 添加Text Item

2、 添加图片

3、 添加热点图片

4、 添加Delphi控件

5、 添加项目符号

6、 添加水平线

7、 添加列表标记(段落列表和编号列表)

8、 添加表格

9、 添加标签

10、              添加尾注和脚注

11、              添加自定义Item

12、              添加CheckPoint

13、              添加分页

14、              添加或插入 RVF流

15、              添加其他RichView对象的内容

7                TRichViewTrichViewEdit

TrichView有三组方法修改文档

1、 在文档尾部添加Item

1、 根据给定的索引,修改Item(赋值的方式)

2、 直接从文件或流中读取RVF

TrichView的特点是不需要文档进行格式化

TrichViewEdit有4组方法修改文档

2、 TrichView的所有方法

3、 在当前光标出插入Item

4、 修改光标处修改Item(编辑的方式)

5、 通过额外的方法修改给定索引的Item

TrichViewEdit的特点是

l 文档必须是格式化过的

l 修改文档后,reformat方法会自动调用

l 如果文档是只读的,则不能修改

l 文档实现text和paragraphs样式的保护设置

l 可以生成Onchage事件

l 修改都记录在Undo和Redo列表中

8                TRVStyle

TRVStyle是控制RichView可视化表现的运行时非可视化控件

RVStyle的三个属性

l TextStyle 文本样式集合(TfontInfo的集合)

l ParaStyle 段落样式集合 (TParaIno的集合)

l ListStyle 段落列表样式集合(TRVListInfo的集合)

8.1     TextStyle

TextStyle定义了字体以及其他文本特性。

TextSytle是 TfontInfo的集合,TfontInfo是TCustomRVFontInfo的子类,继承关系

TObject

TPersistent

TCollectionItem

TCustomRVInfo

TCustomRVFontInfo

属性

Ø Unicode 定义文本的编码格式为UTF-16格式或ANSI格式

True:文本为Unicode编码格式(UTF-16,WideString);

False:ANSI编码格式,对应的字符集通过Charset属性设置

在Delphi 2009版本后默认值是True,老版本的Delphi默认值是False;所以Delphi2007要修改默认值为Unicode;

Ø NextStyleNo 当回车后显示的TextSytle的索引号

如果NextSytleNo =-1,则回车后新增的段落将沿用回车前那个段落的text Style

默认值为-1,即继承上一个段落的Text Style;

方法

Ø IsEqual 判断两个TextStyle是否相同

Ø Assign 将一个TextSytle赋值给另一个TextStyle

继承于TCustomRVFontInfo的属性

属性

字体属性

Ø 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定义了段落属性,ParaSytle是 TParaInfos的集合,TParaInfo是TCustomRVParaInfo的子类,继承关系

TObject

TPersistent

TCollectionItem

TCustomRVInfo

属性

Alignment 对齐

指定段落对齐方式,TRVAlignment枚举类型(vaLeft左对齐,rvaRight右对齐,rvaCenter置中,rvaJustify两端对齐),默认为rvaLeft;

FirstIndent  首行缩进

定义为第一行的缩进,TRVStyleLength类型,默认为0;

LeftIndent  左缩进

定义为行的左缩进,TRVStyleLength类型,默认为0;

RightIndent 右缩进

定义为行的右缩进,TRVStyleLength类型,默认为0;

SpaceBefore

段前间距,TRVStyleLength类型,默认为0;

SpaceAfter – spacing below the paragraph;

段后间距,TRVStyleLength类型,默认为0;

Border 段落边框

段落边框,TRVBorder类型,默认为none;

Background 段落背景

段落背景,TRVBackgroundRect类型,默认为transparent透明

Tabs 制表位

步进,TRVTabInfos类型,默认的步进为48;属性包括Positon(从左空白LeftMargin的距离)、Align对齐方式(左、右、中)、Leader(填充制表位的文字,默认为空)

LineSpacing 行间距

行间距,TRVLineSpacingValue类型,默认值为100;

LineSpacingType行间距类型

行间距类型,TRVLineSpacingType枚举类型,默认值为rvlsPercent;


rvlsPercent


LineSpacing定义为文本高度的百分比


rvlsSpaceBetween


可以通过RVStyle设定单位,这种类型的LineSpacing不能导出到RTF和HTML中


rvlsLineHeightAtLeast


LineSpacing定义为最小行高,单位为RVStyle.Units


rvlsLineHeightExact


LineSpacing定义为行高,单位为RVStyle.Units

 

BiDiMode 文本方向

同TextStyle的BiDiMode属性

Options 属性

段落的属性,TRVParaOption类型,默认为空

布局属性

rvpaoNoWrap 不允许自动折行

编辑和保护属性


rvpaoReadOnly


不允许编辑该样式的段落,但不能组织用户通过按回车键在段落前或段落后添加段落;

这个选项也不能阻止通过选择方式进行的整体删除。


rvpaoStyleProtect


不能通过ApplyParaSytle方法修改段落样式,不能保护通过ApplyParaStyleConversion方法进行的修改,可以在OnParaSytleConversion事件中处理


rvpaoDoNotWantReturns


在段落中阻止回车键.

打印选项


rvpaoKeepLinesTogether


这种样式的段落尽量打印在一页上


rvpaoKeepWithNext


这种样式的段落,如果样式和下一个段落相同,将打印在同一页上


rvpaoWidowOrphanControl


保留属性

 

OutlineLevel 大纲级别

定义段落的大纲级别,整数型,默认值为0,0为正文,正数定义为标题大纲级别。

8.3     ListStyle

ListStyle定义了段落列表样式,ListStyle是 TRVListInfos的集合,TRVListInfo是TCustomRVInfo的子类,继承关系

TObject

TPersistent

TCollectionItem

TCustomRVInfo

属性

Levels 大纲级别

大纲级别,TRVListLevel类型;

TRVListLevel包括以下属性:

布局属性

Ø FirstIndent 首行缩进

Ø LeftIndent 左缩进

Ø MarkerIndent 标号缩进

Ø MarkerAlignment  标号对齐

大纲标记属性

Ø ListType 标记类型

Ø Font 字体

Ø Picture 图片

Ø ImageList, ImageIndex 图像列表属性

Ø FormatString, FormatStringW 格式字符串

编号列表属性

Ø StartFrom 编号列表的起始数

Ø Options 列表大纲类型

rvloContinuous 预留属性

rvloLevelReset 重新编号

rvloLegalStyleNumbering

如果Option包含了rvloLegalStyleNumbering,所有上级的罗马和字母序列将被转换成阿拉伯数字

OnLevelPreview 大纲预览

被应用程序用来为这种大纲样式定义预览缩略图

方法

AllNumbered

判断是否都被编号,如果大纲都是编号大纲,返回True

HasNumbering

判断是否有编号大纲,如果有编号大纲,返回True

时间: 2024-11-06 14:00:20

TrichView文档结构1的相关文章

TRichView文档结构3

9.2     Tabulators 制表位 制表位是指在水平标尺上的位置,指定文字缩进的距离或一栏文字开始之处,制表位是在文档左间距的基础上计算,通过ParaStyle的LefIndent.paraStyle的Tabs以及TRVSyle.DefTabWidth进行定义的. 9.3     Pictures 图片 Pictures item用来显示存储在Tgraphic对象中的一张图片,Delphi支持以下几种标准的图片类: l TBitmap (stores bitmap (*.bmp), p

TRichView文档结构2

9                Item的属性和方法 9.1     Text Item 文本 Text Item用来显示ANSI或Unicode字符串,主要的属性在TextStyle中进行定义: TextItem不能包含以下内容: n CR 和LF(#13和#10)字符,即回车和换行 n TAB(#09)tab键字符 n #0字符,即空字符 n FF(#12)字符,即换页符 方法: TcustomRichView 添加Text Item n 单个Item方法 在文档尾部添加单个Ietm,并通

(三)文档结构(上)

一.基本文档结构 1.1  文档元素有4种,任何HTML文档都需要这些元素. 1.1.1 DOCTYPE元素 每个HTML文档都必须以DOCTYPE元素开头.浏览器据此得知自己将要处理的是HTML内容.但是即使省略这个元素,大多数浏览器仍能正确地显示文档内容,但是在编写文档的时候还是最好不要省略. <!DOCTYPE html> 解析: 上述语句告诉浏览器: 1. 处理的是HTML文档.  2.用来标记文档内容的HTML所属的版本.该元素没有结束标签,放于文档开头即可. 1.1.2 html元

HTML5的文档结构

HTML5的文档结构 HTML5简化了许多,它的设计遵循了3个原则:1.兼容性.2.实用性.3.通用访问性     1. header 元素 <header> 标签定义文档或者文档的一部分区域的页眉,又可用于设置文章标题. <header> 元素应该作为介绍内容或者导航链接栏的容器. 在一个文档中,您可以定义多个 <header> 元素. 注释:<header> 标签不能被放在 <footer>.<address> 或者另一个 <

HTML5移动开发之路(42)——HTML4与HTML5文档结构比较

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(42)--HTML4与HTML5文档结构比较 一般来说,人们在书写包括HTML在内的文档时,习惯上按照类似于"章--节--小节"这样的层次结构来进行. 在HTML4中的描述方式: <html> <head> </head> <body> <h1>第一章 小强的HTML5移动开发之路</h1> <h2>1.1 HTM

重温CSS之文档结构

出处:http://limits.cnblogs.com 我们来看看几个基本的HTML页面 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"&g

Html5之基础-3 HTML概述、基础语法、文档结构

一.HTML 概述 超文本 (1) Web 是一个超文本文件的集合 (2) 超文本文件是 Web 的基本组成单元,也称为网页或 HTML 文档.Web页等,通常是以.html或.htm为后缀的文件 (3) Web页上之间通过超文本中的超级链接组织在一起 HTML 概述 (1) HTML(HyperText Markup Language):超文本标记语言,一种纯文本类型的语言 - 使用带有尖括号的"标记"将网页中的内容逐一标识出来 (2) 用来设计网页的标记语言 (3) 用该语言编写的

做一个项目的基本文档结构

---恢复内容开始--- 1.首先是对psd文档进行分析,找出各个文档中的相同点,比如说相同的头部(header).尾部(footer).侧边(sidebar)等. 2.建立基本的文档结构,如: 3.切片:对于logo一般保存在imgs里面,我这里是保存在imgs/common里面,即保存在图片的公共部分.imgs里面一般保存的是临时图片,即网站上线之后随时需要换掉的图片.比如轮播图等一般都是临时图片.还有就是对于比较大的图片也是保存在imgs里面.如: 对于css里面的背景图片,一般保存在和c

创建XML文档结构

static void CreateXML(string outputPath) { XmlDocument _xmlDoc = new XmlDocument(); string _xmlNode = @"<books type='ITP' language='english'><metadata></metadata></books>"; _xmlDoc.LoadXml(_xmlNode); XmlDeclaration _xmlDe