|
<< Нажмите, чтобы показать Содержание >> TCustomRichView.OnHTMLSaveImage |
Событие происходит, когда TRichView сохраняет элемент документа, содержащий изображение, в HTML-файл или поток. Это событие позволяет изменить процедуру сохранения для всех (или некоторых) изображений.
type
TRVHTMLSaveImageEvent =
procedure (Sender: TCustomRichView; RVData: TCustomRVData;
ItemNo: Integer; const Path: TRVUnicodeString;
BackgroundColor: TRVColor; var Location: String;
var DoDefault: Boolean) of object;
property OnHTMLSaveImage: TRVHTMLSaveImageEvent;
Данное событие вызывается для следующих типов элементов:
▪рисунки, интерактивные рисунки,
▪значки, интерактивные значки,
▪маркеры списка с изображениями,
▪таблицы (сохранение фонового изображения),
▪для фонового изображения документа и фоновых изображений ячеек таблиц.
Имеется более лёгкое для использование событие: OnSaveImage2.
Обработка по умолчанию:
Изображения сохраняются в отдельных файлах. Изображения в форматах PNG, GIF, JPEG (и других форматах, зарегистрированных как веб-форматы) сохраняются в соответствующем формате. Изображения не веб-форматов сохраняются как изображения JPEG. Если вы не хотите преобразовывать какой-либо дополнительный класс изображения в JPEG, вы можете зарегистрировать его как графический формат HTML, используя RVGraphicHandler. Имена файлов сохранённых изображений формируются как НачалоИмени + Число + '.' + РасширениеФайла, где
▪НачалоИмени – HTMLSaveProperties.ImagesPrefix;
▪Число – некоторое число, делающее это имя файла уникальным (файлы изображений могут затирать существующие файлы или нет, в зависимости от наличия опции rvhtmlsioOverrideImages в HTMLSaveProperties.ImageOptions).
Значки и интерактивные значки, имеющие одинаковый TImageList, номер изображения и цвет фона, сохраняются в одном и том же файле (аналогично для маркеров списка).
Прозрачный цвет значков и интерактивных значков, а также полупрозрачных форматов изображений (TIcon, TMetafile, gif) заменяется цветом фона (которым может быть цвет компонента (TRichView.Color/TRVStyle.Color), цвет ячейки (TRVTableCellData.Color) или цвет фона абзаца (TRVBackroundRect.Color).
Входные параметры:
RVData – документ, содержащий сохраняемое изображение (RVData основного TRichView, ячейка, или RVData редактора ячейки).
ItemNo – номер этого элемента в RVData. Если событие вызывается для фонового изображения (документа или ячейки), ItemNo=-1.
Path – путь к файлу HTML (или параметр Path метода SaveHTMLToStream).
BackgroundColor – фоновый цвет (может быть проигнорирован, если вы можете сохранить прозрачность изображения)
Location – если rvhtmlsioUseItemImageFileNames в HTMLSaveProperties.ImageOptions, это путь к файлу изображения, заданный в свойстве элемента rvespImageFileName, относительно Path. В противном случае инициализирован пустой строкой.
Выходные параметры:
Location – имя файла сохранённого изображения. Эта строка будет записана в HTML.
DoDefault – установите в False, если вы уже сохранили изображение, чтобы отключить сохранение, выполняемое по умолчанию. Если DoDefault = True, то после вызова этого события:
▪если rvhtmlsioUseItemImageFileNames в HTMLSaveProperties.ImageOptions и значение свойства элемента rvespImageFileName не пустое, это значение будет записано в HTML (относительно пути Path); иначе
▪вызывается событие OnSaveImage2 (если его обработчик назначен); если его обработчик не назначен, или параметр DoDefault события OnSaveImage2 установлен в True, вызывается стандартный метод сохранения изображения.
В обработчике этого события можно использовать:
▪Sender.imgSaveNo – значение, которое было использовано как Число для сохранения предыдущего файла изображения;
▪RVData.GetNextFileName – функция, возвращающая имя файла с заданным НачалоИмени и РасширениеФайла:
function GetNextFileName(
const ImagesPrefix, Path, Ext: TRVUnicodeString;
var imgSaveNo: Integer; OverrideFiles: Boolean): TRVUnicodeString;
где
ImagesPrefix – начало имени файла изображения, НачалоИмени (например, можно использовать HTMLSaveProperties.ImagesPrefix);
Path – путь для изображения (например, можно использовать параметр Path этого события);
Ext – расширение файла, РасширениеФайла, например '.jpg' (можно использовать RVGraphicHandler.GetGraphicExt() или GetGraphicExtByType());
imgSaveNo – функция будет использовать это число, увеличенное один или более раз, для составления имени файла; возвращает увеличенное значение;
OverrideFiles – если False, функция проверяет существующие файлы и возвращает уникальное имя (увеличивая imgSaveNo несколько раз)
Возвращаемое значение: полное имя файла. Его можно использовать для сохранения изображения и присвоения параметру Location этого события (так как это имя включает путь, используйте ExtractFileName или ExtractRelativePath).
Или можно использовать метод SavePicture.
См. также события:
See also