|
이영수 님이 쓰신 글 :
: MyButton = new TButton(this);
: MyButton->Parent = this;
: MyButton_>Caption = "Dynamic Button";
: MyButton->Width = 250;
: MyButton_>Show();
: 이렇게 동적으로 생성한 버튼이 있을 때
: 프로그램 종료시..이버튼을 delete 해야 되나요?
: 책에선..소유자(this)가 자동으로 제거를 해준다는 방향으로
: 가는듯 싶은데.. 시원하지가 않네요...
: 혹 정확히 아시는 분..답변좀 해주세요.
:
답변이 되길 바라며...
Runtime에 코드에 의해 동적 생성된 object는 적절한 시기에 free 시켜 줘야 합니다.
예: FormClose handler에서...
MyButton->Free(); // delete operator를 써도 될 것입니다.
만약, 자동으로 해제되길 바란다면, 자신이 free될 때 자신이 소유(own)한 class object들을
자동으로 해제하는, button이 놓이는 form을 button의 owner로 설정해 두십시오.
그럼 (아마도,.. 직접 해보진 않아서 '아마'라는 말을 씁니다)
form이 없어질 때 button도 같이 없어질(free) 것입니다.
코드예:
대략 MyButton->Parent = this; 전후에:
MyButton->Owner = this;
최성규
|