Идёт загрузка страницы...

htp://aptem.net.ru





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]