程序出现系统错误,弹出对话框,关掉对话框则程序自动退出,如何屏蔽对话框让程序继续运行?(100)

  • 主题发起人 主题发起人 ax518598
  • 开始时间 开始时间
A

ax518598

Unregistered / Unconfirmed
GUEST, unregistred user!
做了程序只有一个FORM,上面有好几个SPCOMM,发现程序运行到1个小时后,常会弹出一个CPU......的错误对话框,一旦关掉这个对话框,程序就自动全退出了,但如果不关它后继续运行大概半小时才自动关掉。如何屏蔽这个对话框?记得以前见过在Application中写段错误处理的代码 OnError之类的,不知对否?究竟该如何写?
 
你在Application的OnError中记录下这个错误的日志,及可以了,Application的OnError会自动屏蔽掉这个错误的。
 
可能是如下的代码:procedure TFrmMain.ApplicationEvents1Exception(Sender: TObject; E: Exception);var F : TextFile ; ErrStr, ActiveForm, ErrorComponent : String ; i, j : integer ;begin if E.Message = 'There is no default printer currently selected' then begin MsgBox('没有检测到默认的打印机!') ; Exit ; end ; sbrMain.Panels[7].Text := '系统运行时发生错误,部分功能可能会受到影响!' ; try AssignFile(F,ExtractFilePath(Application.ExeName) + '/Error.log') ; if JugeErrorLog then ReWrite(F) else Append(F) ; ErrStr := FormatDateTime('YYYY-MM-DD hh:nn:ss',Now) ; WriteLn(F,ErrStr) ; ErrStr := '******发生以下错误******' ; WriteLn(F,ErrStr) ; for i := 0 to Application.ComponentCount - 1 do begin if Application.Components is TForm then begin ActiveForm := Application.Components.Name ; for j := 0 to Application.Components.ComponentCount - 1 do begin if Application.Components.Components[j] = Sender then begin ErrorComponent := Application.Components.Components[j].Name ; Break ; end ; Break ; end ; Break ; end ; end ; ErrStr := 'When ' + ActiveForm + ' is acting' ; if ErrorComponent <> '' then ErrStr := ErrStr + ' and Some object in the ' + ErrorComponent + '. Information:' ; WriteLn(F,ErrStr) ; ErrStr := E.Message ; WriteLn(F,ErrStr) ; ErrStr := ' ' ; WriteLn(F,ErrStr) ; CloseFile(F) ; except ; end ;end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部