::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-05 10:26:47, Hit : 4125, Vote : 1102
 Global exception handler 만들기

// Application 전체에서 발생하는 Exception(예, divide by zero, out of space)
// 을 검사할 수 있는 global exception handler는 TApplication의 "OnException"
// 이벤트를 사용하여 구현합니다

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure MyExceptionHandler(Sender: TObject; E: Exception);
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.MyExceptionHandler(
  Sender : TObject; E : Exception );
var
  wRetVal : Word;
begin
  // Exception 메시지를 화면에 보여준 후 다음 진행상태(Abort, Retry, Ignore)
  // 를 사용자로 부터 받는다
  wRetVal := MessageDlg('ERROR: ' + E.Message, mtError, mbAbortRetryIgnore, 0);

  case wRetVal of
    mrAbort:
      begin
        {"Abort" 시 처리할 코드}
      end;
    mrRetry:
      begin
        {"Retry" 시 처리할 코드}
      end;
    mrIgnore:
      begin
        {"Ignore" 시 처리할 코드}
      end;
    else
      begin
        {사용자자 버튼을 누르지 않고 종료할때 처리할 코드}
      end;
  end;

  // 아래는 default exception handler 입니다
  // Application.ShowException(E);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // 새로운 exception handler 를 application의 OnException event에 할당한다
  Application.OnException := MyExceptionHandler;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  // "divide by zero" except를 발생시켜 본다
  i := 0;
  i := 10 div i;
  Showmessage(IntToStr(i));
end;

end.





171   [시스템] Thread 사용하기  김영대 2003/03/07 4260 1160
170   [일반/컴포넌트] C & Pascal 데이터 타입 비교  김영대 2003/03/05 4259 1138
169   [일반/컴포넌트] ComboBox 를 강제로 드롭시키기  김영대 2003/03/05 4251 1136
168   [윈도우즈 API] 디스크 캐쉬의 파일을 디스크로 쓰기  김영대 2003/03/05 4247 1133
167   [윈도우즈 API] 사용자정의 caption(title) bar 만들기  김영대 2003/03/04 4239 1273
166   [일반/컴포넌트] 표준 TListBox 에 Radio 버튼 올리기  김영대 2004/07/27 4237 1158
165   [일반/컴포넌트] OnActivate 이벤트 내에서 폼 확실히 닫기  김영대 2003/03/07 4237 1089
164   [일반/컴포넌트] 숫자의 근사치 구하기  김영대 2003/03/07 4234 1133
163   [일반/컴포넌트] 주어진 문자열에 잘못된 숫자값이 들어있는지 검사  김영대 2003/03/04 4224 1217
162   [일반/컴포넌트] 레지스트리의 기본 RootKey 바꾸기  김영대 2003/03/05 4222 1278
161   [일반/컴포넌트] TEdit의 OnChange에서 Text 바꾸기  김영대 2003/03/04 4221 1220
160   [윈도우즈 API] 레지스트리 전체 검색하기  김영대 2003/03/07 4219 1141
159   [일반/컴포넌트] 문자열 찾아서(Search) 바꾸기(Replace)  김영대 2003/03/04 4216 1252
158   [일반/컴포넌트] 윈도우즈"시작" 버튼위에 글씨 쓰기  김영대 2004/07/24 4211 1156
157   [윈도우즈 API] 키보드의 Scroll Lock 켜기/끄기  김영대 2003/03/07 4210 1135
156   [시스템] Boot Drive 찾기  김영대 2003/03/04 4207 1245
155   [데이터베이스] 동적으로 SELECT의 GROUP BY 문 만들기  김영대 2003/03/07 4201 946
154   [일반/컴포넌트] Form의 Caption 에서의 Click 알아내기  김영대 2003/04/01 4199 1047
153   [멀티미디어] wave파일 연주  김영대 2003/03/04 4190 1212
152   [일반/컴포넌트] ListBox에서 마우스 이동시 아이템을 힌트로 보여주기  김영대 2003/03/27 4188 1116
151   [일반/컴포넌트] ListBox의 Item을 버튼으로 계속 삭제하기  김영대 2003/03/07 4184 1135
150   [일반/컴포넌트] Memo의 입력행수 제한하기  김영대 2003/03/07 4181 1179
149   [시스템] CPU speed 구하기 2  김영대 2003/03/07 4179 1186
148   [일반/컴포넌트] INI 파일이 저장을 안 해?  김영대 2003/03/05 4172 1114
147   [일반/컴포넌트] 연속된 키보드의 키 발생시키기  김영대 2003/03/07 4171 1129
146   [일반/컴포넌트] 커서(캐럿)가 line 위에 있는지 검사하기  김영대 2003/03/07 4170 1103
145   [일반/컴포넌트] Form이 생성되어 있는지 검사하기  김영대 2003/03/05 4169 1215
144   [윈도우즈 API] Menu가 open되어 있는지 검사하기  김영대 2003/03/04 4168 1277
143   [윈도우즈 API] Memo 에 임의의 tab stops 설정하기  김영대 2003/03/04 4165 1331
142   [데이터베이스] 테이블,인덱스 복사하기  김영대 2003/03/07 4164 1426
141   [데이터베이스] dBase 테이블의 삭제된 레코드 보기  김영대 2003/03/07 4161 1120
140   [일반/컴포넌트] Menu의 Item을 동적으로 만들기  김영대 2003/03/05 4140 1111
139   [일반/컴포넌트] wild card(*,?)문자와 일치  김영대 2003/03/04 4140 1133
138   [일반/컴포넌트] 특정한 폴더로 이동한 DOS 창 띄우기  김영대 2003/03/07 4131 1136
137   [데이터베이스] Blob 필드에서 다른 Table의 Blob 필드로 복사를 하려면...  김영대 2003/03/05 4130 1097
136   [일반/컴포넌트] Hint 표시의 속도조절  김영대 2003/03/05 4128 1110
135   [데이터베이스] 데이타베이스 로그인(login) 화면 띄우기  김영대 2003/03/07 4127 1032
  [일반/컴포넌트] Global exception handler 만들기  김영대 2003/03/05 4125 1102
133   [일반/컴포넌트] 폼의 형태 바꾸기  김영대 2003/03/05 4121 1098
132   [일반/컴포넌트] Unix-format time 을 TDateTime 로 바꾸기  김영대 2003/03/07 4110 1123

[이전 10개] [1].. 21 [22][23][24][25]
 

Copyright 1999-2023 Zeroboard / skin by zero