Вниз
Скачать: CL | DM;

FontOrientation или текст под углом   Найти похожие ветки 

 
Bmouradov   (2007-04-08 16:48) [0]

Хочу сообщить о найденной мной ошибке (?) при выводе на canvas текста под углом:

Canvas.Font.FontHeight := 20;
Canvas.Font.FontName := "Arial";
Canvas.Brush.BrushStyle := bsClear;

Canvas.Font.FontOrientation := 0;
Canvas.TextOut(100, 100, "один");

Canvas.Font.FontOrientation := -450; // минус 45 градусов
Canvas.TextOut(100, 150, "два");

Canvas.Font.FontOrientation := 0;
Canvas.TextOut(100, 200, "три");

При этом третий текст печатается под углом -45 градусов, хотя не должен.
Однако, если во втором случае написать
Canvas.Font.FontOrientation := 3150; // минус 45 градусов
тогда всё будет правильно. Возможно, отрицательный угол как-то неправильно обрабатывается.


 
D[u]fa ©   (2007-04-08 18:00) [1]

наверное все что "-" конвертируется в "+"


 
Bmouradov   (2007-04-08 18:56) [2]

Если бы конвертировался в плюс, то было бы так:
 второй текст под +45, а третий 0.
А получается:
 второй под -45, и третий -45.
А должно быть:
 второй под -45, третий 0.


 
Vladimir Kladov   (2007-04-08 19:55) [3]

Скорее всего, проблема в этой строчке в SetFontOrientation:

Value := Value mod 3600;

В принципе, можно было бы написать
if Value < 0 then Value := -( (-Value) mod 3600 ) else Value := Value mod 3600;

Попробуйте эту строчку подставить в KOL.pas (строка ~ 15242). Если заработает правильно, так и оставим.


 
Bmouradov   (2007-04-08 20:14) [4]

Проверил. В PAS_VERSION этой ошибки вообще нет. Выходит, ошибка в KOL_ASM.pas. Также проверил следующее - в режиме PAS_VERSION в Kol.pas заменил SetFontOrientation на версию из KOL_ASM, ошибка вновь появилась. Значит, ошибка находится в KOL_ASM.pas в SetFontOrientation.


 
Vladimir Kladov   (2007-04-12 19:58) [5]

Причину нашел. Исправление будет скоро.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
8-1169131582
Vovan #2
2007-01-18 17:46
2007.11.11
Вопрос о WAV


2-1192731953
tmp
2007-10-18 22:25
2007.11.11
Module32First всегда возвращает первой информацию о...


2-1192695391
Lebedev
2007-10-18 12:16
2007.11.11
Как в своей процедуре создать динамический объект?


2-1192796073
andreil
2007-10-19 16:14
2007.11.11
Как сделать дерево CheckBox ов?


2-1189405023
Mariya
2007-09-10 10:17
2007.11.11
Поиск в Delphi




   Наверх