C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[3400] Re:[질문] 더불어 희안한 현상 발견
박지훈.임프 [cbuilder] 3487 읽음    2000-04-28 00:00
ghost 님이 쓰신 글 :
: 임문환님의 답글 잘 봤습니다.
: 사실 빌더 초보로서 이것저것 건드리는 와중에 가르쳐주신 방법인
:    menuitem->OnClick = MyHandler;
: 을 해봤었던 것도 사실입니다. 그런데 그때는 안됐었거든요..
:
: 그 현상은 이렇습니다. 다음의 코드를 봐주세요.
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
:     ..... 중간생략 ....
:
:     MRUManager1->RecentMenu = PopupMenu1->Items;
:     MRUManager1->LoadFromIni(inip, szMRU1);
:
:     FilenameEdit1->Text = MRUManager1->Strings->Strings[0];
:     FilenameEdit1->Text = MRUManager1->Strings->Strings[1];  // 여기요~
:     PopupMenu1->Items->Items[0]->OnClick = MRU1Click;
:     PopupMenu1->Items->Items[1]->OnClick = MRU1Click;
: }
:
: Rxlib의 TMRUManager와 TFilenameEdit를 이용하는 부분이구요..
: ini 파일에서 MRUManager가 읽을 아이템이 한 개였다면
: 제가 "// 여기요~"라고 코멘트한 부분에서 런타임에 에라가 발생하겠죠.
: 그런데 프로그램이 다운되는게 아니라 assert failure일 때 나오는
: 에라 메시지하고 MRUManager가 보내는 에라 메시지 두 개가 나온 후에
: 프로그램이 정상적으로 돌더군요.
:
: 이 상태에서 팝업메뉴의 OnClick이 동작하지 않더라는 겁니다.
: 마지막줄에 브레이크 포인트를 잡아놓고 스텝으로 실행시켰더니
: 역시 문제가 있는 코드에서 에라 메지지가 나오더군요.
:
: 그런데 다음이 이상했어요. F8을 누르면 다음 문장으로 가는 것이
: 아니라 ProjectName.cpp에 있는
:
:    Application->Run();
:
: 에 커서가 있는 거에요. 즉, 위의 FormCreate()의 나머지 문장은
: 빼먹고 넘어간 것이죠. 그렇다면 위에서 에라가 난 문장을 실행할 때
: 에라 메시지가 뜨고 리턴이 됐다는 소리인데 이게 가능한 겁니까?
:
: 물론 저 라인을 지우고 나니 OnClick 이벤트 핸들러가 잘 실행이 됬습니다.



임펠리테리입니다.

Rxlib의 TMRUManager를 써본 적이 없어서 그 부분에 대한 답변은 빼구요.
런타임 에러라고 하셨지만, 정확하게는 익셉션입니다. 익셉션이 발생하면 현재 실행중인 코드를 무조건 빠져나가게 됩니다. 물론 익셉션 처리를 안했을 경우에요. 정적으로 생성된 폼에 포함된 컴퍼넌트들의 생성 및 초기화는 그 폼의 CreateForm() 함수에서 수행되는데, 컴퍼넌트 생성중 익셉션이 발생했으므로 CreateForm() 함수를 빠져나가 그다음의 Run()으로 넘어가게 된 걸겁니다.

참고나 되시길...

+ -

관련 글 리스트
3379 Run-time에 만든 Popup Menu의 Item에 대한 이벤트 핸들러는 어떻게 만들죠? ghost 3465 2000/04/26
3382     Re:Run-time에 만든 Popup Menu의 Item에 대한 이벤트 핸들러는 어떻게 만들죠? 임문환 3798 2000/04/26
3386         [질문] 더불어 희안한 현상 발견 ghost 3401 2000/04/27
3400             Re:[질문] 더불어 희안한 현상 발견 박지훈.임프 3487 2000/04/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.