Отображение текста с тегами форматирования

Советы » Canvas » Отображение текста с тегами форматирования

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Отображение текста с тегами форматирования

Рисует строку текста, содержащую теги форматирования, походие на теги HTML.

Поддерживаются следующие теги:
<b>..</b> Полужирный
<i>..</i> Наклонный
<u>..</u> Подчёркнутый
<s>..</s> Перечёркнутый

<big[ n]>..</big> Увеличить ращмер шрифта на n единиц (по умолчанию 1)
<small[ n]>..</small> Уменьшить шрифт на n единиц (по умолчанию 1)

<sub>..</sub> Нижний индекс
<sup>..</sup> Верхний индекс
Для правильного отображения внутри тегов <sub> и <sup> не должно располагаться других тегов

<font name="Имя шрифта" size="Размер" color="Цвет" charset="Кодовая страница">..</font> 
Установка параметров шрифта.
Размер шрифта указывается как для свойства TFont.Size, а не как в HTML. 
В качестве цвета можно указывать либо константы clXXXX либо числа в формате #RRGGBB, 
где RR GG и ВВ соответственно шестнадцатеричные значения 00..FF красной, 
зелёной и синей составляющей, HTML цвета не поддерживаются. В параметре charset 
указываются константы XXXX_CHARSET, например RUSSIAN_CHARSET или ANSI_CHARSET

Зависимости: Windows, SysUtils, Classes, Graphics, Dim
Автор:       Dimka Maslov, mainbox@endimus.com, ICQ:148442121, Санкт-Петербург
Copyright:   Dimka Maslov
Дата:        17 марта 2004 г.
***************************************************** }

unit

HtDraw; interface

uses

Windows, SysUtils, Classes, Graphics, Dim; type

TTag = class

; THtDraw = class

(TObject) private

FTag: TTag; FText: TString; procedure

SetText(Value: TString); public

function

Draw(Canvas: TCanvas; X, Y: Integer): Integer; // Canvas - устройство для отображения текста. // в свойстве Canvas.Font задаются начальные параметры шрифта // X, Y - начальные координаты // Функция возвращает сумму X и ширины выведенного текста property

Text: TString read

FText write

SetText; // Задаёт текст для отображения. В отличие от свойств компонентов, // присвоение значения этого свойства не приводит к автоматической // перерисовке. Необходимо вызывать метод Draw constructor

Create(const

AText: TString); destructor

Destroy; override

; end

;

Полный текст модулей располагается по адресам: HtDraw: http://downloads.endimus.com/htdraw.zip Dim : http://downloads.endimus.com/dimpas.zip

Пример использования:

var

HtDraw: THtDraw; begin

HtDraw := THtDraw.Create('<b>T</b><i>e</i><u>s</u><s>t</s>'); try

HtDraw.Draw(Canvas, 10, 10); finally

HtDraw.Free; end

; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com