1. 程式人生 > 其它 >delphi RichView的使用介紹 delphi RichView的使用介紹

delphi RichView的使用介紹 delphi RichView的使用介紹

delphi RichView的使用介紹

RichView 元件 由 個元件模組組成,分別是:

    1、TRVStyle:主要是定義RICHVIEW樣式,定義後,其它RIHCVIEW都可以引用此樣式。

    2、TRichView :主要用於顯示文字,影象,等等

    3、TRichViewEdit: 主要用於編輯文字,影象,等等

    4、TDBRichView:  和RICHVIEW一樣,但主要用於資料感之

    5、TDBRichViewEdit :  和RIHCVIEWEDIT一樣,但主要用於資料感之

    6、TRVPrint :  用於控制元件中文件的列印

    7、TRVPrintPreview

:用於列印預覽

    8、TRVReportHelper :用於在其它控制元件上顯示文件

    9、TRVOfficeConverter :用於操作WORD文件

9大類詳細介紹:

  1、TRVStyle :這個元件在執行時是不可見的,TRVSTYLE是派生類,直接繼承TCOMPONENT。如果你想顯示RICHVIEW裡面的文件,只用把要顯示的RICHVIEW關聯TRVSTYLE元件就行,(建立一個TRVSTYLE後把,RICHVEIW的STYLE屬性關    聯這個TRVSTLE)。同樣 RichView, RichViewEdit, DBRichView, DBRichViewEdit 都可以關聯這個TRVSTYLE,方法相同。如果一個TRVSTYLE關聯多個元件後,當其中一個元件要刪除這個TRVSTYLE後,其它的元件就不能繼續使用這個TRVSTYLE,解決辦法就是一個元件關聯一個TRVSTYLE。

    RVSTYLE有三個主屬性:

   (1)TEXTSTYLES– 主要是設定一些文字樣式;

   (2)PARASTYLES– 段落標題樣式  

   (3)LISTSTYLES–段落標題樣式列表

    RVSTYLE顏色屬性:

     .Color – 背景色;

     .SelColor, InactiveSelColor – 選擇文字的背景色;

     .SelTextColor, InactiveSelTextColor – 選擇文字的顏色;

     .DisabledFontColor – 控制元件不可能時文字的顏色.

     .HoverColor – 超文字的顏色;

     .CheckpointColor –檢查點虛線顏色;

     .CheckpointEvColor – 檢查點事件虛線顏色;

     .PageBreakColor – 文件隔斷顏色;

     .FloatingLineColor – 左右佔位符顏色

    RVSTYLE:滑鼠樣式;

     .JumpCursor – 超文字樣式 

     .LineSelectCursor – 左邊欄樣式.

LABEL元素相關屬性

 .FieldHighlightColor – 高亮顯示顏色.

 .FieldHighlightType –高亮顯示模式(有三種).

 .FootnoteNumbering – 一些頁尾型別.

 .FootnotePageReset – 頁尾模式.

 .EndnoteNumbering – 尾註型別.

RVSTYLE其它屬性;

 .SelectionStyle – 文件外觀選擇;

 .SelectionMode – 選擇模式;

 .DefUnicodeStyle – 預設Unicode 文字樣式;

 .DefCodePage –  ANSI <->Unicode 自動轉換;

 .LineWrapMode 文字框型別;

 .UseSound. 聲音開關

RVSTYLE方法;

 .SaveINI 儲存 RVStyle 屬性到INI檔案;

 .LoadINI 載入 RVStyle屬性從INI檔案;

 .SaveReg 儲存 RVStyle 屬性到註冊檔案;

 .LoadReg 載入RVStyle 屬性到註冊檔案.

 .SaveCSS 儲存.RVStyle樣式到CSS檔案

 .SaveCSSToStream.儲存.RVStyle樣式為CSS檔案,然後儲存到流

RVSTYLE事件

 .OnDrawCheckpoint 畫檢查點;

 .OnDrawPageBreak – 畫分隔線;

 .OnDrawParaBack – 畫段落背景;

 .OnDrawTextBack – 畫文字背景;

 .OnApplyStyle – 儲存文字型別到畫布;

 .OnApplyStyleColor – 儲存文字顏色到畫布;

 .OnDrawStyleText – 指定的文字型別;

 .OnStyleHoverSensitive –重畫,當滑鼠移進或者移出指定的文字型別時重畫樣式;

2、TRichView
  TRichView元件主要用於顯示文件內容的,包括圖片,表格,文字,甚至可以顯示其它元件。使用之前必須要關聯TRVSTYLE(前面有介紹),不關聯是不能顯示的。TRichView有個重要的屬性集SETTINGS,裡面可以設定一些重要的引數。
  TRichView屬性,事件,方法;
  .Style – 關聯TRVSTYLE樣式
  .Options – 一些重要的操作(以後會講到);
  .ItemCount – 文件中元素數量.
  .BackgroundBitmap- 文件背景圖片
  .BackgroundStyle - 文件背景圖片顯示樣式
  .Color.文件背景顏色
  .FirstJumpNo 為第一個超文字增加ID號;
  TRichView插入事件;
  .AddNL 增加文字元素;
  .AddBreakEx 增加分隔線;
  .AddPictureEx 增加圖片;
  .AddHotPicture 增加熱點圖片;
  .AddControlEx 增加元件;
  .Add 在文字後面增加字元;
  .AddFmt 增加特點格式字符集
  .Clear 清除文件內容
  .Format, FormatTail 格式化文件內容;
  .Reformat 重新格式化文件;
  .OnJump 當游標點選超連結時發生;
  .OnRVMouseMove 當游標移動到超連結時發生;
  .GetJumpPointItemNo 跳轉到指定ID號的元素;
  .LeftMargin, RightMargin, TopMargin, BottomMargin 左右上下邊距;
  .MaxTextWidth  最長行(字元數);
  .MinTextWidth  最短行(字元數);
  .DocumentHeight 文件高;
  .VAlign 垂直效準線;
  .VScrollVisible 垂直滑動條開關;
  .HScrollVisible 平水滑動條開關;
  .VSmallStep 垂直滑動條滑動幅度;
  .OnVScrolled 垂直滑動條事件;
  .OnHScrolled 水平滑動條事件;
  .Copy 複製選擇的內容到剪下板;
  .CopyDef 選擇方式複製選擇的內容到剪下板;
  .CopyImage 複製選擇的圖片到剪下板;
  .CopyTextA 複製選擇的內容,以文字形式到剪下板;
  .CopyTextW 複製選擇的內容,以Unicode格式到剪下板;
  .CopyRVF 複製選擇的內容,以RVF格式到剪下板;
  .CopyRTF 複製選擇的內容,以RTF格式到剪下板;
  .GetSelectedImage 返回選擇的圖片;
  .GetSelText 返回選擇的文字;
  .GetSelTextW 以Unicode字元形式返回選擇的內容;
  .SelectAll 全選;
  .SetSelectionBounds 選擇指定的元素;
  .SelectWordAt 選擇一個指定座標上的字元;
  .SelectControl 選擇一個可視元件;
  .Deselect 取消選擇;
  .RVFOptions 一些載入和儲存RVF文體的操作;
  .RVFWarnings 一些RVF文體閱讀時的錯誤;
  .SaveRVF 儲存文件為RVF格式;
  .SaveRVFToStream 儲存文件為RVF格式,然後儲存到流;
  .LoadRVF 載入RVF檔案;
  .LoadRVFFromStream 從流載入RVF檔案;
  .CopyRVF 複製RVF文件到剪下板;
  .InsertRVFFromStream 從流增加RVF文件;
  .LoadFromStream 從流載入RVF, RTF或者文字格式的檔案;
  .LoadText 從檔案中增加文字;
  .LoadTextW 從Unicode encoding檔案中增加文字;
  .LoadRTF 載入RTF;
  .SaveHTML 儲存文件為HTML格式;
  .SaveHTMLEx 儲存文件為HTML格式。使用CSS樣式;
  .SaveHTMLToStream, SaveHTMLToStreamEx 方法同上,只不過儲存到流,不是直接儲存為文件;
  .SaveText 儲存為文字檔案;
  .SaveTextW 儲存為Unicode檔案;
  .SaveTextToStream, SaveTextToStreamW – 可以選擇性的儲存到流;
  .SaveRTF 可以選擇性的儲存為RTF格式;
  .SaveRTFToStream 可以選擇性的儲存為RTF格式到流.
  .GetItemStyle 返回一個元素的型別;
  .GetTextInfo  返回文字元素的資訊;
  .GetBreakInfo  返回分隔線資訊;
  .GetBulletInfo  返回著重號資訊;
  .GetHotspotInfo  返回熱點資訊;
  .GetPictureInfo  返回圖片或者熱點圖片資訊;
  .GetControlInfo  返回元件資訊;
  .GetItemExtraIntProperty,GetItemExtraStrProperty 返回元素額外的屬性值;
  .GetItem  通用方法,主要用於表格;
  .GetItemCheckpoint 返回元素的檢查點;
  .GetItemVAlign 返回元素位置;
  .GetItemTag  返回元素的標籤;
  .GetItemText  返回元素內容;
  .IsParaStart 返回是否是第一個元素;
  .IsFromNewLine 返回是否是第一個元素;


3、TRichViewEdit 
TRichViewEdit主要是用於編輯文字內容,如圖片,文字,表格,控制元件,等等
如果沒有關聯RVSTYLE,TRichViewEdit是不能顯示或者編輯任何內容的
屬性,事件,方法列表(用法以後介紹)
屬性
CurItemNo – 當前元素編號
CurItemStyle – 當前元素型別
CurParaStyleNo – 當前段落樣式型別編號
CurTextStyleNo – 當前文字樣式編號
EditorOptions – 設定一些編輯的選項
ReadOnly 內容是否可以編輯,或只讀
Modified – 內容是否有修改
CustomCaretInterval – 自定義字元重繪時間間隔
事件
OnChange 文件內容改變時觸發
OnCurParaStyleChanged 當前段落樣式改變時觸發
OnCurTextStyleChanged 當前文字樣式改變時觸發
OnPaste 允許貼上
OnStyleConversion 改變選中文字樣式
OnParaStyleConversion 改變段落樣式
OnCaretGetOut 當字元超過邊界時觸發
OnCaretMove 當字元移動後觸發
OnItemTextEdit 當一個文字型別元素的文字內容改變時
OnSmartPopupClick 彈出選單
OnMeasureCustomCaret and OnDrawCustomCaret 替換字元
常用方法
ApplyParaStyle, ApplyTextStyle 儲存文字樣式
ApplyStyleConversion 儲存選中文字的樣式
ApplyParaStyleConversion 儲存選中段落樣式
Change 文件內容改變事件
BeginUpdate, EndUpdate 重繪/重新整理
SearchText, -A, -W 查詢字元
常用插入方法
InsertText, -A, -W, InsertStringTag, InsertStringATag, InsertStringWTag 插入文字
InsertBreak 插入一條線
InsertBullet 插入專案符號
InsertControl 插入元件
InsertHotspot 插入熱點
InsertPicture 插入圖片
InsertHotPicture 插入超文字連結圖片
InsertTab 插入製表鍵
InsertRVFFromFileEd, InsertRVFFromStreamEd 從檔案或者流插入RVF格式的檔案
InsertRTFFromFileEd, InsertRTFFromStreamEd 從檔案或者流插入RTF格式的檔案
InsertTextFromFile,InsertOEMTextFromFile從檔案插入字元
InsertItem 常用插入元素的方法
剪貼簿操作(主要方法和事件)
CanPaste 是否允許從剪貼簿貼上
CanPasteRVF 是否允許從剪貼簿貼上RVF格式內容
CanPasteRTF 是否允許從剪貼簿貼上RTF格式內容
CutDef 剪下到道貌岸然板
Paste 貼上
PasteBitmap 貼上圖片
PasteMetafile 貼上圖形元件
PasteGraphicFile 貼上圖形元件
PasteRVF 從剪貼簿貼上RVF格式內容
PasteRTF 從剪貼簿貼上RTF格式內容
PasteTextA 從剪貼簿貼上ANSI格式內容
PasteTextW 從剪貼簿貼上UNICODE格式內容
DeleteSelection 刪除選中的內容
SelectCurrentWord 選中當前內容
SelectCurrentLine 選中當前行
常用編輯元素方法
SetBreakInfoEd 改變橫線
SetBulletInfoEd  改變專案符號
SetControlInfoEd 改變元件
SetHotspotInfoEd 改變熱點
SetPictureInfoEd 改變圖片
SetItemExtraIntPropertyEd,SetItemExtraStrPropertyEd  編輯元素屬性
SetItemTagEd 編輯元素標籤
SetItemVAlignEd 調整元素相對位置
SetItemTextEd  改變元素名
SetCheckpointInfoEd 編輯檢查點
RemoveCheckpointEd 刪除檢查點
ResizeControl 調整元件
AdjustControlPlacement ,AdjustControlPlacement2 自動調整元件位置
獲取元素資訊方法
GetCurrentTextInfo 獲取文字資訊
GetCurrentBreakInfo 獲取線條元素資訊
GetCurrentBulletInfo 獲取專案符號資訊
GetCurrentControlInfo 元件資訊
GetCurrentHotspotInfo 熱點資訊
GetCurrentPictureInfo 圖片資訊
GetCurrentItem,GetCurrentItemEx. 未知型別元素資訊
GetCurrentItemExtraIntProperty,GetCurrentItemExtraStrProperty 返回指定元素屬性值
GetCurrentTag 返回元素標籤
GetCurrentItemVAlign 返回元素水平位置
GetCurrentCheckpoint 返回元素檢查點
GetCurrentItemText 返回元素名
GetCurrentLineCol 返回當前位置的行和列
撤銷和恢復
UndoLimit 設定撤銷緩衝區
UndoAction 返回撤銷操作
Undo 撤銷最後操作
UndoName 返回撤銷操作名
RedoAction 返回恢復操作
Redo redoes 恢復最後一次撤銷操作
RedoName 返回恢復操作名
ClearUndo 清除撤銷和恢復緩衝區
Unicode操作
PasteTextW 從剪貼簿複製UNICODE文字
InsertTextW 插入UNICODE文字
InsertTextFromFileW 從檔案插入UNICODE文字
拼寫檢查
GetCurrentMisspelling 返回當前位置有錯語的詞
LiveSpellingMode 拼寫檢查開關
檢查點
SetCheckpointInfoEd 給特殊的元素增加檢查點
RemoveCheckpointEd 刪除特殊元素的檢查點
GetCurrentCheckpoint 返回當前元素的檢查點
SetCurrentCheckpointInfo 增加或者編輯當前元素的檢查點
RemoveCurrentCheckpoint 刪除當前元素的檢查點
InsertCheckpoint 當前位置增加檢查點
GetCheckpointAtCaret 返回當前位置的檢查點
RemoveCheckpointAtCaret 刪除當前檢查點

TDBRichView TDBRichViewEdit TRVPrint TRVPrintPreview,TRVReportHelper
TDBRichView,TDBRichViewEdit主要用於顯示,編輯資料感之內容
和RichView一樣,DBRichView,DBRichViewEdit如果不關聯RVStyle也是不能顯示任何內容的。
TDBRichView,DBRichViewEdit支援如下型別
RVF RichView檔案型別
RTF RichView文字型別
text 文字
others 其它
TRVPrint
TRVPrint主要用於列印RICHVIEW文件,執行時不可見
使用方法
1 先指定要列印的內容
2 指定頁首或頁尾
3 格式化內容
4 列印或者預覽
5 釋放記憶體
事件方法
OnFormatting 當頁碼發生改變時觸發
OnSendingToPrinter 列印時觸發
OnPagePrepaint and OnPagePostpaint 允許在頁面個重繪
OnPrintComponent 列印元件
頁邊距
LeftMarginMM 左邊距
RightMarginMM 右邊距
TopMarginMM 上邊距
BottomMarginMM 下邊距
這裡的邊距和文件編輯時邊距是不同的,一個針對頁面,一個針對文件
TRVPrintPreview
預覽文件,要先關聯TRVPrint,並且列印設定已經準備完畢
TRVReportHelper
TRVReportHelper和TRVPrint相似,TRVPrint是把文件送入印表機,TRVReportHelper則是把文件送到任何canvas上顯示如:螢幕,印表機,IMAGE等
TRVOfficeConverter
TRVOfficeConverter允許在RICHVIEW中使用Microsoft Office(32位板本的)文字格式

ScaleRichView
ScaleRichView是一個TRichView的外掛,用TRichView引擎來呈現文件,ScaleRichView上的文件其實就是一個隱藏的RICHVIEWEDIT
,所以你可以像使用RIHCVIEW一樣使用ScaleRichView,安裝ScaleRichView之前一定要先安裝TRIHCVIEW,通常在開發過程中用捆綁方式(RichView+ScaleRichView)進行開發
ScaleRichView 主要功能介紹
1 支援所有RICHVIEW功能
2 所見即所得模式
3 快速編碼
4 支援差不多120多種文件格式
5 支援列印不同文件樣式,如文件編輯時為A4樣式,列印時可以選擇A5樣式
6 頁面定位
7 支援多種部署模式
8 滾動顯示
ScaleRichView元件介紹(後面釋出將對下面類一個一個的詳細介紹)
1 TSRichViewEdit
  可以以所見即所得模式編輯文件,支援多種頁面瀏覽模式,包括頁面檢視模式
2 TDBSRichViewEdit
  和TSRichViewEdit 一樣,只不過用於資料感之,也是所見即所得
3 TSclRVRuler
  TSRichViewEdit的標尺,水平和垂直,繼承TRVRuler
4 TSRVToolBar
  工具欄
5 TSRVToolWindow
  彈出式視窗,可以把放工具欄
6 TSRVPageScroll
  顯示文件縮圖
7 TSRVPrint
  列印文件
8 TSRVPreview
  瀏覽文件
 
4、TSRichViewEdit
TSRichViewEdit主要是用來處理文字內容,下面是一些常用屬性和方法,事件
屬性:
RichViewEdit:返回一個TRichViewEdit元件,然後通過TRichViewEdit一個屬性方法來操作文件,預設情況下,TSRichViewEdit
使用了一個內部的TRichViewEdit,如果你想使用自定義的TRichViewEdit,只要關聯TSRichViewEdit的ExternalRV屬性,如果想
使用自定義的TRVStyle,則只要關聯其ExternalRVSYTLE就行
RVHeader 頁首編輯器
RVFooter 頁尾編輯器
RVNote 腳註和尾註編輯器
PageProperty 相關頁的屬性
ViewProperty 檢視模式
BackgroundProperty 背景屬性
下面的一些屬性提供了訪問RichViewEdit的屬性,用法和RichViewEdit一樣,前面有講過,這裡就不講了,屬性名相同,這個屬性也可適用於其它編輯器
 .AnimationMode
 .BiDiMode
 .CPEventKind
 .ReadOnly
 .RTFOptions
 .RTFReadProperties
 .RVBackgroundBitmap
 .RVBackgroundStyle
 .RVColor
 .RVEditorOptions
 .RVFOptions
 .RVFParaStylesReadMode
 .RVFTextStylesReadMode
 .RVOptions
 .SmartPopupProperties, SmartPopupVisible
 .TabNavigation
下面一些屬性是允許在編輯時改變屬性值的
HScrollPos 設定或者得到滾動的位置
HScrollBar 和 VScrollBar 顯示或者隱藏滾動條
OnHScrolled 和 OnVScrolled 滾動事件
ScrolledPage 返回第一頁碼
MenuHButtons 和 MenuHorizontal 水平選單設定
MenuVButtons 和 MenuVertical   垂直選單設定
方法
ConvertRVToSRV 和 ConvertSRVToRV 允許TSRichViewEdit和RichViewEdit之間位置轉換
GetPageClientRect 返回頁的位置
GetItemBounds  返回頁面元素位置
GetCaretPosInUnits 返回當前位置
GetPageAt 返回指定位置的頁面
GetItemAt 返回指定位置的元素
UnitsPerInchH  UnitsPerInchV 允許單元之間的座標轉換
FindNextHyperlink/FindPriorHyperlink 查詢超連結
FindNextCheckpoint/FindPriorCheckpoint查詢檢查點
FindNextItem/FindPriorItem 查詢元素
FindNextHeading/FindPriorHeading查詢標題
NextCurHyperlink/PriorCurHyperlink選擇超連結
NextCurCheckpoint/PriorCurCheckpoint選擇檢查點
NextCurItem/PriorCurItem選擇元素
NextCurHeading/PriorCurHeading 移動到當前的標題
RangeSearch指定範圍查詢
FirstCurPage游標移動第一頁
PriorCurPage游標移動前一頁
NextCurPage游標移動下一頁
LastCurPage游標移動最後一頁
PrintAll列印整個文件
PrintCurrent列印當前頁面
PrintRange列印指定範圍內容
MinPrintedItemNo 和 MaxPrintedItemNo 允許從指定元素之間列印
DrawPage和DrawMetafile允許把文件顯示到其它畫布或者圖元上
事件
OnPageFormatChanged 當 PageProperty和PageFormat屬性改變發生
OnChangeViewModeAfter 當ViewProperty屬性改變時發生
OnChangeViewModeBefore 當ViewMode屬性改變時發生
OnZoomChanged 當ViewProperty.ZoomPercent或.ZoomMode屬性改變時發生
OnHScrolled, OnVScrolled, OnPageScrolled滾動時發生
OnCurrentPageChange 移動到其它頁面時發生
OnPageCountChanged 文件頁數發生變化時發生
OnClickPage 單擊頁面後發生
OnPaintPage 畫自定義頁面,如果預設方法不能完全顯示時,可用此方法
OnPaintComponent 顯示控制元件
OnPaint 顯示其它
OnCheckControl 列舉所以加入的控制元件
OnMessageControl 允許加入的控制元件響應訊息
OnGetPagePos 允許自定義頁的位置和順序
表格圖示
先設定ViewProperty的UseTableIcons屬性為TRUE,當用戶把游標移動到表格上時,表格左上方會顯示一個小圖示,當游標移走時,圖示消失,同時觸發OnTableIconClick事件

Table(表格)
table是RICHVIEW裡面一個比較特殊的元素,也是RICHVIEW眾元素中最複雜的一種,TABLE由單元格組成,在RICHVIEW裡,每個單元格相當於一個RICHVIEW文件,單元格里面可以表格等各種元素,理論上表格是可以無限巢狀,這樣的結構就導致了其複雜性。
Table屬性
BorderWidth 表的邊框長度
BorderStyle 邊框樣式
BorderColor 邊框顏色
BorderLightColor 3D外觀邊框顏色
VisibleBorders 邊框的顯示和隱藏
CellBorderWidth 單元格邊框長度
CellBorderStyle 單元格邊框樣式
CellBorderColor 單元格邊框顏色
CellBorderLightColor 3D外觀單元格邊框顏色
CellHSpacing 單元格之間的水平距離
CellVSpacing 單元格之間的垂直距離
BorderHSpacing 表邊框與表最外層單元格之間的水平距離
BorderVSpacing表邊框與表最外層單元格之間的垂直距離
Color 表的背景色
BackgroundImage 背景圖
BackgroundStyle 背景樣式
BackgroundImageFileName 在HTML中儲存背景圖名
Table方法
InsertColsLeft 當前單元格左邊增加列
InsertColsRight 當前單元格右邊增加列
InsertRowsAbove當前單元格上面增加行
InsertRowsBelow 當前單元格下面增加行
DeleteSelectedCols刪除選中列
DeleteSelectedRows刪除選中行
MergeSelectedCells 合併單元格
UnmergeSelectedCells拆分單元格
SplitSelectedCellsHorizontally 將選中的單元格拆分成幾行
SplitSelectedCellsVertically 將選中的單元格拆分成幾列
InsertCols 指定位置增加列
InsertRows 指定位置增加行
DeleteCols 刪除指定列
DeleteRows 刪除指定行
MergeCells 合併指定範圍內的單元格
UnmergeCells 拆分指定範圍內的單元格
DeleteEmptyRows 刪除所有帶有空單元各的行
DeleteEmptyCols 刪除所有帶有空單元各的列
TABLE用法
建立
...
var table:TRVTableItemInfo;
...
table := TRVTableItemInfo.CreateEx(RowCount,ColumnCount,RVData);
RVData是你要建立表的文件,一般是指richview.RVData或richviewedit.RVData

RICHVIEW中增加表
table.ParaNo := <Paragraph Style Index>
richview.AddItem(<Table name>, table)
Paragraph Style Index 是這個表的索引值
Table name 表的名字,一個字串,不是指這個物件名
這個方法不用在顯示文件之前重新格式化。

richviewedit中增加表
richviewedit.InsertItem(<Table name>, table)
這個方法是在當前位置加入表,不管游標在文件中,還是在表格或者單元格中(游標在哪就加到哪),如果文件是隻讀或者處於保護狀態,用這個方法後,會返回一個FALSE,如果游標在表格中,這個方法將自動釋放表格
cell用法
cell(單元格)是表格的主屬性,因為每個CELL相當於一個RICHEDIT,所以用法和RICHEDIT差不多,但要注意的事,這些用法一般只是相對於游標當前所以的位置,也就是說,如果游標在表格裡,同樣的方法就是對錶格的作用,如果在表格外,就是對外面的RICHEDIT的作用,如果一個文件裡面同時有多個表格的時候,游標在任意地方,你想往某個表格中的某個單元格輸入內容時,這時就要自己判斷地方了。這是因為,當游標點某個地方時,RICHEDIT實際上已經幫你判斷好了位置。
那麼,如何在一個文件的表格裡面的指定的一個單元格里面,輸入自己的內容呢?
假設現在有一個文件,裡面有一個表格(多個表格大家自己去想,方法一樣)
,這個表格裡面有二個單元格,我現在想在第二個單元格中輸入‘我愛你’三個字,並且此時游標在任意地方,下面是最簡單實現方法
for i:= 0 to itemcount -1 do
 begin
    if getitem(i) is TRVTableItemInfo then
      begin
         RVData:=TRVTableItemInfo(item).cells[0,1].AddNLATag('我愛你', 0, 0, '');
         break;
        end;
 end;
如果此時的單元格你不知道多少個,可以用遍歷表格單元格方法,如下,我要得到表格中,每個單元格的中的文字
for row := 0 to TRVTableItemInfo(item).RowCount-1 do
 begin
    for col := 0 to table.ColCount-1 do
      if table.Cells[row,col]<>nil then
      begin
        RVData := table.Cells[row,col].GetRVData;//得到第一個單元格內容
        for i := 0 to RVData.ItemCount-1 do     //開始遍歷格子中的元素,和RICHEDIT一樣
        begin
          if (i>0) and RVData.IsFromNewLine(i) then
            Result := Result + #13#10;
          if RVData.GetItemStyle(i)=rvsTab then
            Result := Result + #9
           else if RVData.GetItemStyle(i)>=0 then
            Result := Result + RVData.GetItemText(i);//得到第一個單元格的文字
        end;
        Result := Result + table.TextColSeparator;//遍歷第一行的所有格子,值相加
      end;
    Result := Result + table.TextRowSeparator;//遍歷所有行的格子,值相加,最終得到每個格子的值
  end;

1.TSRVButton
  繼承自TSRVCustomControl類,其屬性分別為:
  Default:布林型別,預設FALSE,當用戶按下Enter鍵時,將執行該按鈕的OnClick事件。但有一個例外,如果當前擁有輸入焦點的控制元件為另一個按鈕時,按Enter鍵時則只執行當前按鈕的           OnClick事件。
  FocusRectOffset:整型,預設3,控制元件邊緣到聚焦虛線之間的距離。
  Glyph:TPicture型別,預設空,指定一個顯示的影象。
  ModalResult:TModalResult型別,預設mrNone,模態值。當我們單擊點陣圖按鈕時,將把對話方塊的模態值設為相同的值。它將決定點陣圖按鈕的父窗體的關閉方式。如單擊mbOk按鈕,將關閉               對話方塊,返回mrOk值。
  MouseBorderWidth:整型,預設2,邊長。按下按鈕時,指定圖示和標題移動多遠。
  ShowFocusRect:布林型別,預設TRUE,顯示或隱藏聚焦時的虛線。
  事件:
  OnClick,單擊觸發。
2.TSRVCheckBox
  繼承自TSRVCustomControl類,其屬性分別為:
  AllowGrayed:布林型別,預設FALSE,變灰狀態。
  Checked:布林型別,預設FALSE,是否選中狀態,使用前AllowGrayed必須設定為TRUE。
  State:TSRVCheckBoxState型別以,預設cbUnchecked,表示複選框的當前狀態.cbchecked 表示選中, cbunchecked表示未選中, cbgrayedb表示變灰狀態。
3.TSRVComboBox
  繼承自TSRVCustomComboBox類,一個可以用於顯示影象和提示資訊的列表編輯框,所有屬性和事件均繼承TSRVCustomComboBox。 
4.TSRVEdit
  繼承自TSRVEditControl類,文字輸入框,帶一個可選擇彈出列表提示框。其屬性分別為:
  AutoSize:布林型別,預設true,自動調整大小。
  CharCase:TSRVEditCharCase型別,預設srvecNormal,大小字狀態。
  DropDownHints:整型,預設10,定義提示顯示的條目數。
  MaxLength:整型,預設0,指定可輸入的最大字元長度,0為無限制。
  PasswordChar:Char型別,預設#0,指定顯示的字元,設定後無輸字元將用設定的字元代替顯示。
  ReadOnly:布林型別,預設FALSE,是否只讀。
  Modified:布林型別,預設空,判斷文字是否修改。
  SelText:STRING型別,選擇指定字元。
  事件:
  OnChange:文字改變時發生。
  OnEditHints:列表提示框顯示時發生。
  OnCloseHints:列表提示框關閉時發生。
5.TSRVGroupBox
  繼承自TSRVCustomControl類,其屬性分別為:
  BorderColor:TColor型別,預設$00B8D8D7,邊條線顏色。
  BorderWidth:整型,預設1,邊條線寬。
  CaptionOffset:整型,預設10,邊條線到標題的距離。
  CornersOffset:整型,預設10,邊圓角大小。
6.TSRVImagesScroll
  繼承自TSRVCustomControl類,用於顯示影象列表,其屬性分別為:
  CanMoveImages:布林型別,預設TRUE,是否可用滑鼠移動影象。
  CloseButton:定義每張影象的關閉按扭。
  DoubleBuffered:開啟雙緩衝。
  ImageList:連線一個用於顯示的影象表。
  Indent:縮排距離。
  ItemHeight:影象高,
  ItemIndex:選中影象的索引。
  Items:影象物件。
  ItemWidth:影象長。
  Kind:影象放置方式。
  RestrictMove:是否可以移動影象到控制元件外面,使用前選設定CanMoveImages為TRUE。
  Spacings:每張影象之間距離。
  ItemBorderStyle:影象邊框樣式。
  ItemBorderColor:影象邊框顏色。
  ItemColor:影象顏色。
  ItemDownColor:按下後的顏色。
  ItemHotColor: 移動到影象上的顏色。
  ItemSelectedColor:選擇擇後的顏色。
  DecButtonWidth:按扭外觀樣式。
  LargeChange:單擊滾動條後移動的距離。
  ScrollBarHeight:滾動條高度。
  ScrollerPosition:滾動條位置。
  ScrollingDelay:滾動條速度。
  SmallChange:單擊滾動條上的箭頭按扭後移動的距離。
  事件:
  OnChange:影象選擇時發生。
  OnItemMove:二個影象位置發生變化時發生。
  OnCloseItem:關閉影象時發生。
  OnDrawBorder, OnDrawBackground, OnDrawItem, OnDrawCloseButton:自繪影象,CANVAS為畫布,ARect指定影象位置,APaintRect重新繪圖的位置,可以使用這個屬性優化繪圖方法。     state對像狀態,設定DoDefault,防止對像以預設方式繪圖。
7.TSRVLabel
  繼承自TSRVGraphicControl,所有屬性和事件均繼承TSRVGraphicControl。
8.TSRVListBox
  繼承自TSRVCustomListBox,所有屬性和事件均繼承TSRVCustomListBox。
9.TSRVPaintBox
  繼承自TSRVCanvasControl,所有屬性和事件均繼承TSRVCanvasControl,用於提供一個畫布供程式使用。
10.TSRVPanel
  繼承自TSRVCustomControl,一個泛型的面板控訴。其屬性分別為:
  BorderColor:邊界線顏色。
  BorderWidth:邊界線長度。
  CaptionOffset:邊界到標題的距離。
  CornersOffset:圓角大小。
11.TSRVRadioButton
  繼承自TSRVCustomControl,單選按扭。其屬性分別為:
  Checked:是否選定。


 .SaveReg 儲存 RVStyle 屬性到註冊檔案;

 .LoadReg 載入RVStyle 屬性到註冊檔案.

 .SaveCSS 儲存.RVStyle樣式到CSS檔案

 .SaveCSSToStream.儲存.RVStyle樣式為CSS檔案,然後儲存到流

RVSTYLE事件

 .OnDrawCheckpoint 畫檢查點;

 .OnDrawPageBreak – 畫分隔線;

 .OnDrawParaBack – 畫段落背景;

 .OnDrawTextBack – 畫文字背景;

 .OnApplyStyle – 儲存文字型別到畫布;

 .OnApplyStyleColor – 儲存文字顏色到畫布;

 .OnDrawStyleText – 指定的文字型別;

 .OnStyleHoverSensitive –重畫,當滑鼠移進或者移出指定的文字型別時重畫樣式;

2.TRichView
  TRichView元件主要用於顯示文件內容的,包括圖片,表格,文字,甚至可以顯示其它元件。使用之前必須要關聯TRVSTYLE(前面有介紹),不關聯是不能顯示的。TRichView有個重要的屬性集SETTINGS,裡面可以設定一些重要的引數。
  TRichView屬性,事件,方法;
  .Style – 關聯TRVSTYLE樣式
  .Options – 一些重要的操作(以後會講到);
  .ItemCount – 文件中元素數量.
  .BackgroundBitmap- 文件背景圖片
  .BackgroundStyle - 文件背景圖片顯示樣式
  .Color.文件背景顏色
  .FirstJumpNo 為第一個超文字增加ID號;
  TRichView插入事件;
  .AddNL 增加文字元素;
  .AddBreakEx 增加分隔線;
  .AddPictureEx 增加圖片;
  .AddHotPicture 增加熱點圖片;
  .AddControlEx 增加元件;
  .Add 在文字後面增加字元;
  .AddFmt 增加特點格式字符集
  .Clear 清除文件內容
  .Format, FormatTail 格式化文件內容;
  .Reformat 重新格式化文件;
  .OnJump 當游標點選超連結時發生;
  .OnRVMouseMove 當游標移動到超連結時發生;
  .GetJumpPointItemNo 跳轉到指定ID號的元素;
  .LeftMargin, RightMargin, TopMargin, BottomMargin 左右上下邊距;
  .MaxTextWidth  最長行(字元數);
  .MinTextWidth  最短行(字元數);
  .DocumentHeight 文件高;
  .VAlign 垂直效準線;
  .VScrollVisible 垂直滑動條開關;
  .HScrollVisible 平水滑動條開關;
  .VSmallStep 垂直滑動條滑動幅度;
  .OnVScrolled 垂直滑動條事件;
  .OnHScrolled 水平滑動條事件;
  .Copy 複製選擇的內容到剪下板;
  .CopyDef 選擇方式複製選擇的內容到剪下板;
  .CopyImage 複製選擇的圖片到剪下板;
  .CopyTextA 複製選擇的內容,以文字形式到剪下板;
  .CopyTextW 複製選擇的內容,以Unicode格式到剪下板;
  .CopyRVF 複製選擇的內容,以RVF格式到剪下板;
  .CopyRTF 複製選擇的內容,以RTF格式到剪下板;
  .GetSelectedImage 返回選擇的圖片;
  .GetSelText 返回選擇的文字;
  .GetSelTextW 以Unicode字元形式返回選擇的內容;
  .SelectAll 全選;
  .SetSelectionBounds 選擇指定的元素;
  .SelectWordAt 選擇一個指定座標上的字元;
  .SelectControl 選擇一個可視元件;
  .Deselect 取消選擇;
  .RVFOptions 一些載入和儲存RVF文體的操作;
  .RVFWarnings 一些RVF文體閱讀時的錯誤;
  .SaveRVF 儲存文件為RVF格式;
  .SaveRVFToStream 儲存文件為RVF格式,然後儲存到流;
  .LoadRVF 載入RVF檔案;
  .LoadRVFFromStream 從流載入RVF檔案;
  .CopyRVF 複製RVF文件到剪下板;
  .InsertRVFFromStream 從流增加RVF文件;
  .LoadFromStream 從流載入RVF, RTF或者文字格式的檔案;
  .LoadText 從檔案中增加文字;
  .LoadTextW 從Unicode encoding檔案中增加文字;
  .LoadRTF 載入RTF;
  .SaveHTML 儲存文件為HTML格式;
  .SaveHTMLEx 儲存文件為HTML格式。使用CSS樣式;
  .SaveHTMLToStream, SaveHTMLToStreamEx 方法同上,只不過儲存到流,不是直接儲存為文件;
  .SaveText 儲存為文字檔案;
  .SaveTextW 儲存為Unicode檔案;
  .SaveTextToStream, SaveTextToStreamW – 可以選擇性的儲存到流;
  .SaveRTF 可以選擇性的儲存為RTF格式;
  .SaveRTFToStream 可以選擇性的儲存為RTF格式到流.
  .GetItemStyle 返回一個元素的型別;
  .GetTextInfo  返回文字元素的資訊;
  .GetBreakInfo  返回分隔線資訊;
  .GetBulletInfo  返回著重號資訊;
  .GetHotspotInfo  返回熱點資訊;
  .GetPictureInfo  返回圖片或者熱點圖片資訊;
  .GetControlInfo  返回元件資訊;
  .GetItemExtraIntProperty,GetItemExtraStrProperty 返回元素額外的屬性值;
  .GetItem  通用方法,主要用於表格;
  .GetItemCheckpoint 返回元素的檢查點;
  .GetItemVAlign 返回元素位置;
  .GetItemTag  返回元素的標籤;
  .GetItemText  返回元素內容;
  .IsParaStart 返回是否是第一個元素;
  .IsFromNewLine 返回是否是第一個元素;


TRichViewEdit 
TRichViewEdit主要是用於編輯文字內容,如圖片,文字,表格,控制元件,等等
如果沒有關聯RVSTYLE,TRichViewEdit是不能顯示或者編輯任何內容的
屬性,事件,方法列表(用法以後介紹)
屬性
CurItemNo – 當前元素編號
CurItemStyle – 當前元素型別
CurParaStyleNo – 當前段落樣式型別編號
CurTextStyleNo – 當前文字樣式編號
EditorOptions – 設定一些編輯的選項
ReadOnly 內容是否可以編輯,或只讀
Modified – 內容是否有修改
CustomCaretInterval – 自定義字元重繪時間間隔
事件
OnChange 文件內容改變時觸發
OnCurParaStyleChanged 當前段落樣式改變時觸發
OnCurTextStyleChanged 當前文字樣式改變時觸發
OnPaste 允許貼上
OnStyleConversion 改變選中文字樣式
OnParaStyleConversion 改變段落樣式
OnCaretGetOut 當字元超過邊界時觸發
OnCaretMove 當字元移動後觸發
OnItemTextEdit 當一個文字型別元素的文字內容改變時
OnSmartPopupClick 彈出選單
OnMeasureCustomCaret and OnDrawCustomCaret 替換字元
常用方法
ApplyParaStyle, ApplyTextStyle 儲存文字樣式
ApplyStyleConversion 儲存選中文字的樣式
ApplyParaStyleConversion 儲存選中段落樣式
Change 文件內容改變事件
BeginUpdate, EndUpdate 重繪/重新整理
SearchText, -A, -W 查詢字元
常用插入方法
InsertText, -A, -W, InsertStringTag, InsertStringATag, InsertStringWTag 插入文字
InsertBreak 插入一條線
InsertBullet 插入專案符號
InsertControl 插入元件
InsertHotspot 插入熱點
InsertPicture 插入圖片
InsertHotPicture 插入超文字連結圖片
InsertTab 插入製表鍵
InsertRVFFromFileEd, InsertRVFFromStreamEd 從檔案或者流插入RVF格式的檔案
InsertRTFFromFileEd, InsertRTFFromStreamEd 從檔案或者流插入RTF格式的檔案
InsertTextFromFile,InsertOEMTextFromFile從檔案插入字元
InsertItem 常用插入元素的方法
剪貼簿操作(主要方法和事件)
CanPaste 是否允許從剪貼簿貼上
CanPasteRVF 是否允許從剪貼簿貼上RVF格式內容
CanPasteRTF 是否允許從剪貼簿貼上RTF格式內容
CutDef 剪下到道貌岸然板
Paste 貼上
PasteBitmap 貼上圖片
PasteMetafile 貼上圖形元件
PasteGraphicFile 貼上圖形元件
PasteRVF 從剪貼簿貼上RVF格式內容
PasteRTF 從剪貼簿貼上RTF格式內容
PasteTextA 從剪貼簿貼上ANSI格式內容
PasteTextW 從剪貼簿貼上UNICODE格式內容
DeleteSelection 刪除選中的內容
SelectCurrentWord 選中當前內容
SelectCurrentLine 選中當前行
常用編輯元素方法
SetBreakInfoEd 改變橫線
SetBulletInfoEd  改變專案符號
SetControlInfoEd 改變元件
SetHotspotInfoEd 改變熱點
SetPictureInfoEd 改變圖片
SetItemExtraIntPropertyEd,SetItemExtraStrPropertyEd  編輯元素屬性
SetItemTagEd 編輯元素標籤
SetItemVAlignEd 調整元素相對位置
SetItemTextEd  改變元素名
SetCheckpointInfoEd 編輯檢查點
RemoveCheckpointEd 刪除檢查點
ResizeControl 調整元件
AdjustControlPlacement ,AdjustControlPlacement2 自動調整元件位置
獲取元素資訊方法
GetCurrentTextInfo 獲取文字資訊
GetCurrentBreakInfo 獲取線條元素資訊
GetCurrentBulletInfo 獲取專案符號資訊
GetCurrentControlInfo 元件資訊
GetCurrentHotspotInfo 熱點資訊
GetCurrentPictureInfo 圖片資訊
GetCurrentItem,GetCurrentItemEx. 未知型別元素資訊
GetCurrentItemExtraIntProperty,GetCurrentItemExtraStrProperty 返回指定元素屬性值
GetCurrentTag 返回元素標籤
GetCurrentItemVAlign 返回元素水平位置
GetCurrentCheckpoint 返回元素檢查點
GetCurrentItemText 返回元素名
GetCurrentLineCol 返回當前位置的行和列
撤銷和恢復
UndoLimit 設定撤銷緩衝區
UndoAction 返回撤銷操作
Undo 撤銷最後操作
UndoName 返回撤銷操作名
RedoAction 返回恢復操作
Redo redoes 恢復最後一次撤銷操作
RedoName 返回恢復操作名
ClearUndo 清除撤銷和恢復緩衝區
Unicode操作
PasteTextW 從剪貼簿複製UNICODE文字
InsertTextW 插入UNICODE文字
InsertTextFromFileW 從檔案插入UNICODE文字
拼寫檢查
GetCurrentMisspelling 返回當前位置有錯語的詞
LiveSpellingMode 拼寫檢查開關
檢查點
SetCheckpointInfoEd 給特殊的元素增加檢查點
RemoveCheckpointEd 刪除特殊元素的檢查點
GetCurrentCheckpoint 返回當前元素的檢查點
SetCurrentCheckpointInfo 增加或者編輯當前元素的檢查點
RemoveCurrentCheckpoint 刪除當前元素的檢查點
InsertCheckpoint 當前位置增加檢查點
GetCheckpointAtCaret 返回當前位置的檢查點
RemoveCheckpointAtCaret 刪除當前檢查點

TDBRichView TDBRichViewEdit TRVPrint TRVPrintPreview,TRVReportHelper
TDBRichView,TDBRichViewEdit主要用於顯示,編輯資料感之內容
和RichView一樣,DBRichView,DBRichViewEdit如果不關聯RVStyle也是不能顯示任何內容的。
TDBRichView,DBRichViewEdit支援如下型別
RVF RichView檔案型別
RTF RichView文字型別
text 文字
others 其它
TRVPrint
TRVPrint主要用於列印RICHVIEW文件,執行時不可見
使用方法
1 先指定要列印的內容
2 指定頁首或頁尾
3 格式化內容
4 列印或者預覽
5 釋放記憶體
事件方法
OnFormatting 當頁碼發生改變時觸發
OnSendingToPrinter 列印時觸發
OnPagePrepaint and OnPagePostpaint 允許在頁面個重繪
OnPrintComponent 列印元件
頁邊距
LeftMarginMM 左邊距
RightMarginMM 右邊距
TopMarginMM 上邊距
BottomMarginMM 下邊距
這裡的邊距和文件編輯時邊距是不同的,一個針對頁面,一個針對文件
TRVPrintPreview
預覽文件,要先關聯TRVPrint,並且列印設定已經準備完畢
TRVReportHelper
TRVReportHelper和TRVPrint相似,TRVPrint是把文件送入印表機,TRVReportHelper則是把文件送到任何canvas上顯示如:螢幕,印表機,IMAGE等
TRVOfficeConverter
TRVOfficeConverter允許在RICHVIEW中使用Microsoft Office(32位板本的)文字格式

ScaleRichView
ScaleRichView是一個TRichView的外掛,用TRichView引擎來呈現文件,ScaleRichView上的文件其實就是一個隱藏的RICHVIEWEDIT
,所以你可以像使用RIHCVIEW一樣使用ScaleRichView,安裝ScaleRichView之前一定要先安裝TRIHCVIEW,通常在開發過程中用捆綁方式(RichView+ScaleRichView)進行開發
ScaleRichView 主要功能介紹
1 支援所有RICHVIEW功能
2 所見即所得模式
3 快速編碼
4 支援差不多120多種文件格式
5 支援列印不同文件樣式,如文件編輯時為A4樣式,列印時可以選擇A5樣式
6 頁面定位
7 支援多種部署模式
8 滾動顯示
ScaleRichView元件介紹(後面釋出將對下面類一個一個的詳細介紹)
1 TSRichViewEdit
  可以以所見即所得模式編輯文件,支援多種頁面瀏覽模式,包括頁面檢視模式
2 TDBSRichViewEdit
  和TSRichViewEdit 一樣,只不過用於資料感之,也是所見即所得
3 TSclRVRuler
  TSRichViewEdit的標尺,水平和垂直,繼承TRVRuler
4 TSRVToolBar
  工具欄
5 TSRVToolWindow
  彈出式視窗,可以把放工具欄
6 TSRVPageScroll
  顯示文件縮圖
7 TSRVPrint
  列印文件
8 TSRVPreview
  瀏覽文件
 
TSRichViewEdit
TSRichViewEdit主要是用來處理文字內容,下面是一些常用屬性和方法,事件
屬性:
RichViewEdit:返回一個TRichViewEdit元件,然後通過TRichViewEdit一個屬性方法來操作文件,預設情況下,TSRichViewEdit
使用了一個內部的TRichViewEdit,如果你想使用自定義的TRichViewEdit,只要關聯TSRichViewEdit的ExternalRV屬性,如果想
使用自定義的TRVStyle,則只要關聯其ExternalRVSYTLE就行
RVHeader 頁首編輯器
RVFooter 頁尾編輯器
RVNote 腳註和尾註編輯器
PageProperty 相關頁的屬性
ViewProperty 檢視模式
BackgroundProperty 背景屬性
下面的一些屬性提供了訪問RichViewEdit的屬性,用法和RichViewEdit一樣,前面有講過,這裡就不講了,屬性名相同,這個屬性也可適用於其它編輯器
 .AnimationMode
 .BiDiMode
 .CPEventKind
 .ReadOnly
 .RTFOptions
 .RTFReadProperties
 .RVBackgroundBitmap
 .RVBackgroundStyle
 .RVColor
 .RVEditorOptions
 .RVFOptions
 .RVFParaStylesReadMode
 .RVFTextStylesReadMode
 .RVOptions
 .SmartPopupProperties, SmartPopupVisible
 .TabNavigation
下面一些屬性是允許在編輯時改變屬性值的
HScrollPos 設定或者得到滾動的位置
HScrollBar 和 VScrollBar 顯示或者隱藏滾動條
OnHScrolled 和 OnVScrolled 滾動事件
ScrolledPage 返回第一頁碼
MenuHButtons 和 MenuHorizontal 水平選單設定
MenuVButtons 和 MenuVertical   垂直選單設定
方法
ConvertRVToSRV 和 ConvertSRVToRV 允許TSRichViewEdit和RichViewEdit之間位置轉換
GetPageClientRect 返回頁的位置
GetItemBounds  返回頁面元素位置
GetCaretPosInUnits 返回當前位置
GetPageAt 返回指定位置的頁面
GetItemAt 返回指定位置的元素
UnitsPerInchH  UnitsPerInchV 允許單元之間的座標轉換
FindNextHyperlink/FindPriorHyperlink 查詢超連結
FindNextCheckpoint/FindPriorCheckpoint查詢檢查點
FindNextItem/FindPriorItem 查詢元素
FindNextHeading/FindPriorHeading查詢標題
NextCurHyperlink/PriorCurHyperlink選擇超連結
NextCurCheckpoint/PriorCurCheckpoint選擇檢查點
NextCurItem/PriorCurItem選擇元素
NextCurHeading/PriorCurHeading 移動到當前的標題
RangeSearch指定範圍查詢
FirstCurPage游標移動第一頁
PriorCurPage游標移動前一頁
NextCurPage游標移動下一頁
LastCurPage游標移動最後一頁
PrintAll列印整個文件
PrintCurrent列印當前頁面
PrintRange列印指定範圍內容
MinPrintedItemNo 和 MaxPrintedItemNo 允許從指定元素之間列印
DrawPage和DrawMetafile允許把文件顯示到其它畫布或者圖元上
事件
OnPageFormatChanged 當 PageProperty和PageFormat屬性改變發生
OnChangeViewModeAfter 當ViewProperty屬性改變時發生
OnChangeViewModeBefore 當ViewMode屬性改變時發生
OnZoomChanged 當ViewProperty.ZoomPercent或.ZoomMode屬性改變時發生
OnHScrolled, OnVScrolled, OnPageScrolled滾動時發生
OnCurrentPageChange 移動到其它頁面時發生
OnPageCountChanged 文件頁數發生變化時發生
OnClickPage 單擊頁面後發生
OnPaintPage 畫自定義頁面,如果預設方法不能完全顯示時,可用此方法
OnPaintComponent 顯示控制元件
OnPaint 顯示其它
OnCheckControl 列舉所以加入的控制元件
OnMessageControl 允許加入的控制元件響應訊息
OnGetPagePos 允許自定義頁的位置和順序
表格圖示
先設定ViewProperty的UseTableIcons屬性為TRUE,當用戶把游標移動到表格上時,表格左上方會顯示一個小圖示,當游標移走時,圖示消失,同時觸發OnTableIconClick事件

Table(表格)
table是RICHVIEW裡面一個比較特殊的元素,也是RICHVIEW眾元素中最複雜的一種,TABLE由單元格組成,在RICHVIEW裡,每個單元格相當於一個RICHVIEW文件,單元格里面可以表格等各種元素,理論上表格是可以無限巢狀,這樣的結構就導致了其複雜性。
Table屬性
BorderWidth 表的邊框長度
BorderStyle 邊框樣式
BorderColor 邊框顏色
BorderLightColor 3D外觀邊框顏色
VisibleBorders 邊框的顯示和隱藏
CellBorderWidth 單元格邊框長度
CellBorderStyle 單元格邊框樣式
CellBorderColor 單元格邊框顏色
CellBorderLightColor 3D外觀單元格邊框顏色
CellHSpacing 單元格之間的水平距離
CellVSpacing 單元格之間的垂直距離
BorderHSpacing 表邊框與表最外層單元格之間的水平距離
BorderVSpacing表邊框與表最外層單元格之間的垂直距離
Color 表的背景色
BackgroundImage 背景圖
BackgroundStyle 背景樣式
BackgroundImageFileName 在HTML中儲存背景圖名
Table方法
InsertColsLeft 當前單元格左邊增加列
InsertColsRight 當前單元格右邊增加列
InsertRowsAbove當前單元格上面增加行
InsertRowsBelow 當前單元格下面增加行
DeleteSelectedCols刪除選中列
DeleteSelectedRows刪除選中行
MergeSelectedCells 合併單元格
UnmergeSelectedCells拆分單元格
SplitSelectedCellsHorizontally 將選中的單元格拆分成幾行
SplitSelectedCellsVertically 將選中的單元格拆分成幾列
InsertCols 指定位置增加列
InsertRows 指定位置增加行
DeleteCols 刪除指定列
DeleteRows 刪除指定行
MergeCells 合併指定範圍內的單元格
UnmergeCells 拆分指定範圍內的單元格
DeleteEmptyRows 刪除所有帶有空單元各的行
DeleteEmptyCols 刪除所有帶有空單元各的列
TABLE用法
建立
...
var table:TRVTableItemInfo;
...
table := TRVTableItemInfo.CreateEx(RowCount,ColumnCount,RVData);
RVData是你要建立表的文件,一般是指richview.RVData或richviewedit.RVData

RICHVIEW中增加表
table.ParaNo := <Paragraph Style Index>
richview.AddItem(<Table name>, table)
Paragraph Style Index 是這個表的索引值
Table name 表的名字,一個字串,不是指這個物件名
這個方法不用在顯示文件之前重新格式化。

richviewedit中增加表
richviewedit.InsertItem(<Table name>, table)
這個方法是在當前位置加入表,不管游標在文件中,還是在表格或者單元格中(游標在哪就加到哪),如果文件是隻讀或者處於保護狀態,用這個方法後,會返回一個FALSE,如果游標在表格中,這個方法將自動釋放表格
cell用法
cell(單元格)是表格的主屬性,因為每個CELL相當於一個RICHEDIT,所以用法和RICHEDIT差不多,但要注意的事,這些用法一般只是相對於游標當前所以的位置,也就是說,如果游標在表格裡,同樣的方法就是對錶格的作用,如果在表格外,就是對外面的RICHEDIT的作用,如果一個文件裡面同時有多個表格的時候,游標在任意地方,你想往某個表格中的某個單元格輸入內容時,這時就要自己判斷地方了。這是因為,當游標點某個地方時,RICHEDIT實際上已經幫你判斷好了位置。
那麼,如何在一個文件的表格裡面的指定的一個單元格里面,輸入自己的內容呢?
假設現在有一個文件,裡面有一個表格(多個表格大家自己去想,方法一樣)
,這個表格裡面有二個單元格,我現在想在第二個單元格中輸入‘我愛你’三個字,並且此時游標在任意地方,下面是最簡單實現方法
for i:= 0 to itemcount -1 do
 begin
    if getitem(i) is TRVTableItemInfo then
      begin
         RVData:=TRVTableItemInfo(item).cells[0,1].AddNLATag('我愛你', 0, 0, '');
         break;
        end;
 end;
如果此時的單元格你不知道多少個,可以用遍歷表格單元格方法,如下,我要得到表格中,每個單元格的中的文字
for row := 0 to TRVTableItemInfo(item).RowCount-1 do
 begin
    for col := 0 to table.ColCount-1 do
      if table.Cells[row,col]<>nil then
      begin
        RVData := table.Cells[row,col].GetRVData;//得到第一個單元格內容
        for i := 0 to RVData.ItemCount-1 do     //開始遍歷格子中的元素,和RICHEDIT一樣
        begin
          if (i>0) and RVData.IsFromNewLine(i) then
            Result := Result + #13#10;
          if RVData.GetItemStyle(i)=rvsTab then
            Result := Result + #9
           else if RVData.GetItemStyle(i)>=0 then
            Result := Result + RVData.GetItemText(i);//得到第一個單元格的文字
        end;
        Result := Result + table.TextColSeparator;//遍歷第一行的所有格子,值相加
      end;
    Result := Result + table.TextRowSeparator;//遍歷所有行的格子,值相加,最終得到每個格子的值
  end;

1.TSRVButton
  繼承自TSRVCustomControl類,其屬性分別為:
  Default:布林型別,預設FALSE,當用戶按下Enter鍵時,將執行該按鈕的OnClick事件。但有一個例外,如果當前擁有輸入焦點的控制元件為另一個按鈕時,按Enter鍵時則只執行當前按鈕的           OnClick事件。
  FocusRectOffset:整型,預設3,控制元件邊緣到聚焦虛線之間的距離。
  Glyph:TPicture型別,預設空,指定一個顯示的影象。
  ModalResult:TModalResult型別,預設mrNone,模態值。當我們單擊點陣圖按鈕時,將把對話方塊的模態值設為相同的值。它將決定點陣圖按鈕的父窗體的關閉方式。如單擊mbOk按鈕,將關閉               對話方塊,返回mrOk值。
  MouseBorderWidth:整型,預設2,邊長。按下按鈕時,指定圖示和標題移動多遠。
  ShowFocusRect:布林型別,預設TRUE,顯示或隱藏聚焦時的虛線。
  事件:
  OnClick,單擊觸發。
2.TSRVCheckBox
  繼承自TSRVCustomControl類,其屬性分別為:
  AllowGrayed:布林型別,預設FALSE,變灰狀態。
  Checked:布林型別,預設FALSE,是否選中狀態,使用前AllowGrayed必須設定為TRUE。
  State:TSRVCheckBoxState型別以,預設cbUnchecked,表示複選框的當前狀態.cbchecked 表示選中, cbunchecked表示未選中, cbgrayedb表示變灰狀態。
3.TSRVComboBox
  繼承自TSRVCustomComboBox類,一個可以用於顯示影象和提示資訊的列表編輯框,所有屬性和事件均繼承TSRVCustomComboBox。 
4.TSRVEdit
  繼承自TSRVEditControl類,文字輸入框,帶一個可選擇彈出列表提示框。其屬性分別為:
  AutoSize:布林型別,預設true,自動調整大小。
  CharCase:TSRVEditCharCase型別,預設srvecNormal,大小字狀態。
  DropDownHints:整型,預設10,定義提示顯示的條目數。
  MaxLength:整型,預設0,指定可輸入的最大字元長度,0為無限制。
  PasswordChar:Char型別,預設#0,指定顯示的字元,設定後無輸字元將用設定的字元代替顯示。
  ReadOnly:布林型別,預設FALSE,是否只讀。
  Modified:布林型別,預設空,判斷文字是否修改。
  SelText:STRING型別,選擇指定字元。
  事件:
  OnChange:文字改變時發生。
  OnEditHints:列表提示框顯示時發生。
  OnCloseHints:列表提示框關閉時發生。
5.TSRVGroupBox
  繼承自TSRVCustomControl類,其屬性分別為:
  BorderColor:TColor型別,預設$00B8D8D7,邊條線顏色。
  BorderWidth:整型,預設1,邊條線寬。
  CaptionOffset:整型,預設10,邊條線到標題的距離。
  CornersOffset:整型,預設10,邊圓角大小。
6.TSRVImagesScroll
  繼承自TSRVCustomControl類,用於顯示影象列表,其屬性分別為:
  CanMoveImages:布林型別,預設TRUE,是否可用滑鼠移動影象。
  CloseButton:定義每張影象的關閉按扭。
  DoubleBuffered:開啟雙緩衝。
  ImageList:連線一個用於顯示的影象表。
  Indent:縮排距離。
  ItemHeight:影象高,
  ItemIndex:選中影象的索引。
  Items:影象物件。
  ItemWidth:影象長。
  Kind:影象放置方式。
  RestrictMove:是否可以移動影象到控制元件外面,使用前選設定CanMoveImages為TRUE。
  Spacings:每張影象之間距離。
  ItemBorderStyle:影象邊框樣式。
  ItemBorderColor:影象邊框顏色。
  ItemColor:影象顏色。
  ItemDownColor:按下後的顏色。
  ItemHotColor: 移動到影象上的顏色。
  ItemSelectedColor:選擇擇後的顏色。
  DecButtonWidth:按扭外觀樣式。
  LargeChange:單擊滾動條後移動的距離。
  ScrollBarHeight:滾動條高度。
  ScrollerPosition:滾動條位置。
  ScrollingDelay:滾動條速度。
  SmallChange:單擊滾動條上的箭頭按扭後移動的距離。
  事件:
  OnChange:影象選擇時發生。
  OnItemMove:二個影象位置發生變化時發生。
  OnCloseItem:關閉影象時發生。
  OnDrawBorder, OnDrawBackground, OnDrawItem, OnDrawCloseButton:自繪影象,CANVAS為畫布,ARect指定影象位置,APaintRect重新繪圖的位置,可以使用這個屬性優化繪圖方法。     state對像狀態,設定DoDefault,防止對像以預設方式繪圖。
7.TSRVLabel
  繼承自TSRVGraphicControl,所有屬性和事件均繼承TSRVGraphicControl。
8.TSRVListBox
  繼承自TSRVCustomListBox,所有屬性和事件均繼承TSRVCustomListBox。
9.TSRVPaintBox
  繼承自TSRVCanvasControl,所有屬性和事件均繼承TSRVCanvasControl,用於提供一個畫布供程式使用。
10.TSRVPanel
  繼承自TSRVCustomControl,一個泛型的面板控訴。其屬性分別為:
  BorderColor:邊界線顏色。
  BorderWidth:邊界線長度。
  CaptionOffset:邊界到標題的距離。
  CornersOffset:圓角大小。
11.TSRVRadioButton
  繼承自TSRVCustomControl,單選按扭。其屬性分別為:
  Checked:是否選定。

 從某行開始續打當前頁

環境:

Windwos7 旗艦版;

DelphiXE2 Update2;

RichView版本13.10.1

原理:

在最終發給列印畫布之前,處理要列印的內容(畫布上的圖),即獲取到要列印的起始行的位置,將此位置之前的所有內容都“塗“為白色;

實現步驟:

1.在TSRichViewEdit中增加兩個變數

    // 續打起始位置 ColorEgg  2012-7-6 23:20:48

    UseSequelPrint: Boolean;//初始化為False

    SequelPos: Integer;//初始化為0

在PaintPage中,處理續打的最後效果

具體虛擬碼如下,有ColorEgg的註釋處為改動

procedure TSRichViewEdit.PaintPage(PageNo: Integer; Canvas: TCanvas;

  ScaleX, ScaleY: Single; PageRect, PaintRect, RClient: TRect;

  OffsetX, OffsetY: Integer; Printing: Boolean);

Var

begin

    with OldRect do

      hRegion := CreateRectRgn(Left, Top, Right, Bottom);

    SelectClipRgn(Canvas.Handle, hRegion);

    DeleteObject(hRegion);

  end;

  if not UseSequelPrint then //ColorEgg 正常列印

  begin

    // drawing Page Number

    if (FPageProperty.FPageViewMode) and (not FPageProperty.ShowPageBreaks) and

       FPageProperty.PageNoVisible and (PageNo >= FPageProperty.FPageNoFirst) and

       (not Printing or IsInPrintingRange(PageEndItemNo[PageNo - 1])) then

    begin

      …

    end;

    {$IFNDEF RVDONOTUSESEQ}

    If (PageStartDrawItemNo[PageNo - 1] <> -1) then

      …

    If not Printing or IsInPrintingRange(PageEndItemNo[PageNo - 1]) then

      …

    {$ENDIF}

    If not Printing or IsInPrintingRange(PageStartItemNo[PageNo - 1]) then

    begin

      …

    end;

    if Assigned(FOnPaintPage) and

      (not Printing or IsInPrintingRange(PageEndItemNo[PageNo - 1])) then

    begin

      …

    end;

  end

  else   // ColorEgg 處理續打

  begin

    tmp := PaintRect;

    tmp.Bottom := SequelPos;

    Canvas.FillRect(tmp);

  end;

  //  SetWorldTransform(Canvas.Handle, OldXForm);

  RestoreCanvasZoom(Canvas, OldInfo);

end;

上面的程式碼和原文有11行不一樣,包括begin、else、end所佔的行。

2.在按行續打按鈕的事件中寫

procedure TForm1.btnPrintCurLineClick(Sender: TObject);

var

  vPt: TPoint;

  vDocMs: TMemoryStream;

begin

  try

    vDocMs := TMemoryStream.Create;

    srvEdoc.RichViewEdit.SaveRVFToStream(vDocMs, False);

    vDocMs.Position := 0;

    srvEdocPrint.LoadRVFFromStream(vDocMs);

    srvEdocPrint.CurrentPage := srvEdoc.CurrentPage;

    vPt := srvEdoc.CaretPos;

    srvEdocPrint.UseSequelPrint := True;

    srvEdocPrint.SequelPos := vPt.Y;

    srvEdocPrint.PrintCurrent;

  finally

    FreeAndNil(vDocMs);

  end;

end;

其中,srvEdoc為編輯所用的TSRichViewEdit,srvEdocPrint為處理列印用的TSRichViewEdit,本例中這樣做的原因是:列印時要對頁面做一些“硬”處理,如果和編輯用同一個的話,會影響到編輯的所見,這樣通過增加不到20行程式碼,即可最簡單的完成從指定行續打。

存在問題:

上面講的只適合從指定的文字行開始列印當前頁,如果從表格中指定行續打會發生偏移,需要用另外的方法處理,不在本例討論範圍之內。

RichView 元件 由 個元件模組組成,分別是:

    1、TRVStyle:主要是定義RICHVIEW樣式,定義後,其它RIHCVIEW都可以引用此樣式。

    2、TRichView :主要用於顯示文字,影象,等等

    3、TRichViewEdit: 主要用於編輯文字,影象,等等

    4、TDBRichView:  和RICHVIEW一樣,但主要用於資料感之

    5、TDBRichViewEdit :  和RIHCVIEWEDIT一樣,但主要用於資料感之

    6、TRVPrint :  用於控制元件中文件的列印

    7、TRVPrintPreview :用於列印預覽

    8、TRVReportHelper :用於在其它控制元件上顯示文件

    9、TRVOfficeConverter :用於操作WORD文件

9大類詳細介紹:

  1、TRVStyle :這個元件在執行時是不可見的,TRVSTYLE是派生類,直接繼承TCOMPONENT。如果你想顯示RICHVIEW裡面的文件,只用把要顯示的RICHVIEW關聯TRVSTYLE元件就行,(建立一個TRVSTYLE後把,RICHVEIW的STYLE屬性關    聯這個TRVSTLE)。同樣 RichView, RichViewEdit, DBRichView, DBRichViewEdit 都可以關聯這個TRVSTYLE,方法相同。如果一個TRVSTYLE關聯多個元件後,當其中一個元件要刪除這個TRVSTYLE後,其它的元件就不能繼續使用這個TRVSTYLE,解決辦法就是一個元件關聯一個TRVSTYLE。

    RVSTYLE有三個主屬性:

   (1)TEXTSTYLES– 主要是設定一些文字樣式;

   (2)PARASTYLES– 段落標題樣式  

   (3)LISTSTYLES–段落標題樣式列表

    RVSTYLE顏色屬性:

     .Color – 背景色;

     .SelColor, InactiveSelColor – 選擇文字的背景色;

     .SelTextColor, InactiveSelTextColor – 選擇文字的顏色;

     .DisabledFontColor – 控制元件不可能時文字的顏色.

     .HoverColor – 超文字的顏色;

     .CheckpointColor –檢查點虛線顏色;

     .CheckpointEvColor – 檢查點事件虛線顏色;

     .PageBreakColor – 文件隔斷顏色;

     .FloatingLineColor – 左右佔位符顏色

    RVSTYLE:滑鼠樣式;

     .JumpCursor – 超文字樣式 

     .LineSelectCursor – 左邊欄樣式.

LABEL元素相關屬性

 .FieldHighlightColor – 高亮顯示顏色.

 .FieldHighlightType –高亮顯示模式(有三種).

 .FootnoteNumbering – 一些頁尾型別.

 .FootnotePageReset – 頁尾模式.

 .EndnoteNumbering – 尾註型別.

RVSTYLE其它屬性;

 .SelectionStyle – 文件外觀選擇;

 .SelectionMode – 選擇模式;

 .DefUnicodeStyle – 預設Unicode 文字樣式;

 .DefCodePage –  ANSI <->Unicode 自動轉換;

 .LineWrapMode 文字框型別;

 .UseSound. 聲音開關

RVSTYLE方法;

 .SaveINI 儲存 RVStyle 屬性到INI檔案;

 .LoadINI 載入 RVStyle屬性從INI檔案;

 .SaveReg 儲存 RVStyle 屬性到註冊檔案;

 .LoadReg 載入RVStyle 屬性到註冊檔案.

 .SaveCSS 儲存.RVStyle樣式到CSS檔案

 .SaveCSSToStream.儲存.RVStyle樣式為CSS檔案,然後儲存到流

RVSTYLE事件

 .OnDrawCheckpoint 畫檢查點;

 .OnDrawPageBreak – 畫分隔線;

 .OnDrawParaBack – 畫段落背景;

 .OnDrawTextBack – 畫文字背景;

 .OnApplyStyle – 儲存文字型別到畫布;

 .OnApplyStyleColor – 儲存文字顏色到畫布;

 .OnDrawStyleText – 指定的文字型別;

 .OnStyleHoverSensitive –重畫,當滑鼠移進或者移出指定的文字型別時重畫樣式;

2、TRichView
  TRichView元件主要用於顯示文件內容的,包括圖片,表格,文字,甚至可以顯示其它元件。使用之前必須要關聯TRVSTYLE(前面有介紹),不關聯是不能顯示的。TRichView有個重要的屬性集SETTINGS,裡面可以設定一些重要的引數。
  TRichView屬性,事件,方法;
  .Style – 關聯TRVSTYLE樣式
  .Options – 一些重要的操作(以後會講到);
  .ItemCount – 文件中元素數量.
  .BackgroundBitmap- 文件背景圖片
  .BackgroundStyle - 文件背景圖片顯示樣式
  .Color.文件背景顏色
  .FirstJumpNo 為第一個超文字增加ID號;
  TRichView插入事件;
  .AddNL 增加文字元素;
  .AddBreakEx 增加分隔線;
  .AddPictureEx 增加圖片;
  .AddHotPicture 增加熱點圖片;
  .AddControlEx 增加元件;
  .Add 在文字後面增加字元;
  .AddFmt 增加特點格式字符集
  .Clear 清除文件內容
  .Format, FormatTail 格式化文件內容;
  .Reformat 重新格式化文件;
  .OnJump 當游標點選超連結時發生;
  .OnRVMouseMove 當游標移動到超連結時發生;
  .GetJumpPointItemNo 跳轉到指定ID號的元素;
  .LeftMargin, RightMargin, TopMargin, BottomMargin 左右上下邊距;
  .MaxTextWidth  最長行(字元數);
  .MinTextWidth  最短行(字元數);
  .DocumentHeight 文件高;
  .VAlign 垂直效準線;
  .VScrollVisible 垂直滑動條開關;
  .HScrollVisible 平水滑動條開關;
  .VSmallStep 垂直滑動條滑動幅度;
  .OnVScrolled 垂直滑動條事件;
  .OnHScrolled 水平滑動條事件;
  .Copy 複製選擇的內容到剪下板;
  .CopyDef 選擇方式複製選擇的內容到剪下板;
  .CopyImage 複製選擇的圖片到剪下板;
  .CopyTextA 複製選擇的內容,以文字形式到剪下板;
  .CopyTextW 複製選擇的內容,以Unicode格式到剪下板;
  .CopyRVF 複製選擇的內容,以RVF格式到剪下板;
  .CopyRTF 複製選擇的內容,以RTF格式到剪下板;
  .GetSelectedImage 返回選擇的圖片;
  .GetSelText 返回選擇的文字;
  .GetSelTextW 以Unicode字元形式返回選擇的內容;
  .SelectAll 全選;
  .SetSelectionBounds 選擇指定的元素;
  .SelectWordAt 選擇一個指定座標上的字元;
  .SelectControl 選擇一個可視元件;
  .Deselect 取消選擇;
  .RVFOptions 一些載入和儲存RVF文體的操作;
  .RVFWarnings 一些RVF文體閱讀時的錯誤;
  .SaveRVF 儲存文件為RVF格式;
  .SaveRVFToStream 儲存文件為RVF格式,然後儲存到流;
  .LoadRVF 載入RVF檔案;
  .LoadRVFFromStream 從流載入RVF檔案;
  .CopyRVF 複製RVF文件到剪下板;
  .InsertRVFFromStream 從流增加RVF文件;
  .LoadFromStream 從流載入RVF, RTF或者文字格式的檔案;
  .LoadText 從檔案中增加文字;
  .LoadTextW 從Unicode encoding檔案中增加文字;
  .LoadRTF 載入RTF;
  .SaveHTML 儲存文件為HTML格式;
  .SaveHTMLEx 儲存文件為HTML格式。使用CSS樣式;
  .SaveHTMLToStream, SaveHTMLToStreamEx 方法同上,只不過儲存到流,不是直接儲存為文件;
  .SaveText 儲存為文字檔案;
  .SaveTextW 儲存為Unicode檔案;
  .SaveTextToStream, SaveTextToStreamW – 可以選擇性的儲存到流;
  .SaveRTF 可以選擇性的儲存為RTF格式;
  .SaveRTFToStream 可以選擇性的儲存為RTF格式到流.
  .GetItemStyle 返回一個元素的型別;
  .GetTextInfo  返回文字元素的資訊;
  .GetBreakInfo  返回分隔線資訊;
  .GetBulletInfo  返回著重號資訊;
  .GetHotspotInfo  返回熱點資訊;
  .GetPictureInfo  返回圖片或者熱點圖片資訊;
  .GetControlInfo  返回元件資訊;
  .GetItemExtraIntProperty,GetItemExtraStrProperty 返回元素額外的屬性值;
  .GetItem  通用方法,主要用於表格;
  .GetItemCheckpoint 返回元素的檢查點;
  .GetItemVAlign 返回元素位置;
  .GetItemTag  返回元素的標籤;
  .GetItemText  返回元素內容;
  .IsParaStart 返回是否是第一個元素;
  .IsFromNewLine 返回是否是第一個元素;


3、TRichViewEdit 
TRichViewEdit主要是用於編輯文字內容,如圖片,文字,表格,控制元件,等等
如果沒有關聯RVSTYLE,TRichViewEdit是不能顯示或者編輯任何內容的
屬性,事件,方法列表(用法以後介紹)
屬性
CurItemNo – 當前元素編號
CurItemStyle – 當前元素型別
CurParaStyleNo – 當前段落樣式型別編號
CurTextStyleNo – 當前文字樣式編號
EditorOptions – 設定一些編輯的選項
ReadOnly 內容是否可以編輯,或只讀
Modified – 內容是否有修改
CustomCaretInterval – 自定義字元重繪時間間隔
事件
OnChange 文件內容改變時觸發
OnCurParaStyleChanged 當前段落樣式改變時觸發
OnCurTextStyleChanged 當前文字樣式改變時觸發
OnPaste 允許貼上
OnStyleConversion 改變選中文字樣式
OnParaStyleConversion 改變段落樣式
OnCaretGetOut 當字元超過邊界時觸發
OnCaretMove 當字元移動後觸發
OnItemTextEdit 當一個文字型別元素的文字內容改變時
OnSmartPopupClick 彈出選單
OnMeasureCustomCaret and OnDrawCustomCaret 替換字元
常用方法
ApplyParaStyle, ApplyTextStyle 儲存文字樣式
ApplyStyleConversion 儲存選中文字的樣式
ApplyParaStyleConversion 儲存選中段落樣式
Change 文件內容改變事件
BeginUpdate, EndUpdate 重繪/重新整理
SearchText, -A, -W 查詢字元
常用插入方法
InsertText, -A, -W, InsertStringTag, InsertStringATag, InsertStringWTag 插入文字
InsertBreak 插入一條線
InsertBullet 插入專案符號
InsertControl 插入元件
InsertHotspot 插入熱點
InsertPicture 插入圖片
InsertHotPicture 插入超文字連結圖片
InsertTab 插入製表鍵
InsertRVFFromFileEd, InsertRVFFromStreamEd 從檔案或者流插入RVF格式的檔案
InsertRTFFromFileEd, InsertRTFFromStreamEd 從檔案或者流插入RTF格式的檔案
InsertTextFromFile,InsertOEMTextFromFile從檔案插入字元
InsertItem 常用插入元素的方法
剪貼簿操作(主要方法和事件)
CanPaste 是否允許從剪貼簿貼上
CanPasteRVF 是否允許從剪貼簿貼上RVF格式內容
CanPasteRTF 是否允許從剪貼簿貼上RTF格式內容
CutDef 剪下到道貌岸然板
Paste 貼上
PasteBitmap 貼上圖片
PasteMetafile 貼上圖形元件
PasteGraphicFile 貼上圖形元件
PasteRVF 從剪貼簿貼上RVF格式內容
PasteRTF 從剪貼簿貼上RTF格式內容
PasteTextA 從剪貼簿貼上ANSI格式內容
PasteTextW 從剪貼簿貼上UNICODE格式內容
DeleteSelection 刪除選中的內容
SelectCurrentWord 選中當前內容
SelectCurrentLine 選中當前行
常用編輯元素方法
SetBreakInfoEd 改變橫線
SetBulletInfoEd  改變專案符號
SetControlInfoEd 改變元件
SetHotspotInfoEd 改變熱點
SetPictureInfoEd 改變圖片
SetItemExtraIntPropertyEd,SetItemExtraStrPropertyEd  編輯元素屬性
SetItemTagEd 編輯元素標籤
SetItemVAlignEd 調整元素相對位置
SetItemTextEd  改變元素名
SetCheckpointInfoEd 編輯檢查點
RemoveCheckpointEd 刪除檢查點
ResizeControl 調整元件
AdjustControlPlacement ,AdjustControlPlacement2 自動調整元件位置
獲取元素資訊方法
GetCurrentTextInfo 獲取文字資訊
GetCurrentBreakInfo 獲取線條元素資訊
GetCurrentBulletInfo 獲取專案符號資訊
GetCurrentControlInfo 元件資訊
GetCurrentHotspotInfo 熱點資訊
GetCurrentPictureInfo 圖片資訊
GetCurrentItem,GetCurrentItemEx. 未知型別元素資訊
GetCurrentItemExtraIntProperty,GetCurrentItemExtraStrProperty 返回指定元素屬性值
GetCurrentTag 返回元素標籤
GetCurrentItemVAlign 返回元素水平位置
GetCurrentCheckpoint 返回元素檢查點
GetCurrentItemText 返回元素名
GetCurrentLineCol 返回當前位置的行和列
撤銷和恢復
UndoLimit 設定撤銷緩衝區
UndoAction 返回撤銷操作
Undo 撤銷最後操作
UndoName 返回撤銷操作名
RedoAction 返回恢復操作
Redo redoes 恢復最後一次撤銷操作
RedoName 返回恢復操作名
ClearUndo 清除撤銷和恢復緩衝區
Unicode操作
PasteTextW 從剪貼簿複製UNICODE文字
InsertTextW 插入UNICODE文字
InsertTextFromFileW 從檔案插入UNICODE文字
拼寫檢查
GetCurrentMisspelling 返回當前位置有錯語的詞
LiveSpellingMode 拼寫檢查開關
檢查點
SetCheckpointInfoEd 給特殊的元素增加檢查點
RemoveCheckpointEd 刪除特殊元素的檢查點
GetCurrentCheckpoint 返回當前元素的檢查點
SetCurrentCheckpointInfo 增加或者編輯當前元素的檢查點
RemoveCurrentCheckpoint 刪除當前元素的檢查點
InsertCheckpoint 當前位置增加檢查點
GetCheckpointAtCaret 返回當前位置的檢查點
RemoveCheckpointAtCaret 刪除當前檢查點

TDBRichView TDBRichViewEdit TRVPrint TRVPrintPreview,TRVReportHelper
TDBRichView,TDBRichViewEdit主要用於顯示,編輯資料感之內容
和RichView一樣,DBRichView,DBRichViewEdit如果不關聯RVStyle也是不能顯示任何內容的。
TDBRichView,DBRichViewEdit支援如下型別
RVF RichView檔案型別
RTF RichView文字型別
text 文字
others 其它
TRVPrint
TRVPrint主要用於列印RICHVIEW文件,執行時不可見
使用方法
1 先指定要列印的內容
2 指定頁首或頁尾
3 格式化內容
4 列印或者預覽
5 釋放記憶體
事件方法
OnFormatting 當頁碼發生改變時觸發
OnSendingToPrinter 列印時觸發
OnPagePrepaint and OnPagePostpaint 允許在頁面個重繪
OnPrintComponent 列印元件
頁邊距
LeftMarginMM 左邊距
RightMarginMM 右邊距
TopMarginMM 上邊距
BottomMarginMM 下邊距
這裡的邊距和文件編輯時邊距是不同的,一個針對頁面,一個針對文件
TRVPrintPreview
預覽文件,要先關聯TRVPrint,並且列印設定已經準備完畢
TRVReportHelper
TRVReportHelper和TRVPrint相似,TRVPrint是把文件送入印表機,TRVReportHelper則是把文件送到任何canvas上顯示如:螢幕,印表機,IMAGE等
TRVOfficeConverter
TRVOfficeConverter允許在RICHVIEW中使用Microsoft Office(32位板本的)文字格式

ScaleRichView
ScaleRichView是一個TRichView的外掛,用TRichView引擎來呈現文件,ScaleRichView上的文件其實就是一個隱藏的RICHVIEWEDIT
,所以你可以像使用RIHCVIEW一樣使用ScaleRichView,安裝ScaleRichView之前一定要先安裝TRIHCVIEW,通常在開發過程中用捆綁方式(RichView+ScaleRichView)進行開發
ScaleRichView 主要功能介紹
1 支援所有RICHVIEW功能
2 所見即所得模式
3 快速編碼
4 支援差不多120多種文件格式
5 支援列印不同文件樣式,如文件編輯時為A4樣式,列印時可以選擇A5樣式
6 頁面定位
7 支援多種部署模式
8 滾動顯示
ScaleRichView元件介紹(後面釋出將對下面類一個一個的詳細介紹)
1 TSRichViewEdit
  可以以所見即所得模式編輯文件,支援多種頁面瀏覽模式,包括頁面檢視模式
2 TDBSRichViewEdit
  和TSRichViewEdit 一樣,只不過用於資料感之,也是所見即所得
3 TSclRVRuler
  TSRichViewEdit的標尺,水平和垂直,繼承TRVRuler
4 TSRVToolBar
  工具欄
5 TSRVToolWindow
  彈出式視窗,可以把放工具欄
6 TSRVPageScroll
  顯示文件縮圖
7 TSRVPrint
  列印文件
8 TSRVPreview
  瀏覽文件
 
4、TSRichViewEdit
TSRichViewEdit主要是用來處理文字內容,下面是一些常用屬性和方法,事件
屬性:
RichViewEdit:返回一個TRichViewEdit元件,然後通過TRichViewEdit一個屬性方法來操作文件,預設情況下,TSRichViewEdit
使用了一個內部的TRichViewEdit,如果你想使用自定義的TRichViewEdit,只要關聯TSRichViewEdit的ExternalRV屬性,如果想
使用自定義的TRVStyle,則只要關聯其ExternalRVSYTLE就行
RVHeader 頁首編輯器
RVFooter 頁尾編輯器
RVNote 腳註和尾註編輯器
PageProperty 相關頁的屬性
ViewProperty 檢視模式
BackgroundProperty 背景屬性
下面的一些屬性提供了訪問RichViewEdit的屬性,用法和RichViewEdit一樣,前面有講過,這裡就不講了,屬性名相同,這個屬性也可適用於其它編輯器
 .AnimationMode
 .BiDiMode
 .CPEventKind
 .ReadOnly
 .RTFOptions
 .RTFReadProperties
 .RVBackgroundBitmap
 .RVBackgroundStyle
 .RVColor
 .RVEditorOptions
 .RVFOptions
 .RVFParaStylesReadMode
 .RVFTextStylesReadMode
 .RVOptions
 .SmartPopupProperties, SmartPopupVisible
 .TabNavigation
下面一些屬性是允許在編輯時改變屬性值的
HScrollPos 設定或者得到滾動的位置
HScrollBar 和 VScrollBar 顯示或者隱藏滾動條
OnHScrolled 和 OnVScrolled 滾動事件
ScrolledPage 返回第一頁碼
MenuHButtons 和 MenuHorizontal 水平選單設定
MenuVButtons 和 MenuVertical   垂直選單設定
方法
ConvertRVToSRV 和 ConvertSRVToRV 允許TSRichViewEdit和RichViewEdit之間位置轉換
GetPageClientRect 返回頁的位置
GetItemBounds  返回頁面元素位置
GetCaretPosInUnits 返回當前位置
GetPageAt 返回指定位置的頁面
GetItemAt 返回指定位置的元素
UnitsPerInchH  UnitsPerInchV 允許單元之間的座標轉換
FindNextHyperlink/FindPriorHyperlink 查詢超連結
FindNextCheckpoint/FindPriorCheckpoint查詢檢查點
FindNextItem/FindPriorItem 查詢元素
FindNextHeading/FindPriorHeading查詢標題
NextCurHyperlink/PriorCurHyperlink選擇超連結
NextCurCheckpoint/PriorCurCheckpoint選擇檢查點
NextCurItem/PriorCurItem選擇元素
NextCurHeading/PriorCurHeading 移動到當前的標題
RangeSearch指定範圍查詢
FirstCurPage游標移動第一頁
PriorCurPage游標移動前一頁
NextCurPage游標移動下一頁
LastCurPage游標移動最後一頁
PrintAll列印整個文件
PrintCurrent列印當前頁面
PrintRange列印指定範圍內容
MinPrintedItemNo 和 MaxPrintedItemNo 允許從指定元素之間列印
DrawPage和DrawMetafile允許把文件顯示到其它畫布或者圖元上
事件
OnPageFormatChanged 當 PageProperty和PageFormat屬性改變發生
OnChangeViewModeAfter 當ViewProperty屬性改變時發生
OnChangeViewModeBefore 當ViewMode屬性改變時發生
OnZoomChanged 當ViewProperty.ZoomPercent或.ZoomMode屬性改變時發生
OnHScrolled, OnVScrolled, OnPageScrolled滾動時發生
OnCurrentPageChange 移動到其它頁面時發生
OnPageCountChanged 文件頁數發生變化時發生
OnClickPage 單擊頁面後發生
OnPaintPage 畫自定義頁面,如果預設方法不能完全顯示時,可用此方法
OnPaintComponent 顯示控制元件
OnPaint 顯示其它
OnCheckControl 列舉所以加入的控制元件
OnMessageControl 允許加入的控制元件響應訊息
OnGetPagePos 允許自定義頁的位置和順序
表格圖示
先設定ViewProperty的UseTableIcons屬性為TRUE,當用戶把游標移動到表格上時,表格左上方會顯示一個小圖示,當游標移走時,圖示消失,同時觸發OnTableIconClick事件

Table(表格)
table是RICHVIEW裡面一個比較特殊的元素,也是RICHVIEW眾元素中最複雜的一種,TABLE由單元格組成,在RICHVIEW裡,每個單元格相當於一個RICHVIEW文件,單元格里面可以表格等各種元素,理論上表格是可以無限巢狀,這樣的結構就導致了其複雜性。
Table屬性
BorderWidth 表的邊框長度
BorderStyle 邊框樣式
BorderColor 邊框顏色
BorderLightColor 3D外觀邊框顏色
VisibleBorders 邊框的顯示和隱藏
CellBorderWidth 單元格邊框長度
CellBorderStyle 單元格邊框樣式
CellBorderColor 單元格邊框顏色
CellBorderLightColor 3D外觀單元格邊框顏色
CellHSpacing 單元格之間的水平距離
CellVSpacing 單元格之間的垂直距離
BorderHSpacing 表邊框與表最外層單元格之間的水平距離
BorderVSpacing表邊框與表最外層單元格之間的垂直距離
Color 表的背景色
BackgroundImage 背景圖
BackgroundStyle 背景樣式
BackgroundImageFileName 在HTML中儲存背景圖名
Table方法
InsertColsLeft 當前單元格左邊增加列
InsertColsRight 當前單元格右邊增加列
InsertRowsAbove當前單元格上面增加行
InsertRowsBelow 當前單元格下面增加行
DeleteSelectedCols刪除選中列
DeleteSelectedRows刪除選中行
MergeSelectedCells 合併單元格
UnmergeSelectedCells拆分單元格
SplitSelectedCellsHorizontally 將選中的單元格拆分成幾行
SplitSelectedCellsVertically 將選中的單元格拆分成幾列
InsertCols 指定位置增加列
InsertRows 指定位置增加行
DeleteCols 刪除指定列
DeleteRows 刪除指定行
MergeCells 合併指定範圍內的單元格
UnmergeCells 拆分指定範圍內的單元格
DeleteEmptyRows 刪除所有帶有空單元各的行
DeleteEmptyCols 刪除所有帶有空單元各的列
TABLE用法
建立
...
var table:TRVTableItemInfo;
...
table := TRVTableItemInfo.CreateEx(RowCount,ColumnCount,RVData);
RVData是你要建立表的文件,一般是指richview.RVData或richviewedit.RVData

RICHVIEW中增加表
table.ParaNo := <Paragraph Style Index>
richview.AddItem(<Table name>, table)
Paragraph Style Index 是這個表的索引值
Table name 表的名字,一個字串,不是指這個物件名
這個方法不用在顯示文件之前重新格式化。

richviewedit中增加表
richviewedit.InsertItem(<Table name>, table)
這個方法是在當前位置加入表,不管游標在文件中,還是在表格或者單元格中(游標在哪就加到哪),如果文件是隻讀或者處於保護狀態,用這個方法後,會返回一個FALSE,如果游標在表格中,這個方法將自動釋放表格
cell用法
cell(單元格)是表格的主屬性,因為每個CELL相當於一個RICHEDIT,所以用法和RICHEDIT差不多,但要注意的事,這些用法一般只是相對於游標當前所以的位置,也就是說,如果游標在表格裡,同樣的方法就是對錶格的作用,如果在表格外,就是對外面的RICHEDIT的作用,如果一個文件裡面同時有多個表格的時候,游標在任意地方,你想往某個表格中的某個單元格輸入內容時,這時就要自己判斷地方了。這是因為,當游標點某個地方時,RICHEDIT實際上已經幫你判斷好了位置。
那麼,如何在一個文件的表格裡面的指定的一個單元格里面,輸入自己的內容呢?
假設現在有一個文件,裡面有一個表格(多個表格大家自己去想,方法一樣)
,這個表格裡面有二個單元格,我現在想在第二個單元格中輸入‘我愛你’三個字,並且此時游標在任意地方,下面是最簡單實現方法
for i:= 0 to itemcount -1 do
 begin
    if getitem(i) is TRVTableItemInfo then
      begin
         RVData:=TRVTableItemInfo(item).cells[0,1].AddNLATag('我愛你', 0, 0, '');
         break;
        end;
 end;
如果此時的單元格你不知道多少個,可以用遍歷表格單元格方法,如下,我要得到表格中,每個單元格的中的文字
for row := 0 to TRVTableItemInfo(item).RowCount-1 do
 begin
    for col := 0 to table.ColCount-1 do
      if table.Cells[row,col]<>nil then
      begin
        RVData := table.Cells[row,col].GetRVData;//得到第一個單元格內容
        for i := 0 to RVData.ItemCount-1 do     //開始遍歷格子中的元素,和RICHEDIT一樣
        begin
          if (i>0) and RVData.IsFromNewLine(i) then
            Result := Result + #13#10;
          if RVData.GetItemStyle(i)=rvsTab then
            Result := Result + #9
           else if RVData.GetItemStyle(i)>=0 then
            Result := Result + RVData.GetItemText(i);//得到第一個單元格的文字
        end;
        Result := Result + table.TextColSeparator;//遍歷第一行的所有格子,值相加
      end;
    Result := Result + table.TextRowSeparator;//遍歷所有行的格子,值相加,最終得到每個格子的值
  end;

1.TSRVButton
  繼承自TSRVCustomControl類,其屬性分別為:
  Default:布林型別,預設FALSE,當用戶按下Enter鍵時,將執行該按鈕的OnClick事件。但有一個例外,如果當前擁有輸入焦點的控制元件為另一個按鈕時,按Enter鍵時則只執行當前按鈕的           OnClick事件。
  FocusRectOffset:整型,預設3,控制元件邊緣到聚焦虛線之間的距離。
  Glyph:TPicture型別,預設空,指定一個顯示的影象。
  ModalResult:TModalResult型別,預設mrNone,模態值。當我們單擊點陣圖按鈕時,將把對話方塊的模態值設為相同的值。它將決定點陣圖按鈕的父窗體的關閉方式。如單擊mbOk按鈕,將關閉               對話方塊,返回mrOk值。
  MouseBorderWidth:整型,預設2,邊長。按下按鈕時,指定圖示和標題移動多遠。
  ShowFocusRect:布林型別,預設TRUE,顯示或隱藏聚焦時的虛線。
  事件:
  OnClick,單擊觸發。
2.TSRVCheckBox
  繼承自TSRVCustomControl類,其屬性分別為:
  AllowGrayed:布林型別,預設FALSE,變灰狀態。
  Checked:布林型別,預設FALSE,是否選中狀態,使用前AllowGrayed必須設定為TRUE。
  State:TSRVCheckBoxState型別以,預設cbUnchecked,表示複選框的當前狀態.cbchecked 表示選中, cbunchecked表示未選中, cbgrayedb表示變灰狀態。
3.TSRVComboBox
  繼承自TSRVCustomComboBox類,一個可以用於顯示影象和提示資訊的列表編輯框,所有屬性和事件均繼承TSRVCustomComboBox。 
4.TSRVEdit
  繼承自TSRVEditControl類,文字輸入框,帶一個可選擇彈出列表提示框。其屬性分別為:
  AutoSize:布林型別,預設true,自動調整大小。
  CharCase:TSRVEditCharCase型別,預設srvecNormal,大小字狀態。
  DropDownHints:整型,預設10,定義提示顯示的條目數。
  MaxLength:整型,預設0,指定可輸入的最大字元長度,0為無限制。
  PasswordChar:Char型別,預設#0,指定顯示的字元,設定後無輸字元將用設定的字元代替顯示。
  ReadOnly:布林型別,預設FALSE,是否只讀。
  Modified:布林型別,預設空,判斷文字是否修改。
  SelText:STRING型別,選擇指定字元。
  事件:
  OnChange:文字改變時發生。
  OnEditHints:列表提示框顯示時發生。
  OnCloseHints:列表提示框關閉時發生。
5.TSRVGroupBox
  繼承自TSRVCustomControl類,其屬性分別為:
  BorderColor:TColor型別,預設$00B8D8D7,邊條線顏色。
  BorderWidth:整型,預設1,邊條線寬。
  CaptionOffset:整型,預設10,邊條線到標題的距離。
  CornersOffset:整型,預設10,邊圓角大小。
6.TSRVImagesScroll
  繼承自TSRVCustomControl類,用於顯示影象列表,其屬性分別為:
  CanMoveImages:布林型別,預設TRUE,是否可用滑鼠移動影象。
  CloseButton:定義每張影象的關閉按扭。
  DoubleBuffered:開啟雙緩衝。
  ImageList:連線一個用於顯示的影象表。
  Indent:縮排距離。
  ItemHeight:影象高,
  ItemIndex:選中影象的索引。
  Items:影象物件。
  ItemWidth:影象長。
  Kind:影象放置方式。
  RestrictMove:是否可以移動影象到控制元件外面,使用前選設定CanMoveImages為TRUE。
  Spacings:每張影象之間距離。
  ItemBorderStyle:影象邊框樣式。
  ItemBorderColor:影象邊框顏色。
  ItemColor:影象顏色。
  ItemDownColor:按下後的顏色。
  ItemHotColor: 移動到影象上的顏色。
  ItemSelectedColor:選擇擇後的顏色。
  DecButtonWidth:按扭外觀樣式。
  LargeChange:單擊滾動條後移動的距離。
  ScrollBarHeight:滾動條高度。
  ScrollerPosition:滾動條位置。
  ScrollingDelay:滾動條速度。
  SmallChange:單擊滾動條上的箭頭按扭後移動的距離。
  事件:
  OnChange:影象選擇時發生。
  OnItemMove:二個影象位置發生變化時發生。
  OnCloseItem:關閉影象時發生。
  OnDrawBorder, OnDrawBackground, OnDrawItem, OnDrawCloseButton:自繪影象,CANVAS為畫布,ARect指定影象位置,APaintRect重新繪圖的位置,可以使用這個屬性優化繪圖方法。     state對像狀態,設定DoDefault,防止對像以預設方式繪圖。
7.TSRVLabel
  繼承自TSRVGraphicControl,所有屬性和事件均繼承TSRVGraphicControl。
8.TSRVListBox
  繼承自TSRVCustomListBox,所有屬性和事件均繼承TSRVCustomListBox。
9.TSRVPaintBox
  繼承自TSRVCanvasControl,所有屬性和事件均繼承TSRVCanvasControl,用於提供一個畫布供程式使用。
10.TSRVPanel
  繼承自TSRVCustomControl,一個泛型的面板控訴。其屬性分別為:
  BorderColor:邊界線顏色。
  BorderWidth:邊界線長度。
  CaptionOffset:邊界到標題的距離。
  CornersOffset:圓角大小。
11.TSRVRadioButton
  繼承自TSRVCustomControl,單選按扭。其屬性分別為:
  Checked:是否選定。


 .SaveReg 儲存 RVStyle 屬性到註冊檔案;

 .LoadReg 載入RVStyle 屬性到註冊檔案.

 .SaveCSS 儲存.RVStyle樣式到CSS檔案

 .SaveCSSToStream.儲存.RVStyle樣式為CSS檔案,然後儲存到流

RVSTYLE事件

 .OnDrawCheckpoint 畫檢查點;

 .OnDrawPageBreak – 畫分隔線;

 .OnDrawParaBack – 畫段落背景;

 .OnDrawTextBack – 畫文字背景;

 .OnApplyStyle – 儲存文字型別到畫布;

 .OnApplyStyleColor – 儲存文字顏色到畫布;

 .OnDrawStyleText – 指定的文字型別;

 .OnStyleHoverSensitive –重畫,當滑鼠移進或者移出指定的文字型別時重畫樣式;

2.TRichView
  TRichView元件主要用於顯示文件內容的,包括圖片,表格,文字,甚至可以顯示其它元件。使用之前必須要關聯TRVSTYLE(前面有介紹),不關聯是不能顯示的。TRichView有個重要的屬性集SETTINGS,裡面可以設定一些重要的引數。
  TRichView屬性,事件,方法;
  .Style – 關聯TRVSTYLE樣式
  .Options – 一些重要的操作(以後會講到);
  .ItemCount – 文件中元素數量.
  .BackgroundBitmap- 文件背景圖片
  .BackgroundStyle - 文件背景圖片顯示樣式
  .Color.文件背景顏色
  .FirstJumpNo 為第一個超文字增加ID號;
  TRichView插入事件;
  .AddNL 增加文字元素;
  .AddBreakEx 增加分隔線;
  .AddPictureEx 增加圖片;
  .AddHotPicture 增加熱點圖片;
  .AddControlEx 增加元件;
  .Add 在文字後面增加字元;
  .AddFmt 增加特點格式字符集
  .Clear 清除文件內容
  .Format, FormatTail 格式化文件內容;
  .Reformat 重新格式化文件;
  .OnJump 當游標點選超連結時發生;
  .OnRVMouseMove 當游標移動到超連結時發生;
  .GetJumpPointItemNo 跳轉到指定ID號的元素;
  .LeftMargin, RightMargin, TopMargin, BottomMargin 左右上下邊距;
  .MaxTextWidth  最長行(字元數);
  .MinTextWidth  最短行(字元數);
  .DocumentHeight 文件高;
  .VAlign 垂直效準線;
  .VScrollVisible 垂直滑動條開關;
  .HScrollVisible 平水滑動條開關;
  .VSmallStep 垂直滑動條滑動幅度;
  .OnVScrolled 垂直滑動條事件;
  .OnHScrolled 水平滑動條事件;
  .Copy 複製選擇的內容到剪下板;
  .CopyDef 選擇方式複製選擇的內容到剪下板;
  .CopyImage 複製選擇的圖片到剪下板;
  .CopyTextA 複製選擇的內容,以文字形式到剪下板;
  .CopyTextW 複製選擇的內容,以Unicode格式到剪下板;
  .CopyRVF 複製選擇的內容,以RVF格式到剪下板;
  .CopyRTF 複製選擇的內容,以RTF格式到剪下板;
  .GetSelectedImage 返回選擇的圖片;
  .GetSelText 返回選擇的文字;
  .GetSelTextW 以Unicode字元形式返回選擇的內容;
  .SelectAll 全選;
  .SetSelectionBounds 選擇指定的元素;
  .SelectWordAt 選擇一個指定座標上的字元;
  .SelectControl 選擇一個可視元件;
  .Deselect 取消選擇;
  .RVFOptions 一些載入和儲存RVF文體的操作;
  .RVFWarnings 一些RVF文體閱讀時的錯誤;
  .SaveRVF 儲存文件為RVF格式;
  .SaveRVFToStream 儲存文件為RVF格式,然後儲存到流;
  .LoadRVF 載入RVF檔案;
  .LoadRVFFromStream 從流載入RVF檔案;
  .CopyRVF 複製RVF文件到剪下板;
  .InsertRVFFromStream 從流增加RVF文件;
  .LoadFromStream 從流載入RVF, RTF或者文字格式的檔案;
  .LoadText 從檔案中增加文字;
  .LoadTextW 從Unicode encoding檔案中增加文字;
  .LoadRTF 載入RTF;
  .SaveHTML 儲存文件為HTML格式;
  .SaveHTMLEx 儲存文件為HTML格式。使用CSS樣式;
  .SaveHTMLToStream, SaveHTMLToStreamEx 方法同上,只不過儲存到流,不是直接儲存為文件;
  .SaveText 儲存為文字檔案;
  .SaveTextW 儲存為Unicode檔案;
  .SaveTextToStream, SaveTextToStreamW – 可以選擇性的儲存到流;
  .SaveRTF 可以選擇性的儲存為RTF格式;
  .SaveRTFToStream 可以選擇性的儲存為RTF格式到流.
  .GetItemStyle 返回一個元素的型別;
  .GetTextInfo  返回文字元素的資訊;
  .GetBreakInfo  返回分隔線資訊;
  .GetBulletInfo  返回著重號資訊;
  .GetHotspotInfo  返回熱點資訊;
  .GetPictureInfo  返回圖片或者熱點圖片資訊;
  .GetControlInfo  返回元件資訊;
  .GetItemExtraIntProperty,GetItemExtraStrProperty 返回元素額外的屬性值;
  .GetItem  通用方法,主要用於表格;
  .GetItemCheckpoint 返回元素的檢查點;
  .GetItemVAlign 返回元素位置;
  .GetItemTag  返回元素的標籤;
  .GetItemText  返回元素內容;
  .IsParaStart 返回是否是第一個元素;
  .IsFromNewLine 返回是否是第一個元素;


TRichViewEdit 
TRichViewEdit主要是用於編輯文字內容,如圖片,文字,表格,控制元件,等等
如果沒有關聯RVSTYLE,TRichViewEdit是不能顯示或者編輯任何內容的
屬性,事件,方法列表(用法以後介紹)
屬性
CurItemNo – 當前元素編號
CurItemStyle – 當前元素型別
CurParaStyleNo – 當前段落樣式型別編號
CurTextStyleNo – 當前文字樣式編號
EditorOptions – 設定一些編輯的選項
ReadOnly 內容是否可以編輯,或只讀
Modified – 內容是否有修改
CustomCaretInterval – 自定義字元重繪時間間隔
事件
OnChange 文件內容改變時觸發
OnCurParaStyleChanged 當前段落樣式改變時觸發
OnCurTextStyleChanged 當前文字樣式改變時觸發
OnPaste 允許貼上
OnStyleConversion 改變選中文字樣式
OnParaStyleConversion 改變段落樣式
OnCaretGetOut 當字元超過邊界時觸發
OnCaretMove 當字元移動後觸發
OnItemTextEdit 當一個文字型別元素的文字內容改變時
OnSmartPopupClick 彈出選單
OnMeasureCustomCaret and OnDrawCustomCaret 替換字元
常用方法
ApplyParaStyle, ApplyTextStyle 儲存文字樣式
ApplyStyleConversion 儲存選中文字的樣式
ApplyParaStyleConversion 儲存選中段落樣式
Change 文件內容改變事件
BeginUpdate, EndUpdate 重繪/重新整理
SearchText, -A, -W 查詢字元
常用插入方法
InsertText, -A, -W, InsertStringTag, InsertStringATag, InsertStringWTag 插入文字
InsertBreak 插入一條線
InsertBullet 插入專案符號
InsertControl 插入元件
InsertHotspot 插入熱點
InsertPicture 插入圖片
InsertHotPicture 插入超文字連結圖片
InsertTab 插入製表鍵
InsertRVFFromFileEd, InsertRVFFromStreamEd 從檔案或者流插入RVF格式的檔案
InsertRTFFromFileEd, InsertRTFFromStreamEd 從檔案或者流插入RTF格式的檔案
InsertTextFromFile,InsertOEMTextFromFile從檔案插入字元
InsertItem 常用插入元素的方法
剪貼簿操作(主要方法和事件)
CanPaste 是否允許從剪貼簿貼上
CanPasteRVF 是否允許從剪貼簿貼上RVF格式內容
CanPasteRTF 是否允許從剪貼簿貼上RTF格式內容
CutDef 剪下到道貌岸然板
Paste 貼上
PasteBitmap 貼上圖片
PasteMetafile 貼上圖形元件
PasteGraphicFile 貼上圖形元件
PasteRVF 從剪貼簿貼上RVF格式內容
PasteRTF 從剪貼簿貼上RTF格式內容
PasteTextA 從剪貼簿貼上ANSI格式內容
PasteTextW 從剪貼簿貼上UNICODE格式內容
DeleteSelection 刪除選中的內容
SelectCurrentWord 選中當前內容
SelectCurrentLine 選中當前行
常用編輯元素方法
SetBreakInfoEd 改變橫線
SetBulletInfoEd  改變專案符號
SetControlInfoEd 改變元件
SetHotspotInfoEd 改變熱點
SetPictureInfoEd 改變圖片
SetItemExtraIntPropertyEd,SetItemExtraStrPropertyEd  編輯元素屬性
SetItemTagEd 編輯元素標籤
SetItemVAlignEd 調整元素相對位置
SetItemTextEd  改變元素名
SetCheckpointInfoEd 編輯檢查點
RemoveCheckpointEd 刪除檢查點
ResizeControl 調整元件
AdjustControlPlacement ,AdjustControlPlacement2 自動調整元件位置
獲取元素資訊方法
GetCurrentTextInfo 獲取文字資訊
GetCurrentBreakInfo 獲取線條元素資訊
GetCurrentBulletInfo 獲取專案符號資訊
GetCurrentControlInfo 元件資訊
GetCurrentHotspotInfo 熱點資訊
GetCurrentPictureInfo 圖片資訊
GetCurrentItem,GetCurrentItemEx. 未知型別元素資訊
GetCurrentItemExtraIntProperty,GetCurrentItemExtraStrProperty 返回指定元素屬性值
GetCurrentTag 返回元素標籤
GetCurrentItemVAlign 返回元素水平位置
GetCurrentCheckpoint 返回元素檢查點
GetCurrentItemText 返回元素名
GetCurrentLineCol 返回當前位置的行和列
撤銷和恢復
UndoLimit 設定撤銷緩衝區
UndoAction 返回撤銷操作
Undo 撤銷最後操作
UndoName 返回撤銷操作名
RedoAction 返回恢復操作
Redo redoes 恢復最後一次撤銷操作
RedoName 返回恢復操作名
ClearUndo 清除撤銷和恢復緩衝區
Unicode操作
PasteTextW 從剪貼簿複製UNICODE文字
InsertTextW 插入UNICODE文字
InsertTextFromFileW 從檔案插入UNICODE文字
拼寫檢查
GetCurrentMisspelling 返回當前位置有錯語的詞
LiveSpellingMode 拼寫檢查開關
檢查點
SetCheckpointInfoEd 給特殊的元素增加檢查點
RemoveCheckpointEd 刪除特殊元素的檢查點
GetCurrentCheckpoint 返回當前元素的檢查點
SetCurrentCheckpointInfo 增加或者編輯當前元素的檢查點
RemoveCurrentCheckpoint 刪除當前元素的檢查點
InsertCheckpoint 當前位置增加檢查點
GetCheckpointAtCaret 返回當前位置的檢查點
RemoveCheckpointAtCaret 刪除當前檢查點

TDBRichView TDBRichViewEdit TRVPrint TRVPrintPreview,TRVReportHelper
TDBRichView,TDBRichViewEdit主要用於顯示,編輯資料感之內容
和RichView一樣,DBRichView,DBRichViewEdit如果不關聯RVStyle也是不能顯示任何內容的。
TDBRichView,DBRichViewEdit支援如下型別
RVF RichView檔案型別
RTF RichView文字型別
text 文字
others 其它
TRVPrint
TRVPrint主要用於列印RICHVIEW文件,執行時不可見
使用方法
1 先指定要列印的內容
2 指定頁首或頁尾
3 格式化內容
4 列印或者預覽
5 釋放記憶體
事件方法
OnFormatting 當頁碼發生改變時觸發
OnSendingToPrinter 列印時觸發
OnPagePrepaint and OnPagePostpaint 允許在頁面個重繪
OnPrintComponent 列印元件
頁邊距
LeftMarginMM 左邊距
RightMarginMM 右邊距
TopMarginMM 上邊距
BottomMarginMM 下邊距
這裡的邊距和文件編輯時邊距是不同的,一個針對頁面,一個針對文件
TRVPrintPreview
預覽文件,要先關聯TRVPrint,並且列印設定已經準備完畢
TRVReportHelper
TRVReportHelper和TRVPrint相似,TRVPrint是把文件送入印表機,TRVReportHelper則是把文件送到任何canvas上顯示如:螢幕,印表機,IMAGE等
TRVOfficeConverter
TRVOfficeConverter允許在RICHVIEW中使用Microsoft Office(32位板本的)文字格式

ScaleRichView
ScaleRichView是一個TRichView的外掛,用TRichView引擎來呈現文件,ScaleRichView上的文件其實就是一個隱藏的RICHVIEWEDIT
,所以你可以像使用RIHCVIEW一樣使用ScaleRichView,安裝ScaleRichView之前一定要先安裝TRIHCVIEW,通常在開發過程中用捆綁方式(RichView+ScaleRichView)進行開發
ScaleRichView 主要功能介紹
1 支援所有RICHVIEW功能
2 所見即所得模式
3 快速編碼
4 支援差不多120多種文件格式
5 支援列印不同文件樣式,如文件編輯時為A4樣式,列印時可以選擇A5樣式
6 頁面定位
7 支援多種部署模式
8 滾動顯示
ScaleRichView元件介紹(後面釋出將對下面類一個一個的詳細介紹)
1 TSRichViewEdit
  可以以所見即所得模式編輯文件,支援多種頁面瀏覽模式,包括頁面檢視模式
2 TDBSRichViewEdit
  和TSRichViewEdit 一樣,只不過用於資料感之,也是所見即所得
3 TSclRVRuler
  TSRichViewEdit的標尺,水平和垂直,繼承TRVRuler
4 TSRVToolBar
  工具欄
5 TSRVToolWindow
  彈出式視窗,可以把放工具欄
6 TSRVPageScroll
  顯示文件縮圖
7 TSRVPrint
  列印文件
8 TSRVPreview
  瀏覽文件
 
TSRichViewEdit
TSRichViewEdit主要是用來處理文字內容,下面是一些常用屬性和方法,事件
屬性:
RichViewEdit:返回一個TRichViewEdit元件,然後通過TRichViewEdit一個屬性方法來操作文件,預設情況下,TSRichViewEdit
使用了一個內部的TRichViewEdit,如果你想使用自定義的TRichViewEdit,只要關聯TSRichViewEdit的ExternalRV屬性,如果想
使用自定義的TRVStyle,則只要關聯其ExternalRVSYTLE就行
RVHeader 頁首編輯器
RVFooter 頁尾編輯器
RVNote 腳註和尾註編輯器
PageProperty 相關頁的屬性
ViewProperty 檢視模式
BackgroundProperty 背景屬性
下面的一些屬性提供了訪問RichViewEdit的屬性,用法和RichViewEdit一樣,前面有講過,這裡就不講了,屬性名相同,這個屬性也可適用於其它編輯器
 .AnimationMode
 .BiDiMode
 .CPEventKind
 .ReadOnly
 .RTFOptions
 .RTFReadProperties
 .RVBackgroundBitmap
 .RVBackgroundStyle
 .RVColor
 .RVEditorOptions
 .RVFOptions
 .RVFParaStylesReadMode
 .RVFTextStylesReadMode
 .RVOptions
 .SmartPopupProperties, SmartPopupVisible
 .TabNavigation
下面一些屬性是允許在編輯時改變屬性值的
HScrollPos 設定或者得到滾動的位置
HScrollBar 和 VScrollBar 顯示或者隱藏滾動條
OnHScrolled 和 OnVScrolled 滾動事件
ScrolledPage 返回第一頁碼
MenuHButtons 和 MenuHorizontal 水平選單設定
MenuVButtons 和 MenuVertical   垂直選單設定
方法
ConvertRVToSRV 和 ConvertSRVToRV 允許TSRichViewEdit和RichViewEdit之間位置轉換
GetPageClientRect 返回頁的位置
GetItemBounds  返回頁面元素位置
GetCaretPosInUnits 返回當前位置
GetPageAt 返回指定位置的頁面
GetItemAt 返回指定位置的元素
UnitsPerInchH  UnitsPerInchV 允許單元之間的座標轉換
FindNextHyperlink/FindPriorHyperlink 查詢超連結
FindNextCheckpoint/FindPriorCheckpoint查詢檢查點
FindNextItem/FindPriorItem 查詢元素
FindNextHeading/FindPriorHeading查詢標題
NextCurHyperlink/PriorCurHyperlink選擇超連結
NextCurCheckpoint/PriorCurCheckpoint選擇檢查點
NextCurItem/PriorCurItem選擇元素
NextCurHeading/PriorCurHeading 移動到當前的標題
RangeSearch指定範圍查詢
FirstCurPage游標移動第一頁
PriorCurPage游標移動前一頁
NextCurPage游標移動下一頁
LastCurPage游標移動最後一頁
PrintAll列印整個文件
PrintCurrent列印當前頁面
PrintRange列印指定範圍內容
MinPrintedItemNo 和 MaxPrintedItemNo 允許從指定元素之間列印
DrawPage和DrawMetafile允許把文件顯示到其它畫布或者圖元上
事件
OnPageFormatChanged 當 PageProperty和PageFormat屬性改變發生
OnChangeViewModeAfter 當ViewProperty屬性改變時發生
OnChangeViewModeBefore 當ViewMode屬性改變時發生
OnZoomChanged 當ViewProperty.ZoomPercent或.ZoomMode屬性改變時發生
OnHScrolled, OnVScrolled, OnPageScrolled滾動時發生
OnCurrentPageChange 移動到其它頁面時發生
OnPageCountChanged 文件頁數發生變化時發生
OnClickPage 單擊頁面後發生
OnPaintPage 畫自定義頁面,如果預設方法不能完全顯示時,可用此方法
OnPaintComponent 顯示控制元件
OnPaint 顯示其它
OnCheckControl 列舉所以加入的控制元件
OnMessageControl 允許加入的控制元件響應訊息
OnGetPagePos 允許自定義頁的位置和順序
表格圖示
先設定ViewProperty的UseTableIcons屬性為TRUE,當用戶把游標移動到表格上時,表格左上方會顯示一個小圖示,當游標移走時,圖示消失,同時觸發OnTableIconClick事件

Table(表格)
table是RICHVIEW裡面一個比較特殊的元素,也是RICHVIEW眾元素中最複雜的一種,TABLE由單元格組成,在RICHVIEW裡,每個單元格相當於一個RICHVIEW文件,單元格里面可以表格等各種元素,理論上表格是可以無限巢狀,這樣的結構就導致了其複雜性。
Table屬性
BorderWidth 表的邊框長度
BorderStyle 邊框樣式
BorderColor 邊框顏色
BorderLightColor 3D外觀邊框顏色
VisibleBorders 邊框的顯示和隱藏
CellBorderWidth 單元格邊框長度
CellBorderStyle 單元格邊框樣式
CellBorderColor 單元格邊框顏色
CellBorderLightColor 3D外觀單元格邊框顏色
CellHSpacing 單元格之間的水平距離
CellVSpacing 單元格之間的垂直距離
BorderHSpacing 表邊框與表最外層單元格之間的水平距離
BorderVSpacing表邊框與表最外層單元格之間的垂直距離
Color 表的背景色
BackgroundImage 背景圖
BackgroundStyle 背景樣式
BackgroundImageFileName 在HTML中儲存背景圖名
Table方法
InsertColsLeft 當前單元格左邊增加列
InsertColsRight 當前單元格右邊增加列
InsertRowsAbove當前單元格上面增加行
InsertRowsBelow 當前單元格下面增加行
DeleteSelectedCols刪除選中列
DeleteSelectedRows刪除選中行
MergeSelectedCells 合併單元格
UnmergeSelectedCells拆分單元格
SplitSelectedCellsHorizontally 將選中的單元格拆分成幾行
SplitSelectedCellsVertically 將選中的單元格拆分成幾列
InsertCols 指定位置增加列
InsertRows 指定位置增加行
DeleteCols 刪除指定列
DeleteRows 刪除指定行
MergeCells 合併指定範圍內的單元格
UnmergeCells 拆分指定範圍內的單元格
DeleteEmptyRows 刪除所有帶有空單元各的行
DeleteEmptyCols 刪除所有帶有空單元各的列
TABLE用法
建立
...
var table:TRVTableItemInfo;
...
table := TRVTableItemInfo.CreateEx(RowCount,ColumnCount,RVData);
RVData是你要建立表的文件,一般是指richview.RVData或richviewedit.RVData

RICHVIEW中增加表
table.ParaNo := <Paragraph Style Index>
richview.AddItem(<Table name>, table)
Paragraph Style Index 是這個表的索引值
Table name 表的名字,一個字串,不是指這個物件名
這個方法不用在顯示文件之前重新格式化。

richviewedit中增加表
richviewedit.InsertItem(<Table name>, table)
這個方法是在當前位置加入表,不管游標在文件中,還是在表格或者單元格中(游標在哪就加到哪),如果文件是隻讀或者處於保護狀態,用這個方法後,會返回一個FALSE,如果游標在表格中,這個方法將自動釋放表格
cell用法
cell(單元格)是表格的主屬性,因為每個CELL相當於一個RICHEDIT,所以用法和RICHEDIT差不多,但要注意的事,這些用法一般只是相對於游標當前所以的位置,也就是說,如果游標在表格裡,同樣的方法就是對錶格的作用,如果在表格外,就是對外面的RICHEDIT的作用,如果一個文件裡面同時有多個表格的時候,游標在任意地方,你想往某個表格中的某個單元格輸入內容時,這時就要自己判斷地方了。這是因為,當游標點某個地方時,RICHEDIT實際上已經幫你判斷好了位置。
那麼,如何在一個文件的表格裡面的指定的一個單元格里面,輸入自己的內容呢?
假設現在有一個文件,裡面有一個表格(多個表格大家自己去想,方法一樣)
,這個表格裡面有二個單元格,我現在想在第二個單元格中輸入‘我愛你’三個字,並且此時游標在任意地方,下面是最簡單實現方法
for i:= 0 to itemcount -1 do
 begin
    if getitem(i) is TRVTableItemInfo then
      begin
         RVData:=TRVTableItemInfo(item).cells[0,1].AddNLATag('我愛你', 0, 0, '');
         break;
        end;
 end;
如果此時的單元格你不知道多少個,可以用遍歷表格單元格方法,如下,我要得到表格中,每個單元格的中的文字
for row := 0 to TRVTableItemInfo(item).RowCount-1 do
 begin
    for col := 0 to table.ColCount-1 do
      if table.Cells[row,col]<>nil then
      begin
        RVData := table.Cells[row,col].GetRVData;//得到第一個單元格內容
        for i := 0 to RVData.ItemCount-1 do     //開始遍歷格子中的元素,和RICHEDIT一樣
        begin
          if (i>0) and RVData.IsFromNewLine(i) then
            Result := Result + #13#10;
          if RVData.GetItemStyle(i)=rvsTab then
            Result := Result + #9
           else if RVData.GetItemStyle(i)>=0 then
            Result := Result + RVData.GetItemText(i);//得到第一個單元格的文字
        end;
        Result := Result + table.TextColSeparator;//遍歷第一行的所有格子,值相加
      end;
    Result := Result + table.TextRowSeparator;//遍歷所有行的格子,值相加,最終得到每個格子的值
  end;

1.TSRVButton
  繼承自TSRVCustomControl類,其屬性分別為:
  Default:布林型別,預設FALSE,當用戶按下Enter鍵時,將執行該按鈕的OnClick事件。但有一個例外,如果當前擁有輸入焦點的控制元件為另一個按鈕時,按Enter鍵時則只執行當前按鈕的           OnClick事件。
  FocusRectOffset:整型,預設3,控制元件邊緣到聚焦虛線之間的距離。
  Glyph:TPicture型別,預設空,指定一個顯示的影象。
  ModalResult:TModalResult型別,預設mrNone,模態值。當我們單擊點陣圖按鈕時,將把對話方塊的模態值設為相同的值。它將決定點陣圖按鈕的父窗體的關閉方式。如單擊mbOk按鈕,將關閉               對話方塊,返回mrOk值。
  MouseBorderWidth:整型,預設2,邊長。按下按鈕時,指定圖示和標題移動多遠。
  ShowFocusRect:布林型別,預設TRUE,顯示或隱藏聚焦時的虛線。
  事件:
  OnClick,單擊觸發。
2.TSRVCheckBox
  繼承自TSRVCustomControl類,其屬性分別為:
  AllowGrayed:布林型別,預設FALSE,變灰狀態。
  Checked:布林型別,預設FALSE,是否選中狀態,使用前AllowGrayed必須設定為TRUE。
  State:TSRVCheckBoxState型別以,預設cbUnchecked,表示複選框的當前狀態.cbchecked 表示選中, cbunchecked表示未選中, cbgrayedb表示變灰狀態。
3.TSRVComboBox
  繼承自TSRVCustomComboBox類,一個可以用於顯示影象和提示資訊的列表編輯框,所有屬性和事件均繼承TSRVCustomComboBox。 
4.TSRVEdit
  繼承自TSRVEditControl類,文字輸入框,帶一個可選擇彈出列表提示框。其屬性分別為:
  AutoSize:布林型別,預設true,自動調整大小。
  CharCase:TSRVEditCharCase型別,預設srvecNormal,大小字狀態。
  DropDownHints:整型,預設10,定義提示顯示的條目數。
  MaxLength:整型,預設0,指定可輸入的最大字元長度,0為無限制。
  PasswordChar:Char型別,預設#0,指定顯示的字元,設定後無輸字元將用設定的字元代替顯示。
  ReadOnly:布林型別,預設FALSE,是否只讀。
  Modified:布林型別,預設空,判斷文字是否修改。
  SelText:STRING型別,選擇指定字元。
  事件:
  OnChange:文字改變時發生。
  OnEditHints:列表提示框顯示時發生。
  OnCloseHints:列表提示框關閉時發生。
5.TSRVGroupBox
  繼承自TSRVCustomControl類,其屬性分別為:
  BorderColor:TColor型別,預設$00B8D8D7,邊條線顏色。
  BorderWidth:整型,預設1,邊條線寬。
  CaptionOffset:整型,預設10,邊條線到標題的距離。
  CornersOffset:整型,預設10,邊圓角大小。
6.TSRVImagesScroll
  繼承自TSRVCustomControl類,用於顯示影象列表,其屬性分別為:
  CanMoveImages:布林型別,預設TRUE,是否可用滑鼠移動影象。
  CloseButton:定義每張影象的關閉按扭。
  DoubleBuffered:開啟雙緩衝。
  ImageList:連線一個用於顯示的影象表。
  Indent:縮排距離。
  ItemHeight:影象高,
  ItemIndex:選中影象的索引。
  Items:影象物件。
  ItemWidth:影象長。
  Kind:影象放置方式。
  RestrictMove:是否可以移動影象到控制元件外面,使用前選設定CanMoveImages為TRUE。
  Spacings:每張影象之間距離。
  ItemBorderStyle:影象邊框樣式。
  ItemBorderColor:影象邊框顏色。
  ItemColor:影象顏色。
  ItemDownColor:按下後的顏色。
  ItemHotColor: 移動到影象上的顏色。
  ItemSelectedColor:選擇擇後的顏色。
  DecButtonWidth:按扭外觀樣式。
  LargeChange:單擊滾動條後移動的距離。
  ScrollBarHeight:滾動條高度。
  ScrollerPosition:滾動條位置。
  ScrollingDelay:滾動條速度。
  SmallChange:單擊滾動條上的箭頭按扭後移動的距離。
  事件:
  OnChange:影象選擇時發生。
  OnItemMove:二個影象位置發生變化時發生。
  OnCloseItem:關閉影象時發生。
  OnDrawBorder, OnDrawBackground, OnDrawItem, OnDrawCloseButton:自繪影象,CANVAS為畫布,ARect指定影象位置,APaintRect重新繪圖的位置,可以使用這個屬性優化繪圖方法。     state對像狀態,設定DoDefault,防止對像以預設方式繪圖。
7.TSRVLabel
  繼承自TSRVGraphicControl,所有屬性和事件均繼承TSRVGraphicControl。
8.TSRVListBox
  繼承自TSRVCustomListBox,所有屬性和事件均繼承TSRVCustomListBox。
9.TSRVPaintBox
  繼承自TSRVCanvasControl,所有屬性和事件均繼承TSRVCanvasControl,用於提供一個畫布供程式使用。
10.TSRVPanel
  繼承自TSRVCustomControl,一個泛型的面板控訴。其屬性分別為:
  BorderColor:邊界線顏色。
  BorderWidth:邊界線長度。
  CaptionOffset:邊界到標題的距離。
  CornersOffset:圓角大小。
11.TSRVRadioButton
  繼承自TSRVCustomControl,單選按扭。其屬性分別為:
  Checked:是否選定。

 從某行開始續打當前頁

環境:

Windwos7 旗艦版;

DelphiXE2 Update2;

RichView版本13.10.1

原理:

在最終發給列印畫布之前,處理要列印的內容(畫布上的圖),即獲取到要列印的起始行的位置,將此位置之前的所有內容都“塗“為白色;

實現步驟:

1.在TSRichViewEdit中增加兩個變數

    // 續打起始位置 ColorEgg  2012-7-6 23:20:48

    UseSequelPrint: Boolean;//初始化為False

    SequelPos: Integer;//初始化為0

在PaintPage中,處理續打的最後效果

具體虛擬碼如下,有ColorEgg的註釋處為改動

procedure TSRichViewEdit.PaintPage(PageNo: Integer; Canvas: TCanvas;

  ScaleX, ScaleY: Single; PageRect, PaintRect, RClient: TRect;

  OffsetX, OffsetY: Integer; Printing: Boolean);

Var

begin

    with OldRect do

      hRegion := CreateRectRgn(Left, Top, Right, Bottom);

    SelectClipRgn(Canvas.Handle, hRegion);

    DeleteObject(hRegion);

  end;

  if not UseSequelPrint then //ColorEgg 正常列印

  begin

    // drawing Page Number

    if (FPageProperty.FPageViewMode) and (not FPageProperty.ShowPageBreaks) and

       FPageProperty.PageNoVisible and (PageNo >= FPageProperty.FPageNoFirst) and

       (not Printing or IsInPrintingRange(PageEndItemNo[PageNo - 1])) then

    begin

      …

    end;

    {$IFNDEF RVDONOTUSESEQ}

    If (PageStartDrawItemNo[PageNo - 1] <> -1) then

      …

    If not Printing or IsInPrintingRange(PageEndItemNo[PageNo - 1]) then

      …

    {$ENDIF}

    If not Printing or IsInPrintingRange(PageStartItemNo[PageNo - 1]) then

    begin

      …

    end;

    if Assigned(FOnPaintPage) and

      (not Printing or IsInPrintingRange(PageEndItemNo[PageNo - 1])) then

    begin

      …

    end;

  end

  else   // ColorEgg 處理續打

  begin

    tmp := PaintRect;

    tmp.Bottom := SequelPos;

    Canvas.FillRect(tmp);

  end;

  //  SetWorldTransform(Canvas.Handle, OldXForm);

  RestoreCanvasZoom(Canvas, OldInfo);

end;

上面的程式碼和原文有11行不一樣,包括begin、else、end所佔的行。

2.在按行續打按鈕的事件中寫

procedure TForm1.btnPrintCurLineClick(Sender: TObject);

var

  vPt: TPoint;

  vDocMs: TMemoryStream;

begin

  try

    vDocMs := TMemoryStream.Create;

    srvEdoc.RichViewEdit.SaveRVFToStream(vDocMs, False);

    vDocMs.Position := 0;

    srvEdocPrint.LoadRVFFromStream(vDocMs);

    srvEdocPrint.CurrentPage := srvEdoc.CurrentPage;

    vPt := srvEdoc.CaretPos;

    srvEdocPrint.UseSequelPrint := True;

    srvEdocPrint.SequelPos := vPt.Y;

    srvEdocPrint.PrintCurrent;

  finally

    FreeAndNil(vDocMs);

  end;

end;

其中,srvEdoc為編輯所用的TSRichViewEdit,srvEdocPrint為處理列印用的TSRichViewEdit,本例中這樣做的原因是:列印時要對頁面做一些“硬”處理,如果和編輯用同一個的話,會影響到編輯的所見,這樣通過增加不到20行程式碼,即可最簡單的完成從指定行續打。

存在問題:

上面講的只適合從指定的文字行開始列印當前頁,如果從表格中指定行續打會發生偏移,需要用另外的方法處理,不在本例討論範圍之內。