|
<< Нажмите, чтобы показать Содержание >> TRVDeleteUnusedStylesData |
Этот класс позволяет удалять неиспользуемые стили текста, абзацев и списков из нескольких документов, то есть удалять стили, которые не используются ни в одном из документов.
Модуль [VCL/FMX]: RVItem / fmxRVItem.
Синтаксис
TRVDeleteUnusedStylesData = class;
Единственный метод этого класса, который необходимо использовать, – конструктор:
constructor Create(ATextStyles, AParaStyles, AListStyles: Boolean);
Его параметры задают типы неиспользуемых стилей, которые нужно удалить.
В примерах ниже предполагается, что коллекции стилей текста, абзацев и списков не сохраняются внутри RVF-документов, а хранятся отдельно – в файле или в реестре. В этом случае несколько документов используют одни и те же коллекции стилей. В такой ситуации нельзя использовать TCustomRichView.DeleteUnusedStyles; вместо него следует использовать MarkStylesInUse и DeleteMarkedStyles.
Примечание: обычно гораздо проще и рекомендуется использовать отдельный компонент TRVStyle для каждого компонента TRichView и сохранять коллекции стилей внутри RVF-документов.
Как удалить неиспользуемые стили в RichView1 и RichView2, связанных с одним и тем же RVStyle.
uses RVItem;
data := TRVDeleteUnusedStylesData.Create(True, True, True);
RichView1.MarkStylesInUse(data);
RichView2.MarkStylesInUse(data);
RichView1.DeleteMarkedStyles(data);
RichView2.DeleteMarkedStyles(data);
data.Free;
Как удалить стили, не используемые ни в одном из нескольких документов.
uses CRVData, RVItem;
data := TRVDeleteUnusedStylesData.Create(True, True, True);
RichView1.LoadRVF('Doc1.rvf');
RichView1.MarkStylesInUse(data);
RichView1.LoadRVF('Doc2.rvf');
RichView1.MarkStylesInUse(data);
...
RichViewDoNotCheckRVFStyleRefs := True;
RichView1.LoadRVF('Doc1.rvf');
RichView1.DeleteMarkedStyles(data);
RichView1.SaveRVF('Doc1.rvf', False);
RichView1.LoadRVF('Doc2.rvf');
RichView1.DeleteMarkedStyles(data);
RichView1.SaveRVF('Doc2.rvf', False);
...
RichViewDoNotCheckRVFStyleRefs := False;
data.Free;