2013-04-25 69 views
0

在我們的應用程序中,我們爲所有需求創建了幾個異常類。但現在的問題是,引發的異常對話總是MessageType mtError,當然顯示mtError -Icon。
對於我們的一些例外,我寧願不積極圖標/ MessageType,例如MessageType mtInformationDelphi中引發異常的更改圖標

有什麼方法可以直接在Exceptionclass中更改圖標,而不會在每次出現的時候再次使用try...except進行提升和捕獲?

回答

5

您將需要自定義頂級異常處理程序。

編寫一個事件處理程序並將其附加到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。對於那些沒有得到特殊待遇的例外,你應該怎麼做。

+0

謝謝!按預期完美工作。 – 2013-04-25 07:53:46