TRVDeleteUnusedStylesData

<< Нажмите, чтобы показать Содержание >>

TRVDeleteUnusedStylesData

Этот класс позволяет удалять неиспользуемые стили текста, абзацев и списков из нескольких документов, то есть удалять стили, которые не используются ни в одном из документов.

Модуль [VCL/FMX]: RVItem / fmxRVItem.

Синтаксис

TRVDeleteUnusedStylesData = class;

Единственный метод этого класса, который необходимо использовать, – конструктор:

constructor Create(ATextStyles, AParaStyles, AListStyles: Boolean);

Его параметры задают типы неиспользуемых стилей, которые нужно удалить.

В примерах ниже предполагается, что коллекции стилей текста, абзацев и списков не сохраняются внутри RVF-документов, а хранятся отдельно – в файле или в реестре. В этом случае несколько документов используют одни и те же коллекции стилей. В такой ситуации нельзя использовать TCustomRichView.DeleteUnusedStyles; вместо него следует использовать MarkStylesInUse и DeleteMarkedStyles.

Примечание: обычно гораздо проще и рекомендуется использовать отдельный компонент TRVStyle для каждого компонента TRichView и сохранять коллекции стилей внутри RVF-документов.

Пример 1

Как удалить неиспользуемые стили в 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;

Пример 2

Как удалить стили, не используемые ни в одном из нескольких документов.

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;