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
[57999] Re:Re:Re:동적생성한 클래스 해제시...
소중한꿈 [xho95] 1213 읽음    2009-08-10 21:19
오, 장성호님의 좋은 답변 감사합니다. 저는 아직 갈 길이 머네요...

오늘 또 하나를 배우고 갑니다.

장성호 님이 쓰신 글 :
: VCL 컴포넌트에서는 Owner와 Parent에 대해 잘 알 필요가 있습니다.
:
: 아래 링크에 잘 설명되어있는데요..
: http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tutorial&no=38
:
: 간단히 설명하면
: 컴포넌트를 동적 생성하더라도 
: 생성시에 Owner를 정해주면 Owner가 free될때 같이 동적생성한 컴포넌트도 free가 되구요
:
: 컨트롤인경우 Owner가 없더라도
: parent가 있는 상태에서 parent가 free되면 그 위에 있는 control은 모두 free됩니다.
:
: 즉 님처럼 버튼에 Owner를 정해주지 않고  create했다하더라도  버튼의 parent ( 폼이나 패널 등..)이 있으면
: 해당 parent가 free될따 알아서 버튼이 free되죠
:
: 그럼..
:
:
: 소중한꿈 님이 쓰신 글 :
: : 동적으로 생성할 때 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:동적생성한 클래스 해제시... 아제나 1229 2009/08/07
57965     Re:동적생성한 클래스 해제시... 소중한꿈 1147 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.