|
|
|||
|
wm-help.net -> Электронная библиотека -> Delphi -> Вопросы и Ответы по Delphi -> Вопрос и Ответ 11Вопрос и Ответ 11
Вопросы и Ответы
11. Можно ли в Delphi вывести строку повернутую под любым углом? Стандартные средства Delphi не позволяют использовать вывод строки текста под произвольным углом, так как в модуле Graphics поля отвечающие за угол поворота строки принудительно обнуляются. Это приводит к необходимости использовать средства API. Наверное, лучший способ - это исправить модуль Graphics и разрешить использование произвольного угла поворота во всех объектах сразу. Но такой путь потребует перекомпиляции нескольких модулей и приведет к некорректной работе ваших кодов с другими версиями Delphi. Другой способ - написать процедуру вывода под углом и пользоваться ею при необходимости. Чтобы не нарушать существующий порядок вывода строки на экран, будем следовать следующим правилам: Пример: ............ PROCEDURE
FreeTextOut(Canvas: TCanvas; X, Y, A: Integer; S: String); OldFont,
NewFont: hFont; BEGIN
{Создаем описание для нового шрифта.} {Устанавливаем текущие для объекта Font
параметры, кроме углов.} else
lfWeight := FW_NORMAL; lfItalic
:= Byte(fsItalic in Font.Style); end; END; ............ Созданную процедуру лучше
всего оформить в виде модуля. Процедура работает аналогично
процедуре TextOut, единственное - ей необходимо явно
передавать контекст отображения: procedure FreeTextOut(Canvas: TCanvas; X, Y, A: Integer; S: String); где ............ FreeTextOut(Canvas, 100, 100, 45,
'Пример вывода под углом'); ............ P.S. Поворачивать можно только
векторные и масштабируемые (True Type) шрифты. А шрифт
System, используемый Delphi по умолчанию -
растровый! ...предыдущая страница следующая... |
|
| бодибилдинг | Строим Домик | RU-домены за 170 рублей | Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2008. При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны! Время генерации страницы: 0.058 |