Компоненты в документе ТРВ-Редактора (TRichView)

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

Компоненты в документе ТРВ-Редактора (TRichView)

Вы можете вставить любой визуальный компонент Delphi/Lazarus в документ.

Тип (стиль) этого элемента: rvsComponent (-5)

Методы TCustomRichView

Следующие методы быстрого изменения документа добавляют элемент этого типа в конец документа:

AddControl.

Следующие методы быстрого изменения документа меняют основные свойства заданного элемента:

SetControlInfo

Следующие методы возвращают основные свойства заданного элемента:

GetControlInfo

См. также:

FindControlItemNo

Методы TCustomRichViewEdit

Следующие методы редактирования документа вставляют элемент этого типа в позицию каретки:

InsertControl

Следующие методы редактирования документа меняют основные свойства элемента:

SetCurrentControlInfo,

SetControlInfoEd

Следующие методы возвращают основные свойства элемента в позиции каретки:

GetCurrentControlInfo

См. также:

ResizeControl,

ResizeCurrentControl,

AdjustControlPlacement2

События

OnControlAction происходит когда компонент загружается из RVF, удаляется, перемещается в/из буфера отмены операций, сохраняется в RVF.

Свойства

Разметка и внешний вид

Элементы этого типа имеют следующие целочисленные свойства, относящиеся к разметке и внешнему виду:

rvepSpacing отступы (зазор между компонентом и рамкой; если задан цвет фона, эта область будет закрашена);

rvepColor цвет фона;

rvepBorderWidth, rvepBorderColor ширина и цвет рамки;

rvepOuterHSpacing, rvepOuterVSpacing горизонтальные и вертикальные поля вокруг рамки.

Элементы этого типа имеют следующие дополнительные целочисленные свойства, относящиеся к разметке и внешнему виду:

rveipcPercentWidth позволяет устанавливать ширину компонента в процентах от ширины документа.

Использование памяти

По умолчанию компонент TRichView освобождает память под компонент при уничтожении этого элемента.

Однако, если целочисленное свойство rvepShared не равно нулю, TRichView не уничтожает компонент.

Вертикальная позиция

Элементы этого типа имеют следующие свойства, относящиеся к вертикальной позиции:

VAlign;

целочисленные свойства: rvepVShift, rvepVShiftAbs.

Растяжение

Чтобы можно было менять размеры компонента с помощью мыши, присвойте ненулевое значение свойству rvepResizable.

Вы можете запретить изменение размера с помощью мыши, добавив rvoNoImageResize в EditorOptions.

Изменение размера с помощью мыши меняет свойства Width и Height компонента.

Изменение размера становится доступным когда компонент выделен в редакторе. Вы можете выделить компонент (например, в его событии OnClick), вызвав метод SelectControl.

Событие OnItemResize происходит после изменения размера.

Другие свойства

Элементы этого типа имеют следующие целочисленные свойства:

rvepVisible позволяет скрыть компонент (установив его свойство Visible = False).

Примечание о свойстве Tag компонентов

VCL и Lazarus: компонент TRichView использует свойства Tag вставленных компонентов для собственных нужд. Пожалуйста, не используйте и не изменяйте это свойство.

(Это примечание относится к свойству Tag компонента, а не к тегам элементов; вы можете использовать тег элемента по своему усмотрению).

FireMonkey: TRichView не использует свойства Tag вставленных компонентов.

Сохранение и загрузка

RVF

Чтобы можно было загружать компонент из RVF, его класс должен быть зарегистрирован.

Например:

Delphi: RegisterClass(TButton);

C++Builder: RegisterClass(__classid(TButton));

Если опция rvfoSaveControlsBody исключена из свойства RVFOptions, данные компонента не сохраняются в RVF. При загрузке такого файла RVF происходит событие OnRVFControlNeeded.

Экспорт в текст, RTF, DocX, Markdown и HTML

По умолчанию компоненты не сохраняются. Используйте событие OnSaveComponentToFile для сохранения компонентов.

Печать

Компонент создаёт временное растровое изображение, рисует компонент на нём, затем печатает это изображение.

Создать универсальную процедуру для рисования всех возможных компонентов невозможно. Если вас не устраивают результаты, переопределите печать с помощью события OnPrintComponent.

Специальный режим определения ширины

Ширина компонента может быть задана в процентах:

var Item: TRVControlItemInfo

  ...

Item := RichView.GetItem(ItemNo) as TRVControlItemInfo;

Item.PercentWidth := 50; // 50% ширины документа (минус отступы абзаца)

Эти изменения применятся после переформатирования.

См. также...

BeginOleDrag