关于Delphi释放对象资源的小建议

    目前Delphi中释放对象资源的方式主要有方法FreeFreeAndNil,对于窗体对象还有Release方法,对于窗体资源(Form)这三者的主要区别如下:

        Free是直接释放资源,然后触发OnDestroy事件,但没有将Form指针改为nil

        Release 是等待资源不再使用后才释放资源,同样不将Form指针为nil

        FreeAndNil 是将对象资源释放掉并且将指针指向nil

    因此在释放对象资源时,Destroy中最好使用Release进行资源释放操作,而不用Free;对于局域变量的释放,建议使用FreeAndNil这样效率会高些,能提高内存的利用率。

    另外,由于使用ReleaseFree方式并没有将Form指针改为nil,因此在判断对象是否创建时不能单用Assigned(Form)方式来判断,还要加上Form = nil 的方式;本人建议在使用Free之后再加上Form := nil

PS)对于Variant对象的释放还有VarClear或将var置为Unassignednil的方式。

 

 

 

你可能感兴趣的:(关于Delphi释放对象资源的小建议)