Форум: "KOL";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "KOL";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.057 c