안녕하세요~~
메인폼에서 Form_A 을 showmodal로 뛰우고,
Form_A는 create시 동적으로 버튼를 생성한 상태에서
현재활성화된 창은 Form_A입니다.
그런데 메인폼에서 Timer가 돌면서 일정시간이 되면 메인폼을
Applicatoin.Terminate 를 호출해 프로그램을 종료하게되면
Form_A에서 생성된 button의 메모리는 어떻게 될까요?
=========== Form2가 create될때 동적으로 생성된 버튼===========
Tfrom_A.Create(sender :Tobject);
var
button :Tbutton
begin
button := TButton.Create(self);
button.parent := self;
..
.
end;
==================================================
TApplication.Terminate Method
Description :
Call Terminate to end the application programmatically. By calling Terminate rather than freeing the application object, you allow the application to shut down in an orderly fashion.
Terminate calls the Windows API PostQuitMessage function to perform an orderly shutdown of the application. Terminate is not immediate.
Terminate is called automatically on a WM_QUIT message and when the main form closes.
해석에 조금만 신경쓰시면 이해하기 쉽겠죠?
메인폼이 닫히니 자연히 동적으로 만드신 버튼도 폼이 Free되면서 Owner가 MainForm으로 설정되어 있기 때문에 메모리에 해제됩니다.
즐거운 코딩되시기 바랍니다.