Советы по 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]



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