Главная страница
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.039 c
14-1086361466
Ig
2004-06-04 19:04
2004.06.20
Работа с TStrings


6-1081433017
Sijey
2004-04-08 18:03
2004.06.20
Сокеты и локальная сеть


3-1085643265
Kraw
2004-05-27 11:34
2004.06.20
Программирование TDBGrid


14-1086093727
__
2004-06-01 16:42
2004.06.20
Как функционируют нормальные группы разработчиков?


1-1086603969
Алексей
2004-06-07 14:26
2004.06.20
Как сохранить в файл TListItem