Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.11;
Скачать: 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 вся ветка

Текущий архив: 2007.11.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
15-1191840512
allrussia
2007-10-08 14:48
2007.11.11
"Кракозябры" при вставке из буфера


2-1192536340
Kolan
2007-10-16 16:05
2007.11.11
Variant := := StrToInt( 1 ) приводит к исключению, почему?


2-1192606931
ari_9
2007-10-17 11:42
2007.11.11
в run-time расположить отн. друг друга комп. с одинаковым align


2-1192529134
тим
2007-10-16 14:05
2007.11.11
ячейка без пунктирной рамки


2-1192618151
sydenis
2007-10-17 14:49
2007.11.11
rasdial