TCustomRichView.OnReadMergeField

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

TCustomRichView.OnReadMergeField

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

type

 

  TRVReadMergeFieldEvent = 

    procedure (Sender: TCustomRichView; 

      const FieldName, Extras: TRVUnicodeString; 

      DocFormat: TRVLoadFormat;

     var StyleNo: Integer; var ItemTag: TRVTag; 

     var ItemName: TRVUnicodeString) of 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;