|
<< Нажмите, чтобы показать Содержание >> TCustomRichView.OnSaveItemToFile |
Позволяет изменить способ сохранения элементов документа в текстовом формате, RTF, DocX, HTML или Markdown.
type
TRVSaveItemToFileEvent = procedure (Sender: TCustomRichView;
const Path: TRVUnicodeString;
RVData: TCustomRVData; ItemNo: Integer;
SaveFormat: TRVSaveFormat; var OutStr: TRVUnicodeString;
var DoDefault: Boolean) of object;
property OnSaveItemToFile: TRVSaveItemToFileEvent;
Это событие низкого уровня, позволяющее полностью изменить способ сохранения элементов документа.
Существуют события, предоставляющие часть возможностей данного события:
Эти события проще в использовании, чем это событие OnSaveItemToFile.
Входные параметры:
Path – путь к файлу для сохранения документа;
RVData, ItemNo – сохраняемый элемент документа. RVData – документ, содержащий элемент (RVData основного TRichView, ячейка, или RVData редактора ячейки). ItemNo – номер элемента в RVData.
SaveFormat идентифицирует формат сохранения документа.
OutStr:
▪для нетекстовых элементов: пустая строка;
▪для текстовых элементов: текст, который требуется сохранить (возможно, часть текста элемента, если сохраняется выделенный фрагмент).
DoDefault – True.
Выходные параметры:
Установите значение параметров DoDefault и OutStr согласно таблице ниже.
Выходное значение DoDefault |
Для текстовых элементов |
Для нетекстовых элементов |
|---|---|---|
True |
Для текстовых файлов: стандартное сохранение, значение OutStr не используется. Для HTML, RTF, DocX, Markdown: значение OutStr будет обработано и сохранено (например, '<' будут заменены на '<' для HTML). |
Стандартное сохранение, значение OutStr не используется.. |
False |
OutStr будет сохранено в файл без обработки (без замены управляющих символов). |
|
Если вы не хотите изменять сохранение какого-либо элемента, оставьте параметр DoDefault в значении True.
При сохранении в форматы HTML и RTF нельзя изменить некоторую специальную обработку маркеров списка.
Замечания по DocX:
•событие не вызывается для таблиц;
•событие позволяет поменять сохранение нумерованных последовательностей только частично.
Замечания по Markdown:
Независимо от значения DoDefault, пробелы в OutStr могут быть закодированы (заменены на ' ' или перенос строки). Чтобы этого избежать, используйте символы #01 вместо пробелов (#01 будут заменены пробелами перед сохранением).
Пример: сохранение рисунков как '[РИС.]'
procedure TMyForm.MyRichViewSaveItemToFile(
Sender: TCustomRichView; const Path: TRVUnicodeString;
RVData: TCustomRVData; ItemNo: Integer;
SaveFormat: TRVSaveFormat;
var OutStr: TRVUnicodeString; var DoDefault: Boolean);
begin
if (RVData.GetItemStyle(ItemNo)=rvsPicture) then
begin
case SaveFormat of
rvsfMarkdown:
OutStr := '\[РИС.\]';
else
OutStr := '[РИС.]';
end;
DoDefault := False;
end;
end;