Главная страница
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.045 c
3-1085777892
.Net
2004-05-29 00:58
2004.06.20
Прорисовка DBGrida?


1-1086105940
AlekVolsk
2004-06-01 20:05
2004.06.20
ERRORLEVEL, возвращаемый программой


1-1086447044
a3a3ello
2004-06-05 18:50
2004.06.20
Application.Terminate


9-1077685259
Poison man
2004-02-25 08:00
2004.06.20
Текстурирование объектов


9-1078057944
_dEMOn
2004-02-29 15:32
2004.06.20
Menu