2013-10-08 150 views
3

好吧,我目前是一個11年級的學生,這是IT。我正在嘗試完成一項實用任務,但遇到了一些問題,我正在使用的教科書沒有告訴我如何在用戶沒有將數據輸入到RichEdit中時創建錯誤消息。任何人都可以告訴我如何做到這一點?感謝您花時間幫助。創建錯誤消息德爾福7

+1

例如這種方式'如果RichEdit1.Text =''然後MessageDlg('該字段不能爲空!',mtError,[mbOK],0)'在將進行驗證的事件中(通常是'OnExit'事件)。 – TLama

+0

謝謝!那很快...現在嘗試。 – DNgentle

+1

@DNgentle一個建議是積極主動的,在把槍放下之前使用你的資源給你:-)。 –

回答

4

這是你如何養育一個通用的異常(使用SysUtils.Exception類):

raise Exception.Create('Error Message'); 

未處理的異常會導致執行路徑逃入德爾福RTL的內部默認的異常處理程序,它會再次出現對用戶的價值Exception.Message

你甚至可以處理自己的異常這樣的:

try 
    ... 
    raise Exception.Create('Error Message'); 
    ... 
except 
    on E: Exception do 
    begin 
    ShowMessage(E.Message); 
    end; 
end; 

你不會真正做到這一點,雖然。您引發異常,以便調用您的方法的代碼可以處理該錯誤。

如果您想在其他地方(在調用者中)處理錯誤,請引發異常。

要簡單的顯示系統標準的錯誤對話框,您可以使用MessageDlg

MessageDlg('Error Message', mtError, [mbOK], 0); 

在這種情況下,窗口的標題是簡單的「錯誤」。如果你必須設置一個標題,使用CreateMessageDialog

with CreateMessageDialog('Error Message', mtError, [mbOK], mbOK) do 
begin 
    try 
    Caption := 'Error Caption'; 
    ShowModal; 
    finally 
    Release; 
    end; 
end; 

Exception類是在System.SysUtilsMessageDlgCreateMessageDialogVcl.Dialogs

或者使用TApplication.MessageBox()方法:

Application.MessageBox('Error Message', 'Error Caption', MB_OK or MB_ICONERROR); 
+0

或者,如果使用'TApplication.MessageBox()'或'Winapi.MessageBox()'而不是'MessageDlg()',則可以將標題設置爲輸入參數。 –

+1

@RemyLebeau,感謝您提高答案。 –

+0

要考慮的另一件事是創建自己的異常類型,例如'ENoContent',它允許更系統地捕獲某些類型的異常,然後通過一個消息框在一個地方進行通用處理等。 –