New in version 14

<< Click to display table of contents >>

New in version 14

Compatibility issues

Item tags are strings, they are not integers any more. The default tag value is changed from 0 to ''. If you used tags in an integer mode, use StrToInt and IntToStr when calling TRichView methods returning and accepting tags. Not only methods having Tag parameters, but some events are affected (OnReadHyperlink, OnRVControlNeeded). In existing projects, change the types of Tag parameters of these events handlers from Integer to TRVTag manually. RVOLDTAGS can be defined in RV_Defs.inc to make tags integers (not recommended).

Parameters of OnRVFPictureNeeded were changed. If you used this event, change events handlers manually (or delete the old event handler and create a new one).

For rotated cells, coordinates stored in DrawItems (a low-level undocumented property) do not define the position of items on the screen directly.

TRichView.LoadText, LoadTextFromStream, SaveText, SaveTextToStream, TRichViewEdit.InsertTextFromFile have a new parameter. This parameter is optional, but in old versions of C++Builder, it must be added explicitly in the code (use CP_ACP for compatibility).

A text search behavior can be modified with the new "smart start" option (see TRichView.SearchText and TRichViewEdit.SearchText). GetRVSearchOptions and GetRVESearchOptions include this option by default, so it may affect existing projects.

Changes in Unicode line wrapping procedure: '.' , '!', ',', ';' characters are treated (almost) as alphabetic characters now (because they are often used in phrases like '.Net' or in URLs).

Changes in DB components: If rvfoLoadBack is in RVFOptions, TDBRichView clears BackgroundBitmap before loading data from its field. If rvfoLoadBack is in RVFOptions and FieldFormat=rvdbRVF, TDBRichViewEdit clears BackgroundBitmap before loading data from its field.

PNG images are saved to RTF as PNG images only if rvrtfSavePngAsPng is included in RTFOptions. It is included by default. However, for existing projects, you may need to set it manually.

The declaration of TRVLongOperation type is changed.

The following global variables were removed from RVTable.pas: RichViewTableGridStyle, RichViewTableGridStyle2, RichViewTableGridColor. They were replaced with properties of TRVStyle.

A new option rvoShowGridLines in TRichView.Options is set by default, but for existing projects you may need to set it manually, otherwise grid lines of tables will not be shown by default.

Style templates

StyleTemplates represent "real" text and paragraph styles. When style templates are used, an appearance of text and paragraphs are still defined in TextStyles and ParaStyles. Items a document refer to items in TextStyles and ParaStyles, while items in TextStyles and ParaStyles refer to items in StyleTemplates. Style templates allows modifying TextStyles and ParaStyles.

By default, style templates are not used. To activate using of style templates, assign TRichView.UseStyleTemplates=True.

TRichView.StyleTemplateInsertMode specifies how style templates affect insertion of RVF and RTF data.

When the collection of style templates has been modified, OnStyleTemplatesChange occurs.

In TRichViewEdit, you can apply the specified style template to the selection using the methods: ApplyStyleTemplate, ApplyTextStyleTemplate, ApplyParaStyleTemplate. Style templates can be edited using ChangeStyleTemplates method.

The function RVGetNoteTextStyleNo has an additional optional parameter: a name of a style template for using for a note character.

TRVStyle.MainRVStyle property allows using a single collection of style templates for several documents.

See the overview topic about style templates.

Rotation

Table cells can be rotated by 90°, 180°, or 270°.

A new method returning item coordinates: GetItemCoordsEx; it takes cell rotation into account.

String tags

Since version 13.2, item tags are strings (Unicode for Delphi 2009 or newer, ANSI for older versions of Delphi). No more typecasting from integer to PChar!

New property: cell tags.

64-bit

The both 32-bit and 64-bit compilers are supported in RAD Studio XE2+.

Note: TRVOfficeConverter can be compiled in 64-bit application, but lists of converters will be empty (because converters are 32-bit DLLs and cannot be used in 64-bit applications).

Skins (Delphi XE2+ visual UI styles)

The components support visual UI styles introduced in RAD Studio XE2:

all visual components display scrollbars and borders according to styles;

TRVPrintPreview adjusts its colors (background, page border, shadow) according to the current style.

Text files

A new optional parameter for TRichView.LoadText, LoadTextFromStream, SaveText, SaveTextToStream, TRichViewEdit.InsertTextFromFile: CodePage. It allows to specify a code page of the file (this parameter is used only for Unicode text in a document; for ANSI text, it is ignored).

Drag and drop: when accepting text files, TRichViewEdit detects their encoding (UTF16, UTF8 or ANSI).

When saving Unicode text, characters of "Symbol" and "Wingdings" fonts are converted to the most similar Unicode characters.

RVF

VAlign property of bullets and hotspots is saved to RVF.

The parameters of TRichView.OnRVFPictureNeeded were changed. Now, this event is called not only for pictures and hot-pictures, but also for tables and table cells to read background images. This change solved the following problems:

ability to request table and cell background images;

access to additional item properties.

RTF

New option in TRichView.RTFOptions: rvrtfSavePngAsPng. If included (default), PNG images (of the class type registered with RV_RegisterPngGraphic) are saved as PNG in RTF (as it was before this version). You can exclude this option to save them as a bitmap or a metafile.

Default processing if OnReadHyperlink/OnWriteHyperlink is not assigned.

HTML saving

TRichView.SaveHTMLEx can save stretched background images (previously, they were saved as centered).

TRichView.SaveHTMLEx saves list markers better (both in normal and rvsoMarkersAsText modes).

New "hidden" parameters in TRichView.OnSaveImage2 event.

Default processing if OnWriteHyperlink is not assigned.

SaveHTMLEx saves characters of "Symbol" and "Wingdings" fonts as the most similar Unicode characters (it was implemented for "Symbol" before, now it is improved).

Visual changes

Better displaying of text background, new TRVStyle.TextBackgroundKind property.

All adjacent hypertext items having the same non-empty tags are highlighted below the mouse pointer; so visually they represent a single hyperlink.

New properties for non-text items: background color, border width and color, spacing around the border.

Footnote and endnote characters are kept on the same line as the previous item.

Better calculation of superscript position.

Clipboard

New: TRichViewEdit can paste URL. A new method is available: PasteURL.

New property: AcceptPasteFormats allows to restrict a list of formats that the editor can paste.

New property: DefaultPictureVAlign defines an alignment for pasted and dropped images.

DB components

If rvfoLoadBack is in RVFOptions, TDBRichView clears BackgroundBitmap before loading data from its field.

If rvfoLoadBack is in RVFOptions and FieldFormat=rvdbRVF, TDBRichViewEdit clears BackgroundBitmap before loading data from its field.

Printing

Tables

New property for a table row: KeepTogether. New table methods: SetRowPageBreakBefore, SetRowKeepTogether.

New option for table.PrintOptions: rvtoContinue.

Other

New property: TCustomRVPrint.IgnorePageBreaks.

Tables

New properties of TRVStyle defining the appearance of grid lines: GridColor, GridStyle, GridReadOnlyColor, GridReadOnlyStyle. They replace global variables used in older versions. New option rvoShowGridLines in TRichView.Options.

Other changes

Better processing of  Up  and  Down  keys when moving in and out of table cells.

New event of TRichViewEdit: OnCheckStickingItems event allows to stick items together.

New typed constant: RichViewDoNotMergeNumbering.

"Smart start" search option for TRichView.SearchText and TRichViewEdit.SearchText.

TRichView.OnProgress now occurs not only when reading an RTF, but also when saving an RTF, reading and writing an RVF, writing an HTML, reading and writing a text, calling TRVOfficeConverter.ImportRV and ExportRV.

Better table layout algorithm.

New methods for TRVStyle: FindTextStyle, FindParaStyle, TextStyles.FindSuchStyleEx, ParaStyles.FindSuchStyleEx.