New in version 16
•Since this version, text measuring and drawing is performed using Uniscribe; so text size may be different (for example, Uniscribe always uses text kerning); usually, text formatting is slower with Uniscribe (if you do not need support of bidirectional text); you can switch back to Windows API, see "Uniscribe" below
•Uniscribe text output (and sometimes Windows text output) is not compatible with metafiles; see "Uniscribe" below;
•ParaStyle.Alignment = rvaJustify is implemented by modifying space character widths when drawing text, while older versions of the components drew each word separately. The new method complicates custom drawing of text; you can return the old justification method by activating RVOLDJUSTIFY in RV_Defs.inc; however, this directive disables ParaStyle.Alignment = rvaDistribute (it works like rvaJustify)
•TRVStyle.OnDrawStyleText has new parameters.
•RichViewSafeFormatting constant is removed (replaced with RichViewStringFormatMethod)
•applications compiled with older versions of TRichView cannot read RVF files containing tables having changed values of Opacity (Opacity<>100000).
•starting from this version, all projects for C++Builder 6 that use TRichView must include $(BCB)\Lib\Psdk\msimg32.lib. Otherwise, linking ends with an error about unresolved external "AlphaBlend". No changes are required for Delphi and newer versions of C++Builder
•the algorithm for calculation of width of table columns is improved and may produce different results.
Since this version, the components use Uniscribe for text drawing and measuring.
You can switch back to Windows API using TRVStyle.TextEngine property.
New value for Alignment – rvaDistribute. It aligns paragraph content to the both left and right sides by adding space between all characters.
New property LastLineAlignment defines alignment for the last line of justified and distributed paragraphs.
The following features were previously disabled for bi-directed text; they work now:
•ParaStyle.Alignment = rvaJustify (and rvaDistribute)
•custom drawing of selection (although, custom drawing is more complicated now)
All these functions are implemented both for Windows and Uniscribe API.
Special options are implemented for vertical text in table cells.
In addition to rotation by 90°, the component can automatically apply vertical versions of fonts (useful for Chinese, Japanese, Korean) and reverse line order (useful for traditional Mongolian)
The components need less memory for documents containing justified text.
•documents containing long strings in text items are formatted much faster than before; improved fast text formatting method now can be used not only in TRichViewEdit, but in TRVPrint and in ScaleRichView;
•justified text is formatted much faster than before.
Table sizing algorithm is improved, it processes wide spanned cells much better.
Background of paragraphs, tables, table cells, sidenotes and text boxes can be semitransparent: a new Opacity property is added to these objects.
New property TRVReportHelper.AllowTransparentDrawing allows using methods for semitransparent drawing. It is useful for drawing over other images.
See the topic about semitransparent objects.
Size of touch screen selection handles is changed proportionally to the screen resolution. Sizes of list markers are stored as Size (instead of Height) property in DFM and RVF files, so they do not depend on screen resolution any more.
Starting from this update, TRichView is installed automatically in Delphi and C++Builder IDE.
The new installer installs the components in Delphi and C++Builder, both for 32-bit and 64-bit platforms (if available). The installer adds all necessary paths to RAD Studio library.
Source code is moved to "Source" folder, inc-file is moved to "Source\Include" folder.
For RAD Studio XE8+, this help file is integrated in IDE (both F1 help, and menu "Help | Third-Party Help")
TRichViewEdit.RemoveCurrentPageBreak deletes a page break from the current paragraph (not from the current item as before)
New RichViewSaveHyperlinksInDocXAsFields global variable.
Ctrl + Delete deletes a word to the right of the caret.