フォームを使用した後に Form.Release が呼び出されると、関連するすべてのメモリが解放されますが、フォーム変数は nil に設定されません。
if not assigned (Form1) then
begin
Application.CreateForm(Tform1, Form1);
try
// Do something
finally
Form1.Release
end;
end;
同じコードを再度呼び出せるようにするには、Form1 をある時点で nil に設定する必要があります。Release の説明より
Form1 := nil;
Release の直後。これは、Release プロシージャが呼び出された直後、フォームが実際に解放される前に戻るためです。Form.Release が終了してフォーム var が nil に設定されるタイミングを検出できません。
これを行う最善の方法は何ですか?