RichView 文档 段落 项目 ITEM
RichView 文档 段落 项目 ITEM
一、ITEM对象
1、TCustomRVItemInfo是TRichView文档中所有项目的基本类型。
2、除TCustomRVItemInfo外,下列类型都可以构成ITEM:
3、组成ITEM对象之间的继承关系
二、ITEM是构成文档的基本要素
1、Item是文档中的基本绘图单元
2、Item分为文本Item和非文本Item
3、Item在文档中,0至ItemCount-1序列中,依据连续的ITEN的ParaSytle值(相同),组成一个段落。(Text中不得有造成换页的字符)
注意:组成段落的条件:
4、下列对象可以单独组成一个ITEM
·Text 文本
·Tabulators 制表位
·Pictures 图片
·Hot-Pictures 带超链接的图片
·Break 分页(占满整行的水平线)
·Controls Delphi/C++Builder控件
·Bullets 项目符号
·Hotspots 带超链接的项目符号
·Tables 表格
·List Markers 段落项目符号或编号
·Labels 不能换行的类似于文本的控件
·Numbered Sequences 编号序列
·Endnotes尾注
·Footnotes脚注
·Custom Item 自定义Item
5、Tag
每个Item都关联一个Tag值,旧版本中它是Integer类型的,新版本它是String类型。
Tag的功能就是方便后续的索引查找。
三、文档中的段落和ITEM
文档的结构,通常我们将文档习惯由段落组成。
在RichEdit中,段落仅是若干ITEM的组合,这个组合的特点,就是所有ITEM具有相同的ParaStyles属性(ParaNo编号),且最后一个ITEM是独立组构一行的对象,如果是Text最后一个字符(隐藏)是换行符。
1、 段落就是由文字、图像或其它可以构成一行文本的队列排列(对象)组合体。注意,它不能包含构成换行或独立占居一行的对象要素。
2、段落中的文字,不能包含:CR和LF(#13和#10)字符(回车和换行),TAB(#09)tab键字符、 #0字符(空字符)、 FF(#12)换页字符。因为这些字符,有的可以单独组建一个ITEM,构成换行(段落)。
3、当段落只有一个ITEM(字符串)。当字符串中插入其它要素,如IMAGE,该段落就由多个ITEM组成。
4、在文档中,我们不用刻意构建段落,只要一组ITEM,可以构成类似一行字符串,且只有最后一个ITEM中包含换行要素。这就自然形成一个段落。
见下图:这是6个段落的文档,但有8个ITEM:
首行标题,编号1是一个居中文本ITEM。
第二段,编号2至4由三个ITEM构成一个段。编号2和4是文本,编号3是插入一个Image。
第三段至第五段,编号5-7,都是一个ITEM,构成一个段落。
第六段,由是空串(一个换行符),组成一个ITEM。
上述文档中,有8个ITEM,有6个段落。理解段落与ITEM之间关系了吗?
注意:组成段落中ITEM的ParaStyles( 段落标题样式) 要一样。
看下图:
这个文档,由代码生成,标题的“作品中的”和“词句”是二次AddNL,虽然它们的ParaStyles和 TextStyles一样的,但是分别AddNL,二者各占用一个ITEM。标题的ItemCount=5。
但是,将该文档保存文件中,再读入时,“作品中的"和“词句”,就合并一个ITEM了,显示ItemCount=4。
注意:同一个段落中的文字,由于字体、尺寸、字体颜色不同,分别为各自的ITEM。
上图中,第一段落,有5个ITEN,分别是:§1-1、 行政、查房、制度、5(上标)。
还有一种情况,要注意:我们在使用AddNL方法时,例如:
SRichViewEdit1.RichViewEdit.AddNL('第一句',0,0); SRichViewEdit1.RichViewEdit.AddNL('第二句',0,-1); // -1 表示与前段落合并SRichViewEdit1.RichViewEdit.AddNL('第三句',0,-1); // -1 表示与前段落合并
上述三个字符串,文档生成后,三个字符串都在一个段落里,但三者独立建立一个ITEM。只有保存文档数据后,再次读入后中,这三个ITEM,合并一个ITEM。这一点,编程时要注意。
2、访问文档中的ITEM
property ItemCount: Integer;
ItemCount是文档中的ITEN总数,实际操作:
for i := SRichViewEdit1.RichViewEdit.ItemCount - 1 downto 0 dobeginItem := SRichViewEdit1.RichViewEdit.GetItem(i);if (Item is TRVTextItemInfo) thenbeginS:=Item.ItemText; // 文本end;end;
通过循环可以访问全体ITEM。
四、加入ITEM主要方法
AddNL 添加一个文本项;
AddBreak 添加了断线(水平线);
AddBullet 添加bullet(图片来自ImageList);
AddHotspot 添加热点(图片来自ImageList -超文本链接);
AddPicture 添加图片;
AddHotPicture 增加图片-超文本链接;
AddControl 添加Delphi/ c++ Builder控件;
AddTab 添加制表机;
AddItem 用于追加条目的通用方法(通常用于表);
AddCheckpoint 添加与下一个添加的物品相关联的检查点。
五、修改ITEM
1、获取文本
procedure SetItemTextEd(ItemNo: Integer; const s: String);
procedure SetItemTextEdA(ItemNo: Integer; const s: TRVAnsiString);
procedure SetItemTextEdW(ItemNo: Integer; const s: TRVUnicodeString);
2、设置文本
procedure SetItemTextEd(ItemNo: Integer; const s: String);
procedure SetItemTextEdA(ItemNo: Integer; const s: TRVAnsiString);
procedure SetItemTextEdW(ItemNo: Integer; const s: TRVUnicodeString);
参数:
ItemNo Item的序号
S 文本字符
六、删除ITEM
procedure DeleteItems(FirstItemNo, Count: Integer);
参数:
FirstItemNo 从0到ItemCount-1,删除的第一个ITEM。
Count 删除TEM的数量。
七、插入ITEM
procedure SetItemTextEd(ItemNo: Integer; const s: String);
procedure SetItemTextEdA(ItemNo: Integer; const s: TRVAnsiString);
procedure SetItemTextEdW(ItemNo: Integer; const s: TRVUnicodeString);
八、其它应用
后续。
RichView 文档 段落 项目 ITEM相关推荐
- 知识管理≈内容管理≈文档管理≈项目文档管理
事情的起因有点偶然,阿杜和我聊起系统的时候,说我们的系统现在开发的还可以,就畅想了一下能否有一个桌面文档管理系统,问起原因,主要是感觉很多人不会管理自己的硬盘,不会管理自己的文档. 我听了也是感觉一振 ...
- Spring 2.5 jar 所有开发包及完整文档及项目开发实例
Spring 2.5 jar 所有开发包及完整文档及项目开发实例 spring jar 包详解spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock ...
- python-docx结合lxml读取word文档段落格式、字体格式等信息
python-docx结合lxml读取word文档段落格式.字体格式等信息 最近还是在研究docx文档,搞了几天终于有点心得了.不得不说,虽然python-docx库没那么强大能直接获取样式继承的字体 ...
- Python读取Word文档段落或者表格
Python解析word文档 1 .安装并导依赖包 2.word的doc格式转docx格式 3.解析word_doc文档段落.表格内容 4.word读取表格存列表封装优化,节省读取时间 1 .安装并导 ...
- 【项目总结】基于SpringBoot+Ansj分词+正倒排索引的Java文档搜索引擎项目总结
文章目录 项目介绍(开发背景) 主要用到的技术点 前端 后端 Ansj分词 实现索引模块 实现Parser类 实现Index类 完善Parser类 优化制作索引速度 实现搜索模块 实现DocSearc ...
- Mobox项目文档管理-项目经理必备工具
项目文档管理-项目经理必备工具 项目文档管理是项目管理中非常重要而基础的一环,存在于项目的整个生命周期之中.如果一个项目缺乏文档管理,那么它也就不是一个规范.标准的项目.文档管理在项目开发中占有十分重 ...
- 实例演示python-docx 读写word文档 段落、图片、表格
python-docx 读写word文档 段落.图片.表格 简介 运行环境与配置 成果物展示 模板word 输出word python-docx库安装 Python-docx 的使用技巧 关于文档编写 ...
- java web部署文档_javaweb项目实施部署文档
javaweb项目实施部署文档 一 .安装配置jdk Jdk的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.h ...
- HTML:基础语法,文档段落,修饰标签,特殊符号
HTML基础语法: HTML实践代码: </!DOCTYPE html> <html> <head><title>我的第一个网页</title&g ...
最新文章
- chattr和lsattr命令
- VS2003 找不到IsProcessInJob()
- sqoop配置与使用
- gearman python 实例
- SSM中实现CRUD并配置输出sql语句
- python背诵技巧_python历史背诵
- SwiftUI5.x微博入门案例第1部分
- 关于linux用户权限的理解
- 从0开始:500行代码实现 LSM 数据库
- Kibana中的Coordinate Map地图报索引错误的问题
- 树莓派lnmp安装mysql_在树莓派上安装 LNMP
- 上科大、腾讯提出Liquid Warping GAN,实现人体动作迁移的新高度!
- cmd完成拷贝文件,并生成两个快捷脚本
- python200行代码小游戏_200 行python 代码实现 2048 游戏
- uva11609(组合数学,快速幂)
- linux 重新扫描pci设备,linux重新扫描pci总线
- TechEd2011之游园录(3)
- 创建高质量Python工程(1)-如何设计结构清晰的目录结构(转)
- android 中 ViewPager 的平常用法 ViewPager+ Views
- jQuery API/1.1.1/CSS