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
[50472] [Q] TForm의 유효기간?
땅주인 [heaven2] 1343 읽음    2007-09-05 19:19
메인 윈도우에서 여는 서브 윈도우의 Close Event에서 가지고 있던 Resource를 자동 해제하려고 이렇게 썼습니다.

void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
    Action = caFree;
}

근데, 메인 윈도우에서 Form2를 열고, 닫은 후에도 Form2의 변수 값에 접근할 수 있고,
그런데.. delete는 할 수 없고.. 이게 어찌된 영문 인 지?

[ Main Window의 Button Event ]

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TForm2 *pForm = new TForm2(this);

    pForm->ShowModal(); // 모달 상자로 열었음.

    k =pForm->m_ikk;         // Form2의 멤버에 접근이 가능함.

    delete pForm;              // Access Violation나옴.
}

변수값은 Access가능하고, Form를 delete할 때는 에러나고.. 속시원히 해결을 좀?
Action = caFree이면 폼이 가지고 있던 모든 리소스도 해제되는 것 아닌가요?

그리고, 사실 다른 곳에서 썼던 스크립트는 위와 비슷한 코드인데.. delete pForm에서 전혀 에러를 내지
않고 잘 나갑니다. 가끔 프로그램이 Access Violation을 내는데..여긴 지 아닌 지는 잘 모르겠지만..
어쨌거나 잘 돌아가는 경우가 더 많다는 것이죠.. 좀 헷갈려서..... 속시원히 해결해 주실분 부탁해요..

감사합니다.

+ -

관련 글 리스트
50472 [Q] TForm의 유효기간? 땅주인 1343 2007/09/05
50474     Re:[Q] TForm의 유효기간? 장성호 1570 2007/09/05
50476         Re:Re:[Q] TForm의 유효기간? 우리 1661 2007/09/06
50480             Thanks..Thanks..Thanks... 땅주인 1381 2007/09/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.