Перетаскивание (drag&drop) в ТРВ-Редакторе (TRichView)

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

Перетаскивание (drag&drop) в ТРВ-Редакторе (TRichView)

Вы можете перетаскивать данные из TRichView или TRichViewEdit. Вы можете перетаскивать данные в TRichViewEdit.

Перетаскивание возможно не только внутри одного редактора, но и между различными визуальными компонентами и даже между различными приложениями.

Например, вы можете перетаскивать файлы из проводника Windows, гиперссылки, текст и изображения из интернет-браузера или Microsoft Word.

Перетаскивание из TRichView или TRichViewEdit [VCL, Lazarus в Windows]

TRichView предоставляет данные в следующих форматах:

RichView Format ('RichView Format')

RTF ('Rich Text Format')

текст ANSI (CF_TEXT) [Windows]

Юникодный текст (CF_UNICODETEXT)

bitmap (CF_BITMAP), если выделен рисунок TBitmap

метафайл (CF_ENHMETAFILE), если выделен рисунок TMetafile [VCL]

Вы можете запретить перетаскивание элементов из данного TRichView, добавив опцию rvoDisallowDrag в свойство Options.

TRichView не может инициализировать перетаскивание вставленных компонентов. Если вы хотите перетащить их, используйте метод BeginOleDrag.

Перетаскивание в TRichViewEdit [VCL, Lazarus в Windows]

AcceptDragDropFormat перечисляет форматы, которые могут быть приняты.

По умолчанию принимаются все форматы, кроме URL (поскольку он требует обработки в OnReadHyperlink).

Перетащенный объект может содержать данные в нескольких форматах. Приоритет следующий: RVF, затем RTF, затем файлы, затем URL, затем юникодный текст, затем текст в формате ANSI, затем растровое изображение, затем метафайл.

Если опция rvoDragDropPicturesFromLinks включена в EditorOptions, и перетащенный URL является ссылкой на изображение, редактор попытается вставить его как изображение, а не как ссылку.

Если опция rvoAssignImageFileNames включена в Options, имя файла сохраняется в дополнительном строковом свойстве rvespImageFileName для изображений; вы можете изменить это имя файла в событии OnAssignImageFileName.

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

OnReadHyperlink;

OnDropFile;

OnDropFiles.

Вы можете настроить процесс перетаскивания, используя следующие низкоуровневые события:

OnOleDragEnter;

OnOleDragOver;

OnOleDragLeave;

OnOleDrop,

OnBeforeOleDrop and OnAferOleDrop

Перетаскивание в FireMonkey

При перетаскивании между компонентами TRichView/TRichViewEdit в рамках одного приложения данные передаются с использованием наиболее подходящего формата из AcceptDragDropFormat.

При перетаскивании из TRichView в другой компонент данные предоставляются в виде текста или изображения (если выбрано изображение).

При перетаскивании в TRichViewEdit данные принимаются в виде файлов, текста или изображения.

См. также...

Буфер обмена