가끔.. 아주 가끔.. 아무런 문제가 없어도 빌더의 버그로 에러가 나기는 합니다만..
대부분의 종료시의 에러는 메모리 해제나 포인터로 지정된 프로씨져등을 찾을 수 없을때 발생되는 문제입니다. 예를 들어, Application->OnMessage 같은 함수를 따로 지정해 두고 폼을 동적 생성시켜서 계속 OnMessage 함수를 바꿔줄때, 폼을 종료시에 OnMessage 처리를 정확히 하지 않으면 다른 곳으로 지정된 OnMessage 함수로 호출하는 경우입니다. 이 경우, 이미 객체가 소멸되었으니 찾을 수 없어 에러가 나겠지요.
메모리 부분에 관해서는 아래 게시물이 도움이 되실지도 모르겠습니다.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=18724
그리고, OnResize 이벤트는 폼이 줄어들거나, 커질때 모두 발생합니다. (지금 다시 확인도 해봤구요) 아무래도 그림을 그려주는 타이밍이나, 폼에 그려줄때, Refresh를 시켜주시지 않으셔서 그런지도 모르겠습니다. 폼에 그린 그림은 화면이 가려지면 지워집니다. 이 때는 OnPaint 이벤트가 발생하게 되구요..
아무래도 선을 그리는 루틴에 문제 원인이 있을 경우가 크겠네요. 그리고 OnResize는 사이즈가 변경된 후!!에 발생합니다. 그래서, OnResize에서 객체의 크기등을 얻어올 때, 변경된 후라고 생각하고 코딩을 하셔야 합니다.
Image 컴포넌트는 가려져도 지워지지 않습니다. 만약 폼의 OnPaint 이벤트를 따로 처리해주시기가 귀찮으시면 Image 컴포넌트를 Form에 씌워놓으시고, Image의 Canvas 에서 작업을 하셔도 괜찮으실 껍니다.
그리고, 기훈님 질문이 개인적으로 너무 난해합니다. 에러 메세지와 상황을 자세히 설명해 주시면 더 좋은 답변을 다른분들에게도 들을 수 있지 않을까 생각됩니다.
배기훈 님이 쓰신 글 :
: 위에껀 끄고 다시 하니깐 되긴하는데.. 뭔가 깨름칙하네용.. 다시 그러기도 해서리.. 그럴때 마다 껐다가 켜야 하는건지..
:
: 새로운 질문은 FormResize함수에다가 그림그리기를 했습니다.
:
: 근데 이상하게 OnResize이벤트가 이상하게도 폼이 작아질때 적용이 안됩니다.
: 폼을 늘릴때는 선이 같이 늘어나긴 하는데요.. 이상하게도 줄일땐 같이 안작아 지네용..ㅡ.ㅡ;;
|