为何TObject的Create和Destory方法都没有实现 为何TObject的Create和Destory方法都没有实现代码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create中主要是初始化各数据成员,申请对象的需要的资源,或创建内部包含的对象。TObject没有需要处理的数据或对象,所以不用实现代码。 参见inside VCL说的已经很详细了 可能是不同的人考虑问题的出发点不同。即使那两个方法是空的,delphi编译器依然在背后做了很多事。 编译器在create前插入以下汇编代码test dl,dljz +$08add esp,-$10call @classcreate //system单元中的_classcreate在free后,插入以下代码完成对对象本身的空间的回收call @beforedestructiontest dl,dljz +$05call @classdestroy // Destory好像实现了,子类一般这样写:destructor destroy;override;destructor 类名.destructor;begin....... inherited destroy;end; SQL替换问题 奇怪的故障 为什么编译好的程序在部分电脑上运行出现乱码? dbgrid中如何用SHIFT或左键拖动选取多行记录 实现:比较两图,把不同的点记录到list中,最后再将LIST中的图画出,结果有问题,请帮助,谢谢 API函数SetWindowPos的问题 系统异常关掉(如断电),如何清除数据库中某条记录? [100分]怎样用delphi实现把dbf转换成SQL数据库? 请教高手,如何解决同步运行一个外部程序的问题? 我也来提问 2个问题一起问,大家帮帮忙 如何在窗体中完成Word 文档的预览
TObject没有需要处理的数据或对象,所以不用实现代码。
说的已经很详细了
即使那两个方法是空的,delphi编译器依然在背后做了很多事。
jz +$08
add esp,-$10
call @classcreate //system单元中的_classcreate在free后,插入以下代码完成对对象本身的空间的回收call @beforedestruction
test dl,dl
jz +$05
call @classdestroy //
begin
.......
inherited destroy;
end;