Главная страница
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.034 c
14-1086008674
Sha
2004-05-31 17:04
2004.06.20
FileMon & RegMon


14-1086394830
Феликс
2004-06-05 04:20
2004.06.20
Как же это дело сформулировать?


4-1084290588
Nebiyev
2004-05-11 19:49
2004.06.20
Как можно менять язык на контролбаре программно?


1-1086275670
Funnymind
2004-06-03 19:14
2004.06.20
Про пути дороги


4-1084300625
ipavels
2004-05-11 22:37
2004.06.20
Обновить конфигурацию оборудования