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

Вниз

Ориентация печатного листа   Найти похожие ветки 

 
Суслик ©   (2004-11-22 11:45) [0]

Возникала необходимость менять ориентацию листа в процессе печати.

Т.е.

Printer.Orientation := poPortrait;
Printer.BeginDoc;
Printer.Canvas. что-то рисуем
Printer.Orientation := poLandscape;
Printer.NewPage;
Printer.Canvas. что-то рисуем
Printer.EndDoc;


На строчке Printer.Orientation := poLandscape возникает ошибка - "printing in progress".

Посмотрев код модуля printers понял почему. DC для принтера создается с определенной ориентацией, которая передается через последний параметр функции CreateDc в DevMode. (метод TPrinter.SetState)

Ясно как из этой ситуации выпутаться - просто перед сменой ориентации листа сделать EndDoc, сменить ориентацию, сделать BeginDoc. Но это как-то не очень красиво, т.к. в очереди печати получается два документа.

Вопрос: является ли ограничение на смену ориентации листа в процессе печати особенностью ОС или это особенность реализации дельфи? Т.е. можно ли в существуеющем DC, на основе которого функцией StartDoc была начата печать, поменять некоторые параметры?


 
Суслик ©   (2004-11-22 19:59) [1]

если кому интересно, то можно почитать тут http://www.rsdn.ru/Forum/?mid=910646



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

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

Наверх




Память: 0.46 MB
Время: 0.047 c
14-1103224030
Piter
2004-12-16 22:07
2005.01.09
Программа для редактирования иконок


4-1100890082
Japp
2004-11-19 21:48
2005.01.09
Как получить информацию о типе открытого Хендла?


1-1103734070
Japp
2004-12-22 19:47
2005.01.09
Можно ли в Делфи определить номер строки PAS-файла?


1-1103438626
Алексей Петухов
2004-12-19 09:43
2005.01.09
LoadFromClipboardFormat


8-1096741929
RoLeX2004
2004-10-02 22:32
2005.01.09
Как изменить уровень низких частот???