Изменение элементов документа ТРВ-Редактора (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);

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