起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 137|回复: 2

创建Create里 参数 nil 和Self.Context 有什么区别?[新版]

[复制链接]
发表于 2007-12-4 10:53:17 | 显示全部楼层 |阅读模式
创建Create里 参数 nil  和Self.Context  有什么区别?
回复

使用道具 举报

发表于 2007-12-4 11:00:06 | 显示全部楼层
Create中的nil空的,说明你创建的对象,需要自己释放对象。
如果是Context        需要自己去释放这个对象,环境关闭如果创建的对象没有被释放,就会报指针错.


他们的区别: 使用Context 他是将对象创建在环境,而环境是有限制的,详细信息可以看一下下面这个帖子:

http://bbs.justep.com/forum.php? ... hlight=%B7%D6%CF%ED

使用nil跟Defphi的用法一样。
回复 支持 反对

使用道具 举报

发表于 2007-12-4 12:03:39 | 显示全部楼层
楼上说的有点乱了,我来说说吧

Create(AOwner: TComponent);
这类的函数表示,对象创建以后,自己不用释放,而是由AOnwer来释放(当然想自己释放也可以),但是如果AOnwer=nil,那么就要自己释放了

Create(AContext: TContext)
这类的函数表示,这个对象创建在AContext这个环境中,对于TForm, TBizDataSet,TInfo等都需要传递一个AContext作为参数来创建,否则会出错
对于这个函数创建的对象,一定要自己释放,否则在环境释放时候会出错 参考 http://bbs.justep.com/forum.php?mod=viewthread&tid=19014
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-1 10:59 , Processed in 0.054754 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表