-
2011. 4. 21. 05:53 Tutorials/IDE]Delphi 7.2
델파이 반복문 과 예외처리를 다루어 볼것 입니다.
procedure
TForm1.onExcept(Sender: TObject; E:
Exception);begin
//예외 직접 처리
MessageBox(HWND_DESKTOP, PChar( E.Message ) , '헉! 오류가 발생 하였습니다!', MB_ICONINFORMATION );
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);//while
var i: Cardinal;
begin
i := 0;//변수 초기화 필요
while i<=100 do begin
Self.Caption := IntToStr(i);
Application.ProcessMessages;//창 메세지 처리
Sleep(10);
Inc(i);
end;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);//for
var i: Cardinal;
begin
for i := 0 to 100 do begin
Self.Caption := IntToStr(i);
Application.ProcessMessages;//창 메세지 처리
Sleep(10);
end;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);//repeat
var i: Cardinal;
begin
i := 0;//변수 초기화 필요
repeat
Self.Caption := IntToStr(i);
Application.ProcessMessages;//창 메세지 처리
Sleep(10);
Inc(i);
until i>100;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);//error
var void: Pointer;//포인터 변수
begin
void := 0; //0 주소 대입
try //예외 처리문
PDWORD(void)^ := 0;//포인터 값 쓰기 동작
except //or finally
{
except - 예외기 발생할때만 실행
finally - 예외가 있던 없던 마지막에 실행
}
end;
PDWORD(void)^ := 0; //포인터 값 쓰기 동작
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);//Exception On
begin//예외 처리 이벤트 등록
Application.OnException := onExcept;
end;
procedure TForm1.SpeedButton6Click(Sender: TObject);//Exception Off
begin//예외 처리 이벤트 해제
Application.OnException := nil;
end;
//예외 직접 처리
MessageBox(HWND_DESKTOP, PChar( E.Message ) , '헉! 오류가 발생 하였습니다!', MB_ICONINFORMATION );
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);//while
var i: Cardinal;
begin
i := 0;//변수 초기화 필요
while i<=100 do begin
Self.Caption := IntToStr(i);
Application.ProcessMessages;//창 메세지 처리
Sleep(10);
Inc(i);
end;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);//for
var i: Cardinal;
begin
for i := 0 to 100 do begin
Self.Caption := IntToStr(i);
Application.ProcessMessages;//창 메세지 처리
Sleep(10);
end;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);//repeat
var i: Cardinal;
begin
i := 0;//변수 초기화 필요
repeat
Self.Caption := IntToStr(i);
Application.ProcessMessages;//창 메세지 처리
Sleep(10);
Inc(i);
until i>100;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);//error
var void: Pointer;//포인터 변수
begin
void := 0; //0 주소 대입
try //예외 처리문
PDWORD(void)^ := 0;//포인터 값 쓰기 동작
except //or finally
{
except - 예외기 발생할때만 실행
finally - 예외가 있던 없던 마지막에 실행
}
end;
PDWORD(void)^ := 0; //포인터 값 쓰기 동작
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);//Exception On
begin//예외 처리 이벤트 등록
Application.OnException := onExcept;
end;
procedure TForm1.SpeedButton6Click(Sender: TObject);//Exception Off
begin//예외 처리 이벤트 해제
Application.OnException := nil;
end;