TRVStyle.OnDrawStyleText

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

TRVStyle.OnDrawStyleText

Позволяет нестандартное рисование текстового элемента, имеющего стиль текста с номером StyleNo.

property OnDrawStyleText: TRVDrawStyleTextEvent

VCL и LCL:

type

  TRVDrawStyleTextEvent = procedure (Sender: TRVStyle;
    const s: TRVUnicodeString; ACanvas: TCanvas; StyleNo: Integer;
    SpaceAtLeft, ALeft, ATop, AWidth, AHeight
    {$IFDEF RVUSEBASELINE},BaseLine{$ELSE}

    {$IFDEF RVHIGHFONTS},DrawOffsY{$ENDIF}

    {$ENDIF}TRVCoord;
    TextWidth: TRVCoord; SpaceCount: Integer;
    DrawState: TRVTextDrawStates;
    Printing, PreviewCorrection, ForMetafile: Boolean;
    ColorMode: TRVColorMode; DarkMode: Boolean;

    DefBiDiMode: TRVBiDiMode;
    RefCanvas: TCanvas;
    LeftNoExpIndex, RightNoExpIndex: Integer;

    PSaD: PRVScreenAndDevice
    var DoDefault: Boolean) of object;

FireMonkey:

type

  TRVDrawStyleTextEvent = procedure (Sender: TRVStyle;
    const s: TRVUnicodeString; ACanvas: TRVFMXCanvas;

    StyleNo: Integer;
    SpaceAtLeft, ALeft, ATop, AWidth, AHeight
    {$IFDEF RVUSEBASELINE},BaseLine{$ELSE}

    {$IFDEF RVHIGHFONTS},DrawOffsY{$ENDIF}

    {$ENDIF}TRVCoord;
    TextWidth: TRVCoord; SpaceCount: Integer;
    DrawState: TRVTextDrawStates;
    Printing, PreviewCorrection, ForMetafile: Boolean;
    ColorMode: TRVColorMode; DarkMode: Boolean;

    DefBiDiMode: TRVBiDiMode;
    RefCanvas: TCanvas;
    LeftNoExpIndex, RightNoExpIndex: Integer;

    PSaD: PRVScreenAndDevice
    var DoDefault: Boolean) of object;

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

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

Такие же, как у метода TFontInfo.Draw. Вы можете вызвать Sender.TextStyles[StyleNo].Draw(..), передав параметры этого события.

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

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

Sender.ItemNo: Integer – номер элемента в Sender.RVData.

Self.OffsetInItem: Integer, номер символа в элементе, с которого надо начинать рисовать.

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

Например:

uses ..., CRVFData;

...

var ItemTag: TRVTag;

...

ItemTag := TCustomRVFormattedData(Sender.RVData).GetItemTag(

  Sender.ItemNo));

 

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

DoDefault – установите в False, чтобы отменить стандартное рисование.

 

Примечание: в VCL/LCL символ RVUSEBASELINE определён по умолчанию, но это определение можно отключить в RV_Defs.inc.

В FireMonkey символ RVUSEBASELINE не определён, и версия для FireMonkey не поддерживает рисование относительно базовой линии.

Символ RVHIGHFONTS определён по умолчанию.

 

См. также события:

OnApplyStyle;

OnApplyStyleColor;

OnDrawTextBack.

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

TextStyles.

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

Demos\*\Assorted\Custom Draw\