我总是尝试创建我的应用程序的内存使用,如果你不需要它,那么不创建它是我看的方式.
无论如何,以下列为例:
Form2:= TForm2.Create(nil); try Form2.ShowModal; finally Form2.FreeOnRelease; end;
我实际上认为Form2.Destroy可能是更好的选择,这带给我我的问题..
调用之间有什么区别?
Form2.Destroy; Form2.Free; Form2.FreeOnRelease;
他们都做相同或相似的工作,除非我错过了一些事情.
还应该使用以上任何一种?显然,当释放对象时我明白了,但在某些情况下,Destroy比Free更适合?
@H_502_16@解决方法
Form2:= TForm2.Create(nil);
这是一个代码气味,因为Form2可能是全局IDE生成的变量,通常会保存一个IDE创建的TForm2.你最有可能想使用一个局部变量,一个名字更好.这不是必需的错误,只是一个代码气味.
Form2.Destroy vs Form2.Free
使用Form2.Free,因为它调用Destroy反正.您可以CTRL点击名称(免费)来查看它的实现.基本上免费电话如果自我不是零,就会毁灭.
Form2.FreeOnRelease
正如documentation所说:“不用直接调用FreeOnRelease.”
@H_502_16@ @H_502_16@