Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Как же все-таки вывести на Canvas многострочный текст ПОД УГЛОМ?   Найти похожие ветки 

 
BlackTiger ©   (2004-06-03 12:17) [0]

Как же все-таки вывести на Canvas многострочный текст ПОД УГЛОМ? Хотя бы кратным 90.

DrawText процедура, конечно, классная, но она умеет вываодить только сверху-вниз. Т.е. при печати текста вверх ногами путается порядок строк и получается полный бред. Кое-что нашел в сырцах FastReport/FreeReport, но как-то там уж очень все запущено и непонятно.

Может у кого есть готовое что-то?


 
Семен Сорокин ©   (2004-06-03 12:26) [1]

имхо только ручной расчет кажой строчки + CreateFontIndirect.
когда-то что-то подобное делал, но не доделал, могу сырцы кинуть если поможет.


 
Anatoly Podgoretsky ©   (2004-06-03 12:28) [2]

Выведи в битмап и поверни его


 
Pul   (2004-06-03 13:33) [3]

>>Anatoly Podgoretsky ©   (03.06.04 12:28) [2]
>>Выведи в битмап и поверни его
Если так сделать, то при печати будут видны зубцы.
Однако если на печать выводить не нужно, то алгоритм поворота битмапа можно почерпнуть из компонента TGraphicsManager.

>>Семен Сорокин ©   (03.06.04 12:26) [1]
Если на форме таких компонентов мало, то можно и так, однако если их несколько десятков или сотен, то тормоза при отрисовке будут конкретные. К тому же, поворот при пом. CreateFontIndirect работает только для TrueType шрифтов.

Свой вариант:
Копай в направлении SetWorldTransform.


 
BlackTiger ©   (2004-06-03 18:33) [4]

>>Anatoly Podgoretsky ©   (03.06.04 12:28) [2]
>>Выведи в битмап и поверни его

Пройдено и выкинуто. Проблема в том, что вывод, как правило, осуществляется на термо-принтер. Вот тут начинается танец с бубном вокруг поворотов/размеров/координат/масштабирований/тыды. Фигня, одним словом.

Пытался расчитывать длины строк - где-то в чем-то запутался и плюнул на это. Нельзя сказать что плохо пытался. Поросто у меня времени тогда было на всё промерно часа 4. А после того, как заглянул в сырцы FastReport (или FreeReport?), где реализован только поворот на 90 градусов, то понял, почему ничего не плучалось - геморрно это страшно.

А вот с Set/GetWorldTransform попробую побаловаться. Если можно вкратце - как оно работает? Меняет систему координат Canvas"а?
Если да, то как "повернуть мир" на 90 (180, 270) градусов. И где окажется точка (0,0)?



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

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

Наверх




Память: 0.48 MB
Время: 0.032 c
1-1086293256
gyry
2004-06-04 00:07
2004.06.20
StringToWideChar


1-1086192848
Damager
2004-06-02 20:14
2004.06.20
Как переименовать папку


1-1086759000
Иван1
2004-06-09 09:30
2004.06.20
Как избавиться от звука при нажатии Enter в Edt1 ?


14-1086021870
выпускник
2004-05-31 20:44
2004.06.20
изложение 11 класс


1-1086690046
dimuch
2004-06-08 14:20
2004.06.20
Подскажите по вопросу о иерархии