怎样让程序正常退出(100分)

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

zwwhb

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序当发生意外时就死了,比如我用DELPLHI自带的报表控件做了一个报表,但如果使用的电脑
没有安装打印机,而用户又按了设置打印机按钮,则程序会死,必须结束该程序,再启动才行。我定义了一个类,可以铺获全局错误
错误是铺获到了,但还是不能正常退出。我是这样写的
type
TGlobalExHandler = class
public
procedure HandlerProc(sender: Tobject; EInstance: Exception);
end;

procedure TGlobalExHandler.HandlerProc(sender: Tobject; EInstance: Exception);
begin
messagebox(0, '操作或输入错误!', '警告', mb_ok xor MB_ICONWARNING xor MB_TASKMODAL);
exit;
end;

请问各位大虾有什么高招?
 
procedure TGlobalExHandler.HandlerProc(sender: Tobject; EInstance: Exception);
begin
messagebox(0, '操作或输入错误!', '警告', mb_ok xor MB_ICONWARNING xor MB_TASKMODAL);
Application.Terminate;
end;
 
将本进程终止
 
我的意思不是终止那个程序,而是让程序从我所执行的动作中退出,而且要不影响程序的继续运行
 
那你用一个线程来管理你的这个打印操作,
出现错误时,把这个线程把停了总行吧!
 
这个报表的打印只是其中一个例子,还有其他的一些未知的错误,不可能都用线程吧
 
你产生的可能是致命错误,
普通异常不会终止程序。
 
用异常处理!
 
没有Free!
 
>>>我的意思不是终止那个程序,而是让程序从我所执行的动作中退出,
>>>而且要不影响程序的继续运行


procedure TGlobalExHandler.HandlerProc(sender: Tobject; EInstance: Exception);
begin
messagebox(0, '操作或输入错误!', '警告', mb_ok xor MB_ICONWARNING xor MB_TASKMODAL);
abort;
end;
 
我试过了,改为abort也不行
 
那就只有从根本上解决了,也就是说,你要找出 在哪出了问题。
 
你自己做一个打印预览的窗口(我做了,可以发给你)。。
当你启动预览的时候,如果没有检测到打印机,或者打印机的安装不正常,那么在预览
窗口上面的“打印”和“预览”就为(false),就不可以打印拉:)
如果你认为这样可以实现你的功能,留下你的邮箱
 
TO 小苹果,
我要检测打印机的那段代码。wumengs@sina.com.cn
 
发过来吧,是不是所有用DELPHI自带的报表控件都会出现这种问题?w_zhouwei_79@163.com
 
w_zhouwei_79@163.com

wumengs@sina.com.cn

朋友,代码已经发出,请注意查收
 
to 小苹果
我看了,还行
 
接受答案了.
 
后退
顶部