dbrichviewedit TDBRichViewEdit [VCL и LCL]

Свойства   Методы   События

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

dbrichviewedit TDBRichViewEdit [VCL и LCL]

Свойства   Методы   События

Используйте компонент TDBRichViewEdit для редактирования документов, хранящихся в базе данных.

Модуль DBRV;

Синтаксис

TDBRichViewEdit = class(TCustomRichViewEdit)

TDBRichViewEdit не отображает своё содержимое, если он не связан с компонентом TRVStyle через свойство Style.

Наиболее важные свойства можно настроить в редакторе компонента TRichView. В среде Delphi щёлкните правой кнопкой мыши компонент TDBRichViewEdit на форме и выберите «Settings» (Настройки) в контекстном меню.

Если приложению не требуются возможности TDBRichViewEdit для работы с базой данных, используйте вместо него TRichViewEdit, чтобы экономить системные ресурсы.

Если приложению не требуется редактировать документы в полях базы данных, используйте TDBRichView для их показа.

В Delphi XE2 и более новых версиях есть ещё один способ работы с данными – LiveBindings (см. свойство TRichView.Document).

Иерархия

TObject

TPersistent

TComponent

TControl

TWinControl

TCustomControl

TRVScroller

TCustomRichView

TCustomRichViewEdit

Тип поля

Этот компонент должен быть связан с BLOB-полем.

Если вы используете RVF (RichView Format) или DocX, поле базы данных должно иметь двоичный тип BLOB, то есть должно позволять хранить произвольные двоичные данные без преобразования и фильтрации символов.

Можно также использовать текстовое BLOB-поле (memo). Поля memo не могут хранить двоичные данные, поэтому сохранять в них документы в форматах RVF и DocX невозможно. Однако такие поля можно использовать для отображения текста, Markdown, HTML или RTF (Rich Text Format).

Начиная с Delphi 2006, реализована специальная поддержка полей типа Unicode memo (Field.DataType = ftWideMemo). TDBRichViewEdit не пытается загружать из них RVF и DocX. Он пытается загрузить юникодный RTF (RTF-код, преобразованный в UTF-16), HTML, Markdown или юникодный текст.

Если опция rvfoLoadBack включена в RVFOptions, компонент очищает BackgroundPicture перед загрузкой данных из поля.

Поддерживаемые форматы данных

Поддерживаются следующие форматы документов:

▪RVF (RichView Format),

▪RTF (Rich Text Format),

▪DocX (документ Microsoft Word)

▪HTML

▪текст

▪Markdown

▪другие (с использованием событий).

Для всех типов полей, кроме Unicode memo:

1.Вызывается событие OnLoadCustomFormat .

2.Если событие не обработано, TDBRichView пытается загрузить RVF.

3.Если поле не содержит RVF, он пытается загрузить RTF (или обычный RTF, или RTF преобразованный в UTF-16).

4.Если поле не содержит RTF, он пытается загрузить HTML (включая HTML в кодировке UTF-16).

5.Если поле не содержит HTML, он пытается загрузить DocX.

6.Если поле не содержит DocX:

a.Если (FieldFormat = rvdbMarkdown) или AllowMarkdown, он загружает Markdown

b.В противном случает, он загружает простой текст.

Для полей Unicode memo

Последовательность та же, но:

▪компонент не пытается загружать RVF и DocX

▪на последнем шаге, он загружает юникодный (UTF-16) текст или Markdown.

Сохранение данных в поле:

Событие OnSaveCustomFormat даёт возможность сохранять данные в нестандартных форматах. Если это событие не обрабатывается, для сохранения используется формат, указанный в FieldFormat.

События

Событие OnNewDocument происходит при создании нового документа или перед загрузкой существующего документа из поля.

После загрузки документа из поля происходит событие OnLoadDocument.

События OnLoadCustomFormat и OnSaveCustomFormat позволяют загружать и сохранять документы в пользовательских форматах.

Примеры

Пример 1: Использование методов быстрого изменения документа в TDBRichViewEdit (таких как LoadRTF)

Пример 2: Вставка компонентов, которые могут изменять своё содержимое, в TDBRichViewEdit (например, TEdit: пользователь может изменить в нём текст)