Alo*_*mer 5 delphi delphi-2006
我在Delphi中设置了一个全局异常处理程序.在某些严重的异常上会显示一条错误消息(后跟Halt()).显示错误消息时,Delphi正在处理消息队列,处理计时器事件,从而导致进一步的错误.
我想要的是显示一个不处理计时器事件的错误对话框.德尔福怎么可能?
编辑:我使用Dialogs.MessageDlg(...)来显示消息.
您可以过滤排队的消息,例如WM_TIMER、 和TApplication.OnMessage。
procedure TMainForm.ApplicationMessage(var Msg: TMsg; var Handled: Boolean);
begin
if ShowingFatalErrorDialog then
if Msg.Message = WM_TIMER then
Handled := True;
end;
Run Code Online (Sandbox Code Playgroud)
将该事件处理程序直接分配给Application.OnMessage或使用TApplicationEvents对象。
显然,您必须提供实现ShowingFatalErrorDialog,但我相信您很清楚如何做到这一点。