TSRichViewEdit is a word processing component.
TSRichViewEdit = class(TCustomControl);
The main features of the component are:
•displaying and printing in different formats (e.g. the document in A5 format can be printed in A3 format);
•free positioning of page on the screen (optional);
•variety of document view modes (web mode, draft mode, page view mode, etc.).
•hint on scrolling containing page number and a short text;
•vertical and horizontal lines of buttons in the scroll bar area.
RichViewEdit returns a TRichViewEdit control used to render a document. Use properties and methods of this control to modify document or get information about it.
By default, an internal TRichViewEdit component is used. You can assign an external component to ExternalRV property. If you want to use an external TRVStyle component, use ExternalRVStyle property.
Other editors are used to render different parts of document:
•RVHeader for page header;
•RVFooter for page footer;
•RVNote for notes and text boxes.
The active editor is returned in ActiveEditor property. Additional information about different part of documents is available in overview.
Properties related to page attributes are available in PageProperty.
Properties related to viewing modes are available in ViewProperty.
Properties related to background are available in BackgroundProperty.
Quick access to properties of RichViewEdit
The following properties provide access to properties of RichViewEdit of the same name (some of these properties are applied to ActiveEditor or to all editors, see more information in the topics about these properties):
•RVBackgroundBitmap (access to BackgrounBitmap)
•RVBackgroundStyle (access to BackgrounStyle)
•RVColor (access to Color)
•RVEditorOptions (access to EditorOptions)
•RVOptions (access to Options)
These properties (except for a public property SmartPopupVisible) can be used to assign values at design time.
HScrollPos (0..HMaxScrollPos) and VScrollPos (0..VMaxScrollPos) allow getting/setting the scrolling positions.
HScrollBar and VScrollBar hide/show scrollbars.
OnHScrolled and OnVScrolled events occur on scrolling.
ScrolledPage returns the index of the first visible page.
Menus (toolbars) in the scrollbar area
MenuHButtons and MenuHorizontal define properties of horizontal menu.
MenuVButtons and MenuVertical define properties of vertical menu.
Skins can be applied to scrollbars. Skins are linked using SkinManager property. HScrollBarSkinSchemeIndex and HScrollBarSkinSchemeIndex are used to specify skin schemes for scrollbars.
Converted properties of PageProperty
Some properties return layout-related properties of PageProperty converted to screen pixels and scaled according to ViewProperty.ZoomPercent:
•LeftMarginPix, TopMarginPix, RightMarginPix, BottomMarginPix
Menus (toolbars) in scrollbars areas
Buttons are defined in MenuHButtons and MenuVButtons. Properties of menus are defined in MenuHorizontal and MenuVertical.
See also events below.
ConvertRVToSRV and ConvertSRVToRV allow translating coordinates between this TSRichViewEdit control and RichViewEdit.
GetPageClientRect returns the position of page, GetItemBounds returns the position of item in the page. The page is returned by GetItemPages.
GetCaretPosInUnits returns the caret position on the page.
GetPageAt returns the page at the specified coordinates, GetItemAt returns the item at the specified coordinates.
UnitsPerInchH and UnitsPerInchV allow converting coordinates from units to units.
FindNextHyperlink/FindPriorHyperlink, FindNextCheckpoint/FindPriorCheckpoint, FindNextItem/FindPriorItem, FindNextHeading/FindPriorHeading search for hyperlinks, checkpoints, items, headings.
NextCurHyperlink/PriorCurHyperlink, NextCurCheckpoint/PriorCurCheckpoint, NextCurItem/PriorCurItem select the next/previous hyperlink, item with checkpoint, item.
NextCurHeading/PriorCurHeading moves the caret to the next/previous heading.
By default, the search is performed in the whole document. But you can search in the specified range of vertical coordinates, see RangeSearch property.
FirstCurPage, PriorCurPage, NextCurPage, LastCurPage moves the caret to the beginning of the first/previous/next/last page.
You can print the whole document (PrintAll), the current page (PrintCurrent) or a range of pages (PrintRange).
With MinPrintedItemNo and MaxPrintedItemNo you can define a subrange of items for printing. Items outside of this range are not printed (but places are still reserved for them). Using these properties, you can implement an incremental printing: when the next portion of the document is ready, you can print it below the previously printed fragment.
Drawing on external canvas
DrawPage/DrawMetafile draws page onto the specified canvas/metafile.
ScrollToCaret/ScrollToItem makes the caret/item visible.
GetFirstItemVisibleRV returns the first visible item.
Footnotes and endnotes
Call StartEditNote to edit a footnote/endnote, call ReturnToNote to finish editing.
Additional information can be found in overview.
The most of TSRichViewEdit events provides access to RichViewEdit's events of the same names.
Events on changing properties
OnPageFormatChanged occurs when PageProperty.PageFormat is changed.
OnChangeViewModeAfter and OnChangeViewModeBefore occur when ViewProperty.ViewMode is changed.
OnZoomChanged occurs when ViewProperty.ZoomPercent or .ZoomMode are changed. OnZoomViewChanged occurs when other properties of ViewProperty related to zooming are changed.
Events on scrolling, clicking and caret moving
OnHScrolled, OnVScrolled, OnPageScrolled occur on scrolling.
OnCurrentPageChange occurs when the caret is moved to another page.
OnPageCountChanged occurs when the count of pages is changed.
OnClickPage occurs when the user clicked on the page.
In addition to custom drawing events of TRVStyle, you can use OnPaintPage for drawing on page, OnPaintComponent for drawing inserted controls, and OnPaint for drawing something else.
OnPaintComponent allows drawing inserted controls (useful if the default procedure cannot draw them properly).
OnCheckControl allows enumerating all inserted controls.
OnMessageControl allows responding on messages from inserted controls.
Free page position and ordering
OnGetPagePos allows defining position, zooming and Z-order of pages
Menus (toolbars) in scrollbars areas
OnHMenuClickButton and OnVMenuClickButton occur when the user clicked a button.
OnHMenuEnterButton and OnVMenuEnterButton occur when the mouse pointer is above a button.
When the user moves the mouse pointer above some table, a special icon is displayed at the top left corner of this table (if ViewProperty.UseTableIcons=True).
This icon is displayed for some time (specified in ViewProperty.TableIconDelay) after the mouse pointer leaves this table.
When the user clicks on this icon, OnTableIconClick occurs.