FreeOnRelease,Free,Destroy的区别是什么? 请问各位大哥: FreeOnRelease Free Destroy的区别是什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 FreeOnRelease是针对COM组件的,你无需理它。Destroy要比Free安全一些它会进行一些前期检查,如果对象存在则释放对象,如果不存在了就不释放(因为Delphi中所谓的对象不过是一个指向对象的指针而已)而Free有点强制释放的意义在里面 请看看这段,显然free要比destroy好,楼上的说反了procedure TObject.Free;begin if Self <> nil then Destroy;end; procedure TObject.Free;asm TEST EAX,EAX JE @@exit MOV ECX,[EAX] MOV DL,1 CALL dword ptr [ECX].vmtDestroy@@exit:end;自己看吧,我是从Delphi5里面摘录的。 抛开这些不谈,我个人释放习惯用FreeAndNil 正则运算用什么控件比较好? 如何点击TreeView的子节点响应事件?根节点不响应事件,急用! 用什么东西解决! 请问:如何引用远程数据模块上面的控件,等待中... 我想在运行期设置ADO的数据连接属性,界面和设计期一样,请问该怎么做? dephi如何快速入门 怎样判断是否对日期选择控件MonthCalender进行了点击操作? 紧急求救!ADO莫名其妙的错误 我在PowerBuilder中看到一个命令,在Delphi中能这样用吗? delphi中如何将一个字段设成自增的(delphi中而不是数据库中) 高手请做答 怎样将一个frame加入到一个panel中,解决即给分!
Destroy要比Free安全一些它会进行一些前期检查,如果对象存在则释放对象,如果不存在了就不释放(因为Delphi中所谓的对象不过是一个指向对象的指针而已)而Free有点强制释放的意义在里面
begin
if Self <> nil then
Destroy;
end;
asm
TEST EAX,EAX
JE @@exit
MOV ECX,[EAX]
MOV DL,1
CALL dword ptr [ECX].vmtDestroy
@@exit:
end;
自己看吧,我是从Delphi5里面摘录的。