我有一个动态创建的表单需要销毁:
AssignData
成功,或AssignData
崩溃。由于表单由应用程序拥有,因此仅在其上调用FreeAndNil
是不安全的。但是Close
也行不通;它不会关闭窗口。
FrmLoader:= TFrmLoader.Create(Application); <----- Application is the Owner
TRY
FrmLoader.AssignData(FileData);
EXCEPT
FreeAndNil(FrmLoader); // <------ unsafe
FrmLoader.Close; // <------ this is the safe method to close it but won't work
RAISE;
END;
FrmLoader.DoStuff;
答案 0 :(得分:3)
在拥有的表单上调用Free
是完全安全的。或者将表单传递给FreeAndNil
。这是处理表单的正确方法。
因此,此代码可以满足您的需求。
FrmLoader:= TFrmLoader.Create(Application);
TRY
FrmLoader.AssignData(FileData);
EXCEPT
FreeAndNil(FrmLoader);
RAISE;
END;