TCustomRichView.OnReadMergeField

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

TCustomRichView.OnReadMergeField

Происходит при чтении содержимого полей слияния из RTF-файла.

type

 

  TRVReadMergeFieldEvent = 

    procedure (Sender: TCustomRichView; 

      const FieldName, Extras: TRVUnicodeString

      DocFormat: TRVLoadFormat;

     var StyleNo: Integer; var ItemTag: TRVTag

     var ItemName: TRVUnicodeStringof object;

 

property OnReadMergeField: TRVReadMergeFieldEvent;

Это событие происходит при чтении содержимого поля слияния из RTF-файла. Оно позволяет изменять прочитанное содержимое. Это событие отличается от события OnReadField, потому что:

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

OnReadField срабатывает при чтении DocX и RTF, OnReadMergeField – при чтении RTF.

OnReadField срабатывает для любого поля, не поддерживаемого TRichView, OnReadMergeField срабатывает только для MERGEFIELD.

 
Входные параметры:

FieldName – имя поля слияния.

Extras – зарезервировано, всегда пустое значение.

DocFormat – формат загружаемого документа, всегда равен rvlfRTF.

StyleNo:

если читается рисунок, это rvsPicture или rvsHotPicture. Вы можете изменить значение параметра, но он всё равно должен быть равен rvsPicture или rvsHotPicture (или другому типу элемента, унаследованному от TRVGraphicItemInfo)

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

ItemName:

если читается рисунок, параметр изначально равен '' (пустой строке). Вы можете присвоить ему значение, которое будет использовано в качестве имени этого элемента.

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

Выходные параметры:

StyleNo стиль (тип элемента), который будет использоваться для загруженного элемента документа. См. комментарии для входных параметров.

ItemName строка, которая будет использоваться в качестве имени (текста) загруженного элемента документа. См. комментарии для входных параметров.

ItemTag значение, которое будет присвоено тегу загруженного элемента документа. Например, можно сохранить в теге значение FieldName. Однако учтите, что цели гиперссылок также хранятся в тегах; поэтому, если вы решите хранить в тегах и цели ссылок и имена полей слияния, вы должны записывать значения тега в формате, позволяющем хранить и то и то.

 

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

Пример:

Загрузка полей слияния текста в виде имён полей внутри фигурных скобок {}.

procedure TMyForm.MyRichViewReadMergeField(Sender: TCustomRichView; 

  const FieldName, Extras: TRVUnicodeString; DocFormat: TRVLoadFormat;

  var StyleNo: Integer; var ItemTag: TRVTag

  var ItemName: TRVUnicodeString);

begin

  if StyleNo >= 0 then
    ItemName := '{' + FieldName + '}';

end;