|
<< Нажмите, чтобы показать Содержание >> Доступ к элементам в ячейках таблицы |
Методы RichViewEdit.Insert*** вставляют элемент(ы) в позицию каретки, даже если каретка находится в ячейке таблицы.
Методы RichViewEdit.GetCurrent***Info и SetCurrent***Info отличаются от своих аналогов, не имеющих «Current» в названии
(например GetCurrentPictureInfo и GetPictureInfo)
Методы Get/SetCurrent***Info работают с текущим элементом документа (элементом в позиции каретки) как в корневом редакторе, так и в редакторе ячейки, в зависимости от того, где находится каретка.
Методы Get/Set-без-Current не могут работать с произвольной ячейкой (потому что элемент в ячейке не может быть указан с помощью только параметра ItemNo).
Для того, чтобы операции редактирования работали и с ячейками, нужно использовать «Current»-методы, или вызывать методы TopLevelEditor.
Все методы (и свойства) редактора, работающие с текущим элементом или выделенным фрагментом, работают и в редакторах ячеек (например, ApplyTextStyle, SetCurrentTag, CurTextStyleNo, и т.п). Обычно, для программиста не имеет значения, находится ли текущий элемент или выделенный фрагмент в корневом редакторе или в редакторе ячейки.
Методы TRichView и TRichViewEdit, работающие с элементом, заданным его номером в документе (Item), не могут работать с ячейками (поскольку к элементу в ячейке нельзя обратиться, используя только параметр ItemNo). Их необходимо вызывать для документа, содержащего этот элемент (обычно, для операций редактирования, это TopLevelEditor).
Есть несколько методов, не имеющих параметр ItemNo:
▪ResizeCurrentControl (альтернатива для ResizeControl)
▪AdjustControlPlacement2(Control) (альтернатива для AdjustControlPlacement(ItemNo))
▪SetCurrentItemText(text); (альтернатива для SetItemTextEd(ItemNo, text));
▪GetCurrentItemText (альтернатива для GetItemText);
Для событий, не имеющих параметр RVData: если событие происходит для элемента в ячейке, ItemNo равен индексу таблицы в корневом редакторе (например OnRVMouseDown)
Для событий, имеющих параметры RVData и ItemNo: ItemNo равен индексу элемента в RVData.
SelectionExists возвращает True, если что-то выделено в ячейке, или несколько ячеек выделено в таблице. В этом случае GetSelectionBound может возвращать -1 в параметрах.
В редакторе вы можете использовать TopLevelEditor.GetSelectionBounds, чтобы получить информацию о выделении в ячейке.
Гиперссылки могут находиться не только в корневом документе, но и в поддокументах (ячейках или редакторе ячейки).
Используйте метод GetJumpPointLocation, чтобы получить доступ к гипертекстовому элементу.
Гипертекстовые ссылки нумеруются последовательно по всему документу, включая все ячейки с гиперссылками. Этот номер передается в качестве параметра id в события гипертекста.
В отличие от гипертекстовых ссылок, каждый поддокумент (основной документ, ячейка таблицы) имеет свой собственный список закладок. Поэтому методы перечисления закладок не могут найти закладки в ячейке таблицы (если они вызываются для основного документа).