|
<< Нажмите, чтобы показать Содержание >> TCustomRichView.OnWriteHyperlink |
Происходит при сохранении гиперссылки в файл HTML, Markdown, RTF или DocX.
type
TRVWriteHyperlink = procedure (Sender: TCustomRichView;
id: Integer; RVData: TCustomRVData; ItemNo: Integer;
SaveFormat: TRVSaveFormat;
var Target, Extras: TRVUnicodeString) of object;
property OnWriteHyperlink: TRVWriteHyperlink;
По умолчанию теги элементов документа сохраняются как цели гиперссылок в форматах RTF, DocX, HTML и Markdown.
Однако вы можете использовать это событие для настройки сохранения.
Для этого укажите цель гиперссылки в параметре Target.
Входные параметры:
id – идентификатор гиперссылки; это событие может вызываться для неформатированных документов; в этом случае id=-1.
RVData – документ, содержащий гиперссылку (RVData основного TRichView, ячейка, или RVData редактора ячейки).
ItemNo – номер гипертекстового элемента в RVData.
SaveFormat может быть одним из: rvsfHTML, rvsfRTF, rvsfDocX, rvsfMarkdown.
Выходные параметры:
Target – цель гиперссылки, которая будет сохранена в файл или поток. Если вы присвоите пустую строку, этот элемент не будет сохранён как гиперссылка.
Extras – дополнительная информация для сохранения со ссылкой.
Пример 1:
В этом примере выполняется та же работа, что и в случае, если событие не назначено: тег элемента сохраняется в качестве цели.
procedure TMyForm.MyRichViewWriteHyperlink(
Sender: TCustomRichView; id: Integer;
RVData: TCustomRVData; ItemNo: Integer;
SaveFormat: TRVSaveFormat;
var Target, Extras: TRVUnicodeString);
begin
Target := RVData.GetItemTag(ItemNo);
end;
Пример 2:
Аналогично, но в этом примере, помимо сохранения целевого адреса ссылки, сохраняется подсказка «Нажмите здесь!» (для RTF и для HTML) и атрибут «target=_blank» для HTML.
procedure TMyForm.MyRichViewWriteHyperlink(
Sender: TCustomRichView; id: Integer;
RVData: TCustomRVData; ItemNo: Integer;
SaveFormat: TRVSaveFormat;
var Target, Extras: TRVUnicodeString);
begin
Target := RVData.GetItemTag(ItemNo);
case SaveFormat of
rvsfHTML:
Extras := 'target=_blank title="Нажмите здесь!"';
rvsfRTF:
Extras := '\o "Нажмите здесь!"';
end;
end;
Сохранение подсказки показано просто для демонстрации возможностей события. TRichView автоматически сохраняет подсказки, хранящиеся в дополнительном строковом свойстве элемента rvespHint.
Пример 3:
procedure TMyForm.MyRichViewWriteHyperlink(
Sender: TCustomRichView; id: Integer;
RVData: TCustomRVData; ItemNo: Integer;
SaveFormat: TRVSaveFormat;
var Target, Extras: TRVUnicodeString);
begin
case id-FirstJumpNo of
0: Target := 'http://www.borland.com';
1: Target := 'http://www.inprise.com';
2: Target := 'http://www.codegear.com';
3: Target := 'http://www.embarcadero.com';
end;
end;
См. также события:
См. также методы:
▪SaveHTML;
▪SaveRTF;
▪SaveDocX;
▪(и аналогичные методы, сохраняющие в поток).
См. также: