Formにconstructor/destructorを追加して確認
----------------------------------------------------------------------------------------------
constructor TFormUnit.Create(AOwner: TComponent);
begin
OutputDebugString(PChar('○TFormUnit.Create Before inherited○'));
inherited;
OutputDebugString(PChar('○TFormUnit.Create After inherited○'));
end;
destructor TFormUnit.Destroy;
begin
OutputDebugString(PChar('○TFormUnit.Destroy○'));
inherited;
end;
begin
OutputDebugString(PChar('○TFormUnit.Create Before inherited○'));
inherited;
OutputDebugString(PChar('○TFormUnit.Create After inherited○'));
end;
destructor TFormUnit.Destroy;
begin
OutputDebugString(PChar('○TFormUnit.Destroy○'));
inherited;
end;
----------------------------------------------------------------------------------------------
結果
デバッグ出力: ○initialization○ プロセス Project1.exe (3000)
デバッグ出力: ○TFormUnit.Create Before inherited○ プロセス Project1.exe (3000)
デバッグ出力: ◎TFrameUnit.Create◎ プロセス Project1.exe (3000)
デバッグ出力: ○TFormUnit.Create After inherited○ プロセス Project1.exe (3000)
デバッグ出力: ○TFormUnit.FormCreate○ プロセス Project1.exe (3000)
これを、OldCreateOrder = True にすると
----------------------------------------------------------------------------------------------
デバッグ出力: ◎initialization◎ プロセス Project1.exe (3000)デバッグ出力: ○initialization○ プロセス Project1.exe (3000)
デバッグ出力: ○TFormUnit.Create Before inherited○ プロセス Project1.exe (3000)
デバッグ出力: ◎TFrameUnit.Create◎ プロセス Project1.exe (3000)
デバッグ出力: ○TFormUnit.Create After inherited○ プロセス Project1.exe (3000)
デバッグ出力: ○TFormUnit.FormCreate○ プロセス Project1.exe (3000)
----------------------------------------------------------------------------------------------
これは、 Formのプロパティ OldCreateOrder = False (Default) の場合これを、OldCreateOrder = True にすると
----------------------------------------------------------------------------------------------
デバッグ出力: ◎initialization◎ プロセス Project1.exe (2836)デバッグ出力: ○initialization○ プロセス Project1.exe (2836)
デバッグ出力: ○TFormUnit.Create Before inherited○ プロセス Project1.exe (2836)
デバッグ出力: ◎TFrameUnit.Create◎ プロセス Project1.exe (2836)
デバッグ出力: ○TFormUnit.FormCreate○ プロセス Project1.exe (2836)
デバッグ出力: ○TFormUnit.Create After inherited○ プロセス Project1.exe (2836)
----------------------------------------------------------------------------------------------
FormCreateのタイミングが変わる。