Вот тебе цитата из Delphi Russian Knowledge Base, скачать которую можно с етого форума:| Цитата | Для того чтобы вывести текст под углом, вытянуть или сжать его нужно воспользоваться структурой LOGFONT. Здесь показаны не все ее возможности, но, на мой взгляд, самые интересные.
procedure TForm1.FormPaint(Sender: TObject); var lf: TLogFont; begin FillChar(lf, SizeOf(lf), 0); with lf do begin // Высота буквы lfHeight := 15;
// Ширина буквы lfWidth := 20;
// Угол наклона в десятых градуса lfEscapement := 100;
// Жирность 0..1000, 0 - по умолчанию lfWeight := 1000;
// Курсив lfItalic := 0;
// Подчеркнут lfUnderline := 1;
// Зачеркнут lfStrikeOut := 1;
// CharSet lfCharSet := RUSSIAN_CharSet;
// Название шрифта StrCopy(lfFaceName, 'Arial'); end; with Form1.Canvas do begin FillRect(ClipRect); Font.Handle := CreateFontIndirect(lf); TextOut(0, 100, 'It is a text string'); end; end;
Автор ответа: Pegas Взято с Vingrad.ru http://forum.vingrad.ru
--------------------------------------------------------------------------------
{ Эта процедура устанавливает угол вывода текста для указанного Canvas, угол в градусах } { Шрифт должен быть TrueType ! } procedure CanvasSetTextAngle(c: TCanvas; d: single); var LogRec: TLOGFONT; { Информация о шрифте } begin {Читаем текущюю инф. о шрифте } GetObject(c.Font.Handle,SizeOf(LogRec) ,Addr(LogRec) ); { Изменяем угол } LogRec.lfEscapement := round(d*10); { Устанавливаем новые параметры } c.Font.Handle := CreateFontIndirect(LogRec); end;
Зайцев О.В. Владимиров А.М. Взято с Исходников.ru http://www.sources.ru | |