Отображение текста с тегами форматирования
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Отображение текста с тегами форматирования
Рисует строку текста, содержащую теги форматирования, походие на теги HTML.
Поддерживаются следующие теги:
.. Полужирный
.. Наклонный
.. Подчёркнутый
.. Перечёркнутый
.. Увеличить ращмер шрифта на n единиц (по умолчанию 1)
.. Уменьшить шрифт на n единиц (по умолчанию 1)
.. Нижний индекс
.. Верхний индекс
Для правильного отображения внутри тегов и не должно располагаться других тегов
..
Установка параметров шрифта.
Размер шрифта указывается как для свойства 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(’Test‘);
try
HtDraw.Draw(Canvas, 10, 10);
finally
HtDraw.Free;
end;
end;