나는 항상 양식의 수명주기 순서가 다음 코드에 적용되는 initialization -> Create -> OnCreate -> OnDestroy -> Destroy -> finalization
이라고 생각했습니다. 내가 조금 변경하면초기화 및 최종화 순서는 어떻게 결정됩니까?
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TUMain, UMain);
Application.Run;
그러나 ... 궁금 그래서 initialization -> Create -> OnCreate -> finalization -> OnDestroy -> Destroy
에
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TUMain, UMain);
if 1 = 2 then
Application.Run;
다음 TUMain
주문 변경하는 방법을 정확한 순서 제어 또는 적어도 변화의 원인이다 이 경우에는?
디버거를 살펴보십시오. 이 폼은'DoneApplication()'을 호출 할 때'Vcl.Forms.pas'의 유닛 파이널 라이즈에 의해 파괴됩니다. 유닛 초기화/종료에서 멀리 떨어져있는 것이 좋습니다. 생성자와 소멸자를 사용하십시오. 또는 원할 경우 시각적 양식의'OnCreate' 및'OnDestroy' 이벤트를 사용하십시오. –