【问题标题】:Change Icon of a raised Exception in Delphi在 Delphi 中更改引发异常的图标
【发布时间】:2013-04-25 06:58:01
【问题描述】:

在我们的应用程序中,我们创建了几个 Exceptions 类来满足我们的所有需求。但现在的问题是,引发的异常对话框始终是 MessageType mtError,当然会显示 mtError-Icon。
对于我们的一些例外情况,我更喜欢不那么激进的图标/消息类型,例如 MessageType mtInformation

有什么方法可以直接在 Exceptionclass 中更改图标,而无需在每次出现时使用try...except 再次引发和捕获它?

【问题讨论】:

    标签: delphi exception exception-handling delphi-2007


    【解决方案1】:

    您需要自定义顶级异常处理程序。

    编写一个事件处理程序并将其附加到Application.OnException。然后,您可以以任何您喜欢的方式处理特定异常。

    事件处理程序将如下所示:

    procedure TMainForm.ApplicationException(Sender: TObject; E: Exception); 
    begin   
      if E is EMyException then
        ShowExpectedMessageBox(E)
      else
        Application.ShowException(E);
    end;
    

    显然您必须为ShowExpectedMessageBox 编写代码。这可以使用您喜欢的任何图标显示消息框。

    当未处理的异常到达消息循环时调用OnException 事件。如果您没有事件处理程序,框架将调用Application.ShowException。对于那些没有得到你特殊待遇的例外情况,你应该怎么做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多