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
[62910] 동적생성한 컴포넌트를 제대로 제거하려면 어떻게 해야 하나요?
동철이 [] 1176 읽음    2010-11-05 17:29
폼 하나에다 버튼하나가 있고 그 버튼을 클릭하면 달력컴포넌트(TMonthCalendar)가 뜨게 합니다. 거기서 날짜정보를 받고 이 컴포넌트를 닫으려고 다음과 같이 해주니깐 access violation error가 납니다.

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
        calendar = new TMonthCalendar(this);
        calendar->Parent = Form1; 
        calendar->Left = 68;
        calendar->Top = 240;
        calendar->Width = 60;
        calendar->Height = 70;

        calendar->OnClick = calendarEvent;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::calendarEvent(TObject *Sender)
{
        TDateTime pdate;
        AnsiString str;
        pdate = calendar->Date;
        str = pdate.DateString();
        ShowMessage(str.SubString(1,4));
        ShowMessage(str.SubString(6,2));
        ShowMessage(str.SubString(9,2));
        delete calendar; // <-- 이 부분 실행 후 에러 발생.
}


저도 new 한 함수와 delete한 함수가 서로 다른데서 찜찜한 감이 오긴 왔습니다만...

보통 컴포넌트를 동적으로 불러내고 메모리에서 삭제하려면 이런 식으로 하면 안되는 건가요?

아예 그냥 프로그램에서 알아서 힙 메모리에서 해제하도록 delete 안하는게 나을까요?

+ -

관련 글 리스트
62910 동적생성한 컴포넌트를 제대로 제거하려면 어떻게 해야 하나요? 동철이 1176 2010/11/05
62915     Re:동적생성한 컴포넌트를 제대로 제거하려면 어떻게 해야 하나요? 장성호 1471 2010/11/06
62917         Re:Re:동적생성한 컴포넌트를 제대로 제거하려면 어떻게 해야 하나요? 워프 2155 2010/11/06
62921             Re:Re:Re:동적생성한 컴포넌트를 제대로 제거하려면 어떻게 해야 하나요? 장성호 1533 2010/11/07
62927                 Re:Re:Re:Re:동적생성한 컴포넌트를 제대로 제거하려면 어떻게 해야 하나요? 워프 1149 2010/11/08
62911     Re:동적생성한 컴포넌트를 제대로 제거하려면 어떻게 해야 하나요? 도라지 1200 2010/11/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.