Доступ к элементам в ячейках таблицы

<< Нажмите, чтобы показать Содержание >>

Доступ к элементам в ячейках таблицы

Основные методы

Методы RichViewEdit.Insert*** вставляют элемент(ы) в позицию каретки, даже если каретка находится в ячейке таблицы.

Методы RichViewEdit.GetCurrent***Info и SetCurrent***Info отличаются от своих аналогов, не имеющих «Current» в названии

(например GetCurrentPictureInfo и GetPictureInfo)

Методы Get/SetCurrent***Info работают с текущим элементом документа (элементом в позиции каретки) как в корневом редакторе, так и в редакторе ячейки, в зависимости от того, где находится каретка.

Методы Get/Set-без-Current не могут работать с произвольной ячейкой (потому что элемент в ячейке не может быть указан с помощью только параметра ItemNo).

Для того, чтобы операции редактирования работали и с ячейками, нужно использовать «Current»-методы, или вызывать методы TopLevelEditor.

Все методы (и свойства) редактора, работающие с текущим элементом или выделенным фрагментом, работают и в редакторах ячеек (например, ApplyTextStyle, SetCurrentTag, CurTextStyleNo, и т.п). Обычно, для программиста не имеет значения, находится ли текущий элемент или выделенный фрагмент в корневом редакторе или в редакторе ячейки.

Методы с параметром ItemNo

Методы TRichView и TRichViewEdit, работающие с элементом, заданным его номером в документе (Item), не могут работать с ячейками (поскольку к элементу в ячейке нельзя обратиться, используя только параметр ItemNo). Их необходимо вызывать для документа, содержащего этот элемент (обычно, для операций редактирования, это TopLevelEditor).

Есть несколько методов, не имеющих параметр  ItemNo:

ResizeCurrentControl (альтернатива для ResizeControl)

AdjustControlPlacement2(Control) (альтернатива для AdjustControlPlacement(ItemNo))

SetCurrentItemText(text); (альтернатива для SetItemTextEd(ItemNo, text));

GetCurrentItemText (альтернатива для GetItemText);

События с параметром ItemNo

Для событий, не имеющих параметр RVData: если событие происходит для элемента в ячейке, ItemNo равен индексу таблицы в корневом редакторе (например OnRVMouseDown)

Для событий, имеющих параметры RVData и ItemNo: ItemNo равен индексу элемента в RVData.

Выделение

SelectionExists возвращает True, если что-то выделено в ячейке, или несколько ячеек выделено в таблице. В этом случае GetSelectionBound может возвращать -1 в параметрах.

В редакторе вы можете использовать TopLevelEditor.GetSelectionBounds, чтобы получить информацию о выделении в ячейке.

Гипертекст

Гиперссылки могут находиться не только в корневом документе, но и в поддокументах (ячейках или редакторе ячейки).

Используйте метод GetJumpPointLocation, чтобы получить доступ к гипертекстовому элементу.

Гипертекстовые ссылки нумеруются последовательно по всему документу, включая все ячейки с гиперссылками. Этот номер передается в качестве параметра id в события гипертекста.

Закладки

В отличие от гипертекстовых ссылок, каждый поддокумент (основной документ, ячейка таблицы) имеет свой собственный список закладок. Поэтому методы перечисления закладок не могут найти закладки в ячейке таблицы (если они вызываются для основного документа).