好久没有来了和大家一起讨论个小问题(300)

  • 主题发起人 主题发起人 jiajiajia888
  • 开始时间 开始时间
J

jiajiajia888

Unregistered / Unconfirmed
GUEST, unregistred user!
Application.CreateForm(TForm1,Form1); try Form1.Show; finally Form1.FreeOnRelease; end;以前调用窗体一直这么写,写了很多年。最近一个朋友说帮助文件里讲,FreeOnRelease是接口方法,内部函数,一般不直接调用。 所以今天请大家讨论一下,这个问题。freeOnRelease用在这里合适吗?如果可以用,什么时候有必要去用?请大家抱着求真的态度来讨论。分不够我再开贴
 
我一般用Free。
 
Delphi帮助:Frees the interface reference for components that were created from COM classes. (释放一个由COM类创建的并已赋值给component的接口)FreeOnRelease is called when an interface implemented by the component is released. FreeOnRelease is used internally and calls the corresponding interface method. It should not be necessary to call FreeOnRelease directly.-------注意最后一句话。同意你朋友的话。另外,你调用了也没有用,查看FreeOnRelease函数如下:procedure TComponent.FreeOnRelease;begin if FVCLComObject <> nil then IVCLComObject(FVCLComObject).FreeOnRelease;end;因为Form1.VCLComObject=nil,所以,该函数不会执行任何动作。只有当外界创建了IVCLComObject对象,并赋值给某个TComponent的VCLComObject属性,调用FreeOnRelease才有意义。
 
多人接受答案了。
 
后退
顶部