New in version 13

<< Click to display table of contents >>

New in version 13

Compatibility issues

1.This version introduces a new line wrapping algorithm, so layouts of existing documents may become different. The old line wrapping mode can be returned using TRVStyle.LineWrapMode property (rvWrapSimple value). But even with this value, a line breaking can be different for Unicode text in paragraphs with Alignment=rvaJustify.
RichViewWrapAnywhere (global constant) was removed, superseded by TRVStyle.LineWrapMode (rvWrapAnywhere value).

2.New parameter in ApplyStyleConversion and ApplyParaStyleConversion. It is optional in Delphi, but for existing C++Builder projects, True must be added as the last parameter.

3.This version can write twips instead of pixels in RVF files. Applications compiled with older versions of RichView interprets all sizes an pixels, so if they load such RVF files, all lengths will be too large.

4.This version defines widths of breaks as TRVStyleLength instead of bytes. All applications that use GetBreakInfo and GetCurrentBreakInfo methods must correct the type of variable used read a line width.

5.Paragraph borders are drawn slightly different.

New line wrapping algorithm

New line wrapping algorithm takes connections between text items into account.

New property TRVStyle.LineWrapMode allows changing a line wrapping mode.

Hidden items

Some items can be hidden.

Measuring in twips instead of pixels

Previously, all sizes in documents were defined in pixels. Since this version, you can define measuring units in TRVStyle.Units property. Instead of pixels, you can use twips.


you can define small widths with better precision than 1 screen pixel;

you can create user interface allowing entering sizes in different units (fractional inches, cm) and convert them to/from twips without losing precision;

values in twips are independent from the screen resolution, even if RichViewPixelsPerInch=0.

Shared item content

A new item property is added: rvepShared. It allows for several picture items to share the same graphic object. For a control item, it allows to reuse its control after the item deletion.

Incremental printing

TRVPrint and TRVReportHelper components have new properties: MinPrintedItemNo and MaxPrintedItemNo. If these properties define a subrange of items, only this subrange (and only the pages containing it) is printed.

These properties allow implementing an incremental printing: when the next portion of the document is ready, it can be printed below the previously printed fragment. This feature can be used for printing accounting journals, logs, etc.


Triple click selects paragraph.

Horizontal coordinate is kept when moving the caret up or down with the keyboard.

When selecting from bottom to top, CurTextStyleNo is defined as a style of the last selected text (to the right of the caret, not to the left as usual).

The methods ApplyStyleConversion and ApplyParaStyleConversion have the new parameter (Recursive) allowing to prevent processing of table cells.

Drawing and formatting

Improved table layout algorithm.

New option in RVVisibleSpecialCharacters: rvscTab. RVParagraphMarks global variable allows defining how paragraph breaks and line breaks are displayed in "show special characters" mode.

New property TRVStyle.DisabledFontColor allows change text color in disabled controls.

Calls of TRVStyle.OnDrawTextBack are optimized; now it is called only once for one text item on the line (previously, for justified paragraphs, it was called separately for each word)

TCustomRVPrint.GetPageNo returns the page index for the given position in the document.

Saving and loading

Improved saving of footnotes and endnotes in plain text files.

Smarter replacing space characters to &nbsp; when saving HTML.

New text properties for TRichView.DocParameters:





rvoNoReadOnlyJumps option from EditorOptions disallows automatic switching to a hypertext mode when TRichViewEdit becomes read-only.