Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Текст под углом


Автор: Тьма 11.6.2006, 10:01
Привет
для создания текста, который выводится под углом я использую функцию CreteFont
меня интересует 3 и 4 параметры
вот выдержка из справки
Цитата

nEscapement 
[in] Specifies the angle, in tenths of degrees, between the escapement vector and the x-axis of the device. The escapement vector is parallel to the base line of a row of text. 
Windows NT/2000/XP: When the graphics mode is set to GM_ADVANCED, you can specify the escapement angle of the string independently of the orientation angle of the string's characters. 

When the graphics mode is set to GM_COMPATIBLE, nEscapement specifies both the escapement and orientation. You should set nEscapement and nOrientation to the same value. 

Windows 95/98/Me: The nEscapement parameter specifies both the escapement and orientation. You should set nEscapement and nOrientation to the same value. 

nOrientation 
[in] Specifies the angle, in tenths of degrees, between each character's base line and the x-axis of the device. 

по моему скромному разумению английского первый параметр определяет угол наклона всего текста, а второй - угол смещения наклоно базовой линии каждой следующей буквы, что должно давать вывод текста по дуге. перед созданием шрифта я делаю
Код

SetGraphicsMode(Bitmap.Handle, GM_ADVANCED)

может я неправильно понял значение смысловую нагрузку параметра nOrientation, но текст по дуге не выводится.
в чем проблема? 

Автор: Yanis 11.6.2006, 10:23
Цитата(Тьма @  11.6.2006,  11:01 Найти цитируемый пост)
что должно давать вывод текста по дуге

С чего ты взял, что по дуге? Текст будет рисоваться лесенкой. 

Автор: Тьма 11.6.2006, 11:01
а.. 
ну лесенкой тоже не рисует 

Автор: Yanis 11.6.2006, 11:15
Тьфу ты.. не лесенкой, а буквы просто поворачивает относительно nEscapement. 

Автор: Girder 11.6.2006, 11:29
Возьми енто пример: http://forum.vingrad.ru/index.php?showtopic=47376&view=findpost&p=369364

Добавь перед SetBKMode(DC,Transparent); вот енто: SetGraphicsMode(DC, GM_ADVANCED);

И замени: 
Код

 LF.lfEscapement:=-20*10;
 LF.lfOrientation:=-20*10;
на: 
Код

 LF.lfEscapement:=-20*10;
 LF.lfOrientation:=20*10;
И сразу все поймеш... что и чего имелось в виду smile  

Автор: Тьма 18.6.2006, 09:51
понял 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)