Советы по Delphi


Ошибка фунциии Print.EndDoc


Да, EndDoc проверяет флаг FAborted, но вызывает EndPage, даже если FAborted равно True. EndDoc используется только тогда, когда печать завершена полностью и *успешно*.

Процедура Abort предполагает вызов Windows API AbortDoc(), но не делает этого и, следовательно, прерывание процесса печати не останавливает работу принтера. Поэтому, для обхода этой ошибки вам следует вызвать

    WinProcs.AbortDoc(Printer.Handle);

Я исправил модуль PRINTERS.PAS, после чего GPF пока не возникал...

    CheckPrinting(True); AbortDoc(Canvas.Handle); FAborted := True; WinProcs.EndDoc(DC);



- Garry Prefontaine [000409]



Содержание раздела