Addressing Items in Table Cells

<< Click to display table of contents >>

Addressing Items in Table Cells

Main Methods

RichViewEdit.Insert*** methods insert item(s) at the position of caret, even if the caret is in cell of other table.

RichViewEdit.GetCurrent***Info and SetCurrent***Info methods differ from their analogs with names without "Current"

(for example GetCurrentPictureInfo and GetPictureInfo)

Get/SetCurrent***Info methods work with the current item (item at the position of caret) either in parent editor or in cell inplace-editor, depending on where the caret is located.

Get/Set-without-Current methods cannot work with cells (because item in cell cannot be addressed using only ItemNo parameter).

If you used TRichView version 1.3 and you want to work with tables, you should check your code and replace such methods with their "Current" alternatives, or to call them for TopLevelEditor.

All methods (and properties) of editor working with current or selected item(s) can work with cell inplace editors

(for example, ApplyTextStyle, SetCurrentTag, CurTextStyleNo, etc.). Programmer does not need to know if the current item or selection is in root editor or in inplace editor.

Methods with ItemNo Parameter

Methods working with the Item-th item cannot work with cells (because item in cell cannot be addressed using only ItemNo parameter). They must be called for the document containing this item (usually, for editing operations, it's TopLevelEditor).

There are some methods which do not have ItemNo parameter:

ResizeCurrentControl (alternative to ResizeControl)

AdjustControlPlacement2(Control) (alternative to AdjustControlPlacement(ItemNo))

SetCurrentItemText(text); (alternative to SetItemTextEd(ItemNo, text));

GetCurrentItemText (alternative to GetItemText);

Events with ItemNo Parameter

For events without RVData parameter: when events occur inside cell inplace editor, ItemNo is an index of table inside the root editor (for example OnRVMouseDown)

For events having both RVData and ItemNo parameter: ItemNo is an index of item in this RVData

Selection

SelectionExists returns True, if something is selected inside cell, or several cells are selected in table. In this case GetSelectionBound can returns -1s.

In editor, you can use TopLevelEditor.GetSelectionBounds to get information about selection in the edited cell.

Hypertext

Hypertext items can be not only in main document, but in subdocuments (cells or cell inplace-editor).

Use GetJumpPointLocation to access hypertext item.

Hypertext links are numbered sequentially through the document, including all hyperlinks cells. This number is passed as id parameter in hypertext events

Checkpoints

Unlike hypertext links, each subdocument (main document, table cell) has its own list of checkpoints. So methods for checkpoints enumeration cannot find checkpoints in table cell (if called for the main document).

Page Breaks

Mandatory page breaks inside tables are not supported yet.