Форум: "WinAPI";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизОриентация печатного листа Найти похожие ветки
← →
Суслик © (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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.033 c