打印中断引起程序出错,导致非法操作。请指教!(100分)

  • 主题发起人 主题发起人 zwy
  • 开始时间 开始时间
Z

zwy

Unregistered / Unconfirmed
GUEST, unregistred user!
本人编的一个数据库打印程序,打印正常,但(打印中)按‘ESC’键中断退出时,
引起程序出错,关闭后导致非法操作。详细资料提示:程序在UNIDRV.DLL中导致
常规保护错误。请求帮忙!以下是程序的退出模块:
procedure Tfrm_print.FormKeyDown(Sender:TObject;var Key:Word;Shift:TShiftState);
begin

if (Key=VK_ESCAPE) and (printer.printing) then

begin

Printer.abort;
message_box('打印信息反馈窗','打印被取消!','退出');//该过程不存在问题。
table_users.close;
end;

end;
//程序在该处引起错误。
 
要么再退出前再判断一下Printer.Aborted?
 
to dq or all:
在printer.abort;语句之后,为什么printer.aborted仍为假,
而printer.printing也为假?能指点迷津?
 
可能是反应比较慢,试试在Printer.Abort;之后加一句——
while not Printer.Aborteddo
Application.ProcessMessages;
 
zwy:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
接受答案了.
 
后退
顶部