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

Previous  Top  Next

    
 

 

Code:

{ **** 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

 

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

Code:

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;

 

 

 

©Drkb::03663