Вращение текста с помощью Delphi

Источник: welikeit

Сейчас мы поговорим с Вами о том как можно средствами Дельфи вращать какой-нибудь текст. На первый взгляд задача не из простых, ведь даже Windows не умеет вращать изображения (ну и текст соответственно тоже), но мы же не Windows :))
Нам понадобится переменная-запись типа TLogFont, которая будет содержать характеристики шрифта, такие как: размер, стиль, шрифт, угол поворота. А также переменные типа hFont и TFont.
Теперь, чтобы не мучить Вас ожиданием привожу код примера (обработчик события OnClick для командной кнопки):

procedure TForm1.Button1Click(Sender: TObject);
var
Font : hFont;
LogFont : TLogFont;
F : TFont;

begin

FillChar(LogFont, SizeOf(LogFont), 0);
With LogFont do
Begin
lfHeight := 12;//высота шрифта
lfOrientation := 150;//угол поворота желательно, чтобы совпадал со
lfEscapement := 150;//значением этой переменной. В данном случае это 15'
lfWeight := FW_REGULAR; //к примеру жирный - FW_BOLD;
lfCharSet := RUSSIAN_CHARSET;//тут я думаю понятно
StrCopy(lfFaceName, 'Arial');//здесь - имя шрифта
End;

Font := CreateFontIndirect(LogFont);
F := TFont.Create;//создаем экземпляр объекта
F.Handle := Font;
Canvas.Font := F;
Canvas.Brush.Color := Color;
Canvas.TextOut(300, 100, 'Font Demo'); //рисуем на формк
F. Free;//
DeleteObject(Font);//освобождаем память, удаляя объект...
end;

Ну вот собственно и все, на основе этого можно к примеру компонент написать, может я конечно и сам скоро его напишу, но тем не менее презентую Вам эту идею.


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=2960