안녕하세요. 천리안 프로그래머 포럼 델파이 담당자 댁스터(강범석)입니다.
결론적으로 올리신 소스는 아주 약간만 손보면 아주 잘 작동합니다.
천방님께서 말씀하신대로 예외가 발생하는 것을 미리 검사를 하는 것으로 방지하
는 것도 좋은 방법이지만, 미리 검사를 하지 않더라도 예외처리기가 알아서 해주
기 때문에 걱정하지 않아도 됩니다.
try
findkey([edit1.text]); //integer롤 정의된 table의 field를 검색
except on EDatabaseError do
begin // begin을 추가하셔야 합니다.
showmessage('숫자를 입력하세요');
edit1.clear;
edit1.setfocus;
end; // except문의 begin의 end
end; // try...except 문의 end
요렇게 하시면 edit1에서 숫자가 아닌 문자가 들어오면 말씀하신대로
EDatabaseError라는 예외가 발생하죠... 그럼 위 소스에서 begin ~ end사이의
문장을 자동으로 실행해 줍니다.
단, IDE상에서 실행했을 때는 예외가 났다는 것이 델파이 IDE상에 메지시 박스로
보여지지만, 실제 프로젝트를 컴파일하여 만들어진 exe파일을 실행하여 똑같이
문자를 넣어서 예외를 발생시켜 보세요. 그럼 예외가 났다는 이상한(?) 메시지
박스가 안 뜨고 위 예외처리 구문이 정확하게 동작 할껍니다.
그럼 참고하세요.
┏━━━┳━┳━┳━━━┳━┳━┳━━━┳━━━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ __ ┃
┃ ┃ ┃ ━┫ ┃ ┃ ━┫ ┃
┃ ┃ ┃ ┣━ ━┫ : ┃ ┃ ━┫
┃ ┃ ┃ ━┫ ┃ ┃ ━┫ ┃
┗┓ ┏┫ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┗━┛┗━┻━┻━━━┻━┻━┻━━━┻━━━┻━┻━┛
|