TCustomRichViewEdit.OnParaStyleConversion

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

TCustomRichViewEdit.OnParaStyleConversion

Происходит во время выполнения метода ApplyParaStyleConversion.

type

  TRVStyleConversionEvent = 

    procedure (Sender: TCustomRichViewEdit;

      StyleNo, UserData: Integer; AppliedToText: Boolean;

      var NewStyleNo: Integer) of object;

 

property OnParaStyleConversion:TRVStyleConversionEvent;

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

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

Более простой способ реализации операций редактирования свойств абзацев предоставляет компонент TRVEditHelper.

Параметры:

StyleNo – текущий стиль абзаца (номер в коллекции Style.ParaStyles).

UserData – значение, переданное как параметр в ApplyParaStyleConversion.

AppliedToText – не используется.

NewStyleNo – изначально равно StyleNo; присвойте этому параметру новое значение, чтобы изменить стиль абзаца.

 

Пример:

procedure TMyForm.MyRichViewEditParaStyleConversion(

  Sender: TCustomRichViewEdit;

  StyleNo, UserData: Integer; AppliedToText: Boolean;

  var NewStyleNo: Integer);

var ParaInfo: TParaInfo;

begin

  // создание стиля абзаца с желаемыми свойствами

  ParaInfo := TParaInfo.Create(nil);

  try

    ParaInfo.Assign(RVStyle1.ParaStyles[StyleNo]);

    case UserData of

      PARA_ALIGNMENT:

        ParaInfo.Alignment := GetAlignment;

      PARA_INDENTINC:

        begin

          ParaInfo.LeftIndent := ParaInfo.LeftIndent+20;

          if ParaInfo.LeftIndent>1000 then

            ParaInfo.LeftIndent := 1000;

        end;

      PARA_INDENTDEC:

        begin

          ParaInfo.LeftIndent := ParaInfo.LeftIndent-20;

          if ParaInfo.LeftIndent<0 then

            ParaInfo.LeftIndent := 0;

        end;

      PARA_COLOR:

        ParaInfo.Background.Color := ColorDialog1.Color;

      // добавьте код сюда....

    end;

    // поиск такого стиля (и создание его при необходимости)

    NewStyleNo := RVStyle1.FindParaStyle(ParaInfo);

  finally

    ParaInfo.Free;

  end;

end;

В этом примере показано, как реализовать следующие команды:

изменение выравнивания абзаца;

увеличение левого отступа;

уменьшение левого отступа;

изменение цвета фона абзаца.

В этом коде:

PARA_*** – заданные пользователем целочисленные константы с уникальными значениями; эти константы определяют команды и передаются в ApplyParaStyleConversion как UserData.

RVStyle1 – компонент TRVStyle, связанный с MyRichViewEdit.

ColorDialog1: TColorDialog.

GetAlignment – функция, возвращающая выбранное пользователем выравнивание абзаца.

Обратите внимание, что для новых стилей абзацев, добавленных в этом событии, свойству Standard присваивается False. Это важно, иначе DeleteUnusedStyles не сможет удалить такой стиль, даже если все абзацы, использующие этот стиль, будут удалены.

См. демо-примеры:

Demos\*\Editors\Editor 2\

См. также:

OnStyleConversion.

См. также методы:

ApplyParaStyleConversion.