📄 myerror.pas
字号:
{*******************************************************}
// 单元: MyError.pas
// 作者: 雲飛揚兮 - jlwen@163.com
// 日期: 2008-05-12
// 说明: 一个覆盖系统异常的类
// 版权所有 (C) 2008
// 公司名 中天軟件工作室
{*******************************************************}
unit MyError;
interface
uses
SysUtils, Classes, ActnList, MsgShowUnt, Forms;
type
TMyError = class(TComponent)
private
{ Private declarations }
FDlgTimeout: Integer;
FErr : Exception;
FOnExcept: TExceptionEvent;
protected
{ Protected declarations }
public
{ Public declarations }
oldErr: TExceptionEvent;
// SelfErr : TExceptionEvent;
procedure MyErr(sender: TObject; E: Exception);
constructor create(AOwner: TComponent); override;
published
{ Published declarations }
procedure ShowErr(sError : string; timeout : Integer = -1);
property DlgTimeout: Integer read FDlgTimeout write FDlgTimeout default -1;
property OnExcept: TExceptionEvent read FOnExcept write FOnExcept;
end;
procedure Register;
var
MyErr: TMyError;
implementation
procedure Register;
begin
RegisterComponents('Standard', [TMyError]);
end;
{ TMyError }
constructor TMyError.create(AOwner: TComponent);
begin
inherited;
FDlgTimeout := -1;
oldErr := Application.OnException;
Application.OnException := MyErr;
end;
procedure TMyError.MyErr(sender: TObject; E: Exception);
begin
FErr := E;
if Assigned(olderr) then
oldErr(sender, E);
if Assigned(fOnexcept) then
FOnExcept(sender, E)
else
ShowErrMsg(E, FDlgTimeout);
end;
{
initialization
Myerr := TMyError.Create(nil);
finalization
Myerr.Free; }
{
}
procedure TMyError.ShowErr(sError : string; timeout : Integer= -1);
var
ntimeOut : Integer;
begin
if timeout = -1 then
ntimeOut := DlgTimeout
else
ntimeout := timeout;
ShowMsg(sError,SB_ErrorReport,ntimeOut,'',2,5);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -