TRVStyle.OnDrawCheckpoint

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

TRVStyle.OnDrawCheckpoint

Происходит при рисовании закладки.

property OnDrawCheckpoint: TRVDrawCheckpointEvent;

VCL и LCL:

type

  TRVDrawCheckpointEvent =

    procedure (Sender: TRVStyle; Canvas: TCanvas;

      X,Y: TRVCoord; ItemNo: Integer; XShift: TRVCoord;

      RaiseEvent: Boolean; Control: TControl;

      var DoDefault: Boolean) of object;

FireMonkey:

type

  TRVDrawCheckpointEvent =

    procedure (Sender: TRVStyle; Canvas: TRVFMXCanvas;

      X,Y: TRVCoord; ItemNo: Integer; XShift: TRVCoord;

      RaiseEvent: Boolean; Control: TControl;

      var DoDefault: Boolean) of object;

Это событие можно использовать для нестандартного рисования закладок.

Событие происходит только в том случае, если опция rvoShowCheckpoints включена в TCustomRichView(Control).Options.

Входные параметры:

Sender – компонент TRVStyle, вызвавший событие.

Canvas – канва для рисования.

X, Y – координаты левого верхнего угла элемента, связанного с рисуемой закладкой. Если это последняя закладка в документе, не связанная ни с одним элементом, X = -1.

ItemNo – номер этого элемента в Sender.RVData. Для закладки, не связанной с элементом, ItemNo = -1.

XShift – величина горизонтальной прокрутки компонента TRichView (>= 0).

RaiseEvent – флажок вызова события рисуемой закладки.

Control – компонент TRichView.

DoDefault имеет значение True.

«Скрытый» входной параметр:

Sender.RVData: TPersistent – документ, содержащий элемент с этой закладкой. Перед использованием его следует привести к типу TCustomRVFormattedData.

Выходные параметры:

DoDefault – установите в False, чтобы отменить стандартное рисование. Стандартная процедура рисует горизонтальную пунктирную линию с небольшим кружком в точке (X, Y). Цвет линии задаётся свойством CheckpointColor или CheckpointEvColor в зависимости от значения RaiseEvent.

Используя ItemNo и Sender.RVData, можно получить дополнительную информацию об элементе и закладке.

Например:

uses ..., CRVFData;

...

var

  CheckpointData: TCheckpointData;

  CheckpointTag: TRVTag;

  CheckpointName: String;

begin

  if ItemNo>=0 then

  begin

    CheckpointData :=

      TCustomRVFormattedData(Sender.RVData).GetItemCheckpoint(

        ItemNo));

    TCustomRVFormattedData(Sender.RVData).GetCheckpointInfo(

      CheckpointTag, CheckpointName, RaiseEvent);

    ...

  end;

end

См. также свойства:

CheckpointColor, CheckpointEvColor.

См. также:

Закладки в ТРВ-Редакторе.

Демонстрационный проект:

Demos\*\Assorted\Custom Draw\CustomDraw\