![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отмена начатой печати(страницы) [D3, Win2k]
лесник © (2007-08-20 14:56:00)Доброго времени суток!
У меня при печати при фильтрации данных возникают пустые страницы. Подскажите как можно отменить при печати последюю созданную страницу? Методов в классе TPrinter что-то не нашел :(
....
Printer.BeginDoc;
while true do
begin
if HasData
begin
Printer.NewPage;
PrintData;//печать данных, с фильтрацией
if PageIsEmpty then
//как-то отменить посленюю соданную страницу
end
else
break;
end;
Printer.EndDoc;
....
Юрий Иванов (2007-08-21 09:55:00) [1]Надо изменить процедуру PrintData и убрать Printer.NewPage в нее. Сделать булевскую переменную PageIsEmpty. Как только в PrintData выяснилось, что строку надо печатать, то если PageIsEmpty = true, то присвоить ей false и выполнить Printer.NewPage. А завершение можно оставить как есть - если PageIsEmpty = false, то выполнить Printer.EndDoc;
clickmaker (2007-08-20 16:49:00) [2]
> отменить созданную страницу на принтере
если она уже ушла в набор, то... страница - не воробей
если еще в очереди спулера, то Printer.Abort
лесник (2007-08-20 15:18:00) [3]это все понятно что сначала обработать данные потом уже создавать или нет страницу:) это просто пример.
мне хотелось бы узнать - можно и как? отменить созданную страницу на принтере
Anatoly Podgoretsky (2007-08-20 15:14:00) [4]Вот в PrintData дата и надо определять пустая страница или нет.
лесник (2007-08-20 15:11:00) [5]это мояпроцедура для печати на принтере PrintData
PageIsEmpty - переменная которая если=true то ничего не напечаталось в PrintData
---это не так важно - вопрос как отменить посл. созданную страницу. может с Canvas что сделать?
Anatoly Podgoretsky (2007-08-20 15:08:00) [6]Что такое PrintData и что такое PageIsEmpty