|
<< Нажмите, чтобы показать Содержание >> 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;