|
<< Нажмите, чтобы показать Содержание >> Перетаскивание (drag&drop) в ТРВ-Редакторе (TRichView) |
Вы можете перетаскивать данные из TRichView или TRichViewEdit. Вы можете перетаскивать данные в TRichViewEdit.
Перетаскивание возможно не только внутри одного редактора, но и между различными визуальными компонентами и даже между различными приложениями.
Например, вы можете перетаскивать файлы из проводника Windows, гиперссылки, текст и изображения из интернет-браузера или Microsoft Word.
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.
AcceptDragDropFormat перечисляет форматы, которые могут быть приняты.
По умолчанию принимаются все форматы, кроме URL (поскольку он требует обработки в OnReadHyperlink).
Перетащенный объект может содержать данные в нескольких форматах. Приоритет следующий: RVF, затем RTF, затем файлы, затем URL, затем юникодный текст, затем текст в формате ANSI, затем растровое изображение, затем метафайл.
Если опция rvoDragDropPicturesFromLinks включена в EditorOptions, и перетащенный URL является ссылкой на изображение, редактор попытается вставить его как изображение, а не как ссылку.
Если опция rvoAssignImageFileNames включена в Options, имя файла сохраняется в дополнительном строковом свойстве rvespImageFileName для изображений; вы можете изменить это имя файла в событии OnAssignImageFileName.
В процессе перетаскивания в редактор могут произойти следующие события:
Вы можете настроить процесс перетаскивания, используя следующие низкоуровневые события:
▪OnBeforeOleDrop and OnAferOleDrop
При перетаскивании между компонентами TRichView/TRichViewEdit в рамках одного приложения данные передаются с использованием наиболее подходящего формата из AcceptDragDropFormat.
При перетаскивании из TRichView в другой компонент данные предоставляются в виде текста или изображения (если выбрано изображение).
При перетаскивании в TRichViewEdit данные принимаются в виде файлов, текста или изображения.