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

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

{ **** 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, <a href="mailto:mainbox@endimus.com">mainbox@endimus.com</a>, 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;

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...