TCustomRichViewEdit.AcceptDragDropFormats, AcceptPasteFormats

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

TCustomRichViewEdit.AcceptDragDropFormats, AcceptPasteFormats

AcceptDragDropFormats перечисляет форматы, которые могут быть приняты при перетаскивании данных в TRichViewEdit.

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

property AcceptDragDropFormats: TRVDragDropFormats;

property AcceptPasteFormats: TRVDragDropFormats;

 

type

  TRVDragDropFormat = (

    rvddRVF, rvddRTF, rvddText, rvddUnicodeText,

    rvddBitmap, rvddMetafile, rvddURL, rvddFiles, rvddHTML);

  TRVDragDropFormats = set of TRVDragDropFormat;

Значение

Формат

Описание

rvddRVF

'RichView Format'

RichView Format

rvddRTF

'Rich Text Format'

RTF

rvddText

CF_TEXT

Простой текст в кодировке ANSI

rvddUnicodeText

CF_UNICODETEXT

Простой юникодный текст

rvddBitmap

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

CF_DIB или CF_BITMAP

Буфер обмена в Windows:

CF_DIB или CF_BITMAP или MIME-тип или 'PNG'

Буфер обмена в других ОС:

формат изображения, принятый в данной ОС

Изображение

rvddMetafile

CF_ENHMETAFILE

Метафайл

rvddURL

'UniformResourceLocator' или 'UniformResourceLocatorW'

URL. Если возможно, заголовок URL читается из формата CFSTR_FILEDESCRIPTOR (иначе заголовок равен цели ссылки).

Событие OnReadHyperlink вызывается в DocFormat=rvlfURL. Если обработчик события не назначен, URL вставляется как простой текст.

rvddFiles

CF_HDROP

По умолчанию, RichViewEdit вставляет:

графические файлы,

*.DocX (только при перетаскивании),

*.RTF (только при перетаскивании),

*.RVF (только при перетаскивании),

*.TXT (только при перетаскивании).

Вы можете изменить стандартную обработку в событии OnDropFiles (только для перетаскивания).

rvddHTML

'HTML Format'

HTML

Пример (обработка OnReadHyperlink с поддержкой rvddURL)

// OnReadHyperlink

procedure TMyForm.MyRichViewEditReadHyperlink(Sender: TCustomRichView;

  const Target, Extras: TRVUnicodeString; DocFormat: TRVLoadFormat;

  var StyleNo: Integer; var ItemTag: TRVTag;

  var ItemName: TRVUnicodeString);

begin

  if DocFormat=rvlfURL then

    StyleNo := GetHyperlinkStyleNo(Sender);

  ItemTag := Target;

end;

 

// Эта функция возвращает номер текстового стиля, имеющего

// все свойства как у текущего стиля, но синий цвет и подчёркивание.

// Если такого стиля нет, он добавляется.

function TMyForm.GetHyperlinkStyleNo(rve: TCustomRichViewEdit): Integer;

var TextStyle: TFontInfo;

begin

  Result := rve.CurTextStyleNo;

  TextStyle := TFontInfo.Create(nil);

  try

    TextStyle.Assign(rve.Style.TextStyles[Result]);

    TextStyle.Jump := True;

    TextStyle.Color := clBlue;

    TextStyle.Style := TextStyle.Style+[fsUnderline];

    Result := rve.Style.FindTextStyle(TextStyle);

  finally

    TextStyle.Free;

  end;

end;

Значения по умолчанию:

AcceptDragDropFormats: [rvddRVF, rvddRTF, rvddText, rvddUnicodeText, rvddBitmap, rvddMetafile, rvddFiles]

AcceptPasteFormats: [rvddRVF, rvddRTF, rvddText, rvddUnicodeText, rvddBitmap, rvddMetafile, rvddFiles, rvddHTML]

См. также:

Paste;

CanPaste;

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