Изменение элементов документа ТРВ-Редактора (TRichView)

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

Изменение элементов документа ТРВ-Редактора (TRichView)

Существует несколько групп методов для изменения содержимого документа:

методы Set***Info, объявленные в TRichView (методы быстрого изменения документа)

методы Set***InfoEd, объявленные в TRichViewEdit (методы редактирования документа)

методы SetCurrent***Info, объявленные в TRichViewEdit такие же как, Set***InfoEd, но работающие с текущим (в позиции каретки) элементом документа.

Методы SetCurrent***Info работают так же, как Set***InfoEd(CurItemNo,...) Но есть важное исключение: при использовании таблиц, методы SetCurrent***Info меняют свойства элемента в любом расположении (как в корневом редакторе, так и в редакторе ячейки).

Тип элемента поменять нельзя (за исключением преобразования обычных рисунков в интерактивные и наоборот)

Сначала вам нужно узнать тип элемента. Используйте RichView.GetItemStyle(ItemNo); или свойство RichViewEdit.CurItemStyle для элемента, находящегося в позиции каретки.

Далее, обычно вам нужно получить информацию о данном элементе.

Наконец, вы можете его изменить.

Методы Set***Info

Параметры этих методов аналогичны параметрам методов Add***.

В зависимости от типа элемента, можно использовать:

SetBreakInfo, SetBulletInfo, SetHotspotInfo (вызовите Invalidate для перерисовки RichView после вызова, переформатирование не обязательно)

SetPictureInfo, SetControlInfo возвращают значение типа Boolean: требуется ли переформатирование? (вызовите Invalidate для перерисовки RichView после вызова, переформатирование не обязательно, если новое изображение или компонент имеет те же размеры, и вертикально выравнивание не было изменено).

Также можно использовать:

SetItemTag для изменения тега элемента документа,

SetCheckpointInfo для изменения закладки,

SetItemExtraIntProperty для изменения значения целочисленного свойства,

SetItemExtraStrProperty для изменения значения строкового свойства,

SetItemText для изменения текста элемента документа (видимый текст для текстовых элементов, название для нетекстовых).

См. раздел справки о тегах элементов.

Ограничения текущей версии ТРВ-Редактора:

нельзя менять ссылку на компонент TImageList у значков и интерактивных значков;

нельзя менять компонент на другой.

Не рекомендуется использовать эти методы в редакторе, см. раздел справки компоненты просмотра и компоненты редактирования.

Методы Set***InfoEd (редактор)

Набор методов, аналогичный методам Set***Info, с теми же параметрами, с той разницей, что это методы редактирования документа.

SetBreakInfoEd, SetBulletInfoEd, SetHotspotInfoEd, SetPictureInfoEd, SetControlInfoEd;

также SetItemTagEd, SetCheckpointInfoEd, SetItemTextEd, SetItemExtraIntPropertyEd, SetItemExtraStrPropertyEd

Методы SetCurrent***Info (редактор)

Набор методов, аналогичный методам Set***InfoEd, но работающих с элементом документа в позиции каретки.

SetCurrentBreakInfo, SetCurrentBulletInfo, SetCurrentHotspotInfo, SetCurrentPictureInfo, SetCurrentControlInfo,

также SetCurrentTag, SetCurrentCheckpointInfo, SetCurrentItemText, SetCurrentItemExtraIntProperty, SetCurrentItemExtraStrProperty.

Дополнительные методы для вставленных компонентов

Методы для изменения размера компонента:

procedure ResizeControl(ItemNo: Integer; NewWidth, NewHeight: TRVCoord);

procedure ResizeCurrentControl(NewWidth, NewHeight: TRVCoord);

Это предпочтительный способ изменения размера компонента. Эти методы переформатируют затронутую часть документа и перерисовывают её.

Если ваш компонент иногда может изменять свой размер или перемещаться, вам необходимо вызвать:

procedure AdjustControlPlacement(ItemNo: Integer);

procedure AdjustControlPlacement2(Control: TControl);

после этих действий. Эти методы восстанавливают правильное положение компонента и выполняют все необходимые операции форматирования и перерисовки, если размер компонента был изменён.