2013-10-08 3 views
3

좋아, 현재 IT를 사용하는 11 학년 학생입니다. Practical 과제를 끝내려고하지만 약간의 문제가 생겼습니다. 사용하고있는 교과서가 RichEdit에 데이터를 입력하지 않은 경우 오류 메시지를 만드는 방법을 보여주지 않았습니다. 아무도 이걸하는 방법에 대해 조언을 해줄 수 있습니까? 도움을 주셔서 감사합니다.오류 메시지 만들기 Delphi 7

+1

일예를 유효성 검사를 할 이벤트 (보통'OnExit' 이벤트)에서이 경우'RichEdit1.Text = '', 그런 다음 MessageDlg ('필드를 비워 둘 수 없습니다!, mtError, [mbOK], 0)'와 같이 입력하십시오. – 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.SysUtils입니다. MessageDlgCreateMessageDialogVcl.Dialogs입니다.

또는 TApplication.MessageBox() 방법을 사용

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

또,'MessageDlg()'대신'TApplication.MessageBox()'또는'Winapi.MessageBox()'를 사용하면 캡션을 입력 매개 변수로 설정할 수 있습니다. –

+1

@RemyLebeau, 대답 ​​해 주셔서 감사합니다. –

+0

또 다른 고려해야 할 점은 특정 유형의 예외를 잡아 내고 하나의 메시지 상자 등으로 한 곳에서 보편적으로 처리하는보다 체계적인 방법을 허용하는 'ENoContent'와 같은 자체 예외 유형을 만드는 것입니다. –