Delphi 1
Ошибка фунциии 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]