안녕하세요..좋은 아침입니다..
영원한 델초보..어린왕자라구 하옵니다..
근데..약간..아니 마니 헷갈린게 있어서 질문하옵니다..
컨포넌트를 동적으로 생성해줬는데...
마지막에..Free를 어쩔때..꼭 해줘야 하나요?
만일 폼에서 버튼을 동적으로 만들었습니다..
var
button1:TButton;
begin
button1:=TButton.Create(Form1);
이라고 했을때..
언제 프리를 해줘야할지..
저가 책에서 봤는데..Create(nil); 때는 직접 프리를 시켜야 없어진다구..했는데..
나머지는 프리를 안해줘두..프로그램이 끝난후에두..말끔히 청소가 됩니까?
음..
고수님들의..자세한 설명 부탁합니다..
free는 버튼의 사용이 끝났을때 해주시면 되죠....
말씀처럼.. 해당콤포넌트의 부모가 종료될때 당연히 이부모가 자식들을 free시킬 의무를
갖습니다..
따라서 아직 사라지지 않은 모든 메모리 설정을 해제 합니다....
그런데 Create(nil);로 만들어 준건 이건 부모를 지정하지 않았으니 부모를 알수 없습
니따 따라서 프로그래머가 직접 날려 주어야 하고
Create(self); 보통 이렇게 하죠?? 이렇게 하면 코드가 있는 폼이 부모가 되죠..
그럼 해당폼이 종료될때 같이 됩니다..
하지만.. 직접해주는게 좀더 좋은 코딩 방법이겠죠?????
날려준다고 나쁠건 없으니..
그럼.. 즐거운시간되세요..
- 하얀까마귀 -
어린왕자 wrote:
> 안녕하세요..좋은 아침입니다..
> 영원한 델초보..어린왕자라구 하옵니다..
> 근데..약간..아니 마니 헷갈린게 있어서 질문하옵니다..
> 컨포넌트를 동적으로 생성해줬는데...
> 마지막에..Free를 어쩔때..꼭 해줘야 하나요?
>
> 만일 폼에서 버튼을 동적으로 만들었습니다..
> var
> button1:TButton;
> begin
> button1:=TButton.Create(Form1);
>
> 이라고 했을때..
> 언제 프리를 해줘야할지..
>
> 저가 책에서 봤는데..Create(nil); 때는 직접 프리를 시켜야 없어진다구..했는데..
> 나머지는 프리를 안해줘두..프로그램이 끝난후에두..말끔히 청소가 됩니까?
> 음..
> 고수님들의..자세한 설명 부탁합니다..
>