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
[50203] Re:Re:FormDestroy
[] 1211 읽음    2007-08-08 01:27
답변 감사합니다~

새 프로젝트를 만들어서 해보진 않았습니다만,

제가 지금 하고 있는게 a라는 메인폼이 항상 있고 b라는 폼을 또 생성해서 사용하는데요,

메인폼인 a가 끝날 땐 a 폼의 FormDestroy BP 가 걸립니다.

그런데... b 폼(풍선말 폼)을 띄울 때 또 다른 시점에 b폼을 띄우는 동작을 할 수가 있습니다. 고롤땐 이전 풍선말 폼을

지우고 최근거 하나만 띄워야 해서 현재 내가 NULL이 아니라면 delete 하고 폼을 다시 띄우려고 하는데요.

코드상으로는

b frm_b;

void b :: MsgBox()
{
    if( frm_b != NULL)
    {
       delete frm_b;
       frm_b = NULL;
       frm_b = new b();
    }
    else
    {
       frm_b = new b();    
    }
    frm_b->띄워();
}

그리고 b 클래스 내부에 FormDestroy 함수를 넣었습니다.

요로케 해쓸 때 조기 위에 delete frm_b 하는 시점에 FormDestroy 함수에 BP가 안걸리는데요..

문제 될건 없어 뵈는데 왜 BP가 안걸릴까요..? 수야님께서 말씀하신 메모리 침범문제는 몬가용?

혹시 저렇게 하면 안되는건가요? 만약 안된담 다른 방법 추천보담은 왜 안되는지좀 갈켜주시면 감사하겠어요~;;



수야!╋ 님이 쓰신 글 :
: 수얍니다.
:
: 기본적으로는 FormDestroy에 Break Point는 걸리게 되어있습니다.
:
: 걸리지 않는다면 메모리 침범이나 이벤트 함수와 연결이 되어있지 않은 상태의 가능성이 큽니다.
:
: 전체적인 상황을 알지 못하여 걸리지 않는 상황일 가능성이 크다고 생각되네요
:
: 정상적인 경우 걸리는지 않걸리는지 확인하시고자 한다면
:
: 새 프로젝트에서 해당 이벤트 함수를 생성해서 Break Point를 잡아보시기 바랍니다.
:
:
:
: 수 님이 쓰신 글 :
: : FormDestroy 함수는 해당 객체의 메모리를 해제할 때 호출되는 것으로 알고 있는데요..
: :
: : break를 걸어도 걸리지가 않네요..
: :
: : 원래 FormDestory는 break에 안걸리나요?

+ -

관련 글 리스트
50182 FormDestroy 1161 2007/08/06
50197     Re:FormDestroy 수야!╋ 1390 2007/08/07
50203         Re:Re:FormDestroy 1211 2007/08/08
50214             Re:Re:Re:FormDestroy 수야!╋ 1280 2007/08/08
50216                 Re:Re:Re:Re:FormDestroy 996 2007/08/08
50186     Re:FormDestroy 이현진 1158 2007/08/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.