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
[57965] Re:동적생성한 클래스 해제시...
소중한꿈 [xho95] 1146 읽음    2009-08-06 17:07
동적으로 생성할 때 Owner 값을 해당 Form 으로 지정하면 Form 이 알아서 메모리를 해제해 줍니다.

TButtonEx 는 TButton을 상속받아 만드셨으니 자동으로 Owner 속성을 가집니다. 따라서 Form 생성자에 다음과 같이 Owner 를 Form1 로 지정해 주면 자동으로 메모리를 해제합니다.

__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
	ButtonEx1  = new TButtonEx(this);    // 'this' 대신 'Form1'이 와도 되겠죠.
}


컴포넌트의 Owner 는 Owner 자신이 메모리에서 해제될 때 자신이 가지고 있는 컴포넌트들의 메모리를 알아서 해제해 줍니다. 참고로 기본 컴포넌트들은 Builder 가 알아서 Owner 를 Form 으로 지정해 주므로 신경쓰시지 않아도 됩니다.

Owner 를 NULL 로 지정할 경우, 메모리를 직접 해제해 줘야 하는 걸로 압니다만, 확실하진 않네요...

빌더스게이트 님이 쓰신 글 :
: 안녕하세요...
:
: TButton클래스를 서브클래싱 해서 TButtonEx라는 놈을 만들었는데요...
: 저놈을 동적생성해서 사용하고 프로그램이 닫히면 다른 기본 컨트롤 콤포넌트들처럼 자동으로 해제가 되는건가요?
: 아니면 동적생성 했기때문에 프로그램 종료 부분에 제가 수동으로 delete해줘야 하는건가요?

+ -

관련 글 리스트
57962 동적생성한 클래스 해제시... 빌더스게이트 1088 2009/08/06
57967     Re:동적생성한 클래스 해제시... 아제나 1228 2009/08/07
57965     Re:동적생성한 클래스 해제시... 소중한꿈 1146 2009/08/06
57990         Re:Re:동적생성한 클래스 해제시... 장성호 1056 2009/08/10
57999             Re:Re:Re:동적생성한 클래스 해제시... 소중한꿈 1213 2009/08/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.