DELPHI 创建自定义类对象必须要Txxx.Create吗?我不这样也能用怎么回事?
我写的程序有时侯会报错,后来别人告诉我说类对象要这么用varobj:TObject;beginobj:=TObject.Create;//创建try//使用....fin...
我写的程序有时侯会报错,后来别人告诉我说类对象要这么用
var obj:TObject;
begin
obj:=TObject.Create;//创建
try
//使用....
finally
obj.free;//释放
end;
end;
这样使用才对,我试了下果然不报错了,但是我现在有几个疑问
1 为什么 要 obj:=TObject.Create;这样写,obj.Create为什么不可以呢?
2 比如我在用TEdit组件的时候,就 edit1 : TEdit; 就完事了,好用,也没用TEdit.Create啊,所以我想问,到底什么时候才要Create呢 展开
var obj:TObject;
begin
obj:=TObject.Create;//创建
try
//使用....
finally
obj.free;//释放
end;
end;
这样使用才对,我试了下果然不报错了,但是我现在有几个疑问
1 为什么 要 obj:=TObject.Create;这样写,obj.Create为什么不可以呢?
2 比如我在用TEdit组件的时候,就 edit1 : TEdit; 就完事了,好用,也没用TEdit.Create啊,所以我想问,到底什么时候才要Create呢 展开
3个回答
展开全部
1.Txxx.create表示用这个类的构造方法 实例化这个对象,就好比java 一样,只是java的构造函数是跟类同名,java 用 new xxxx()
2,你说的直接edit1 : TEdit 的情况 是 你拖动一个edit 到 窗口上,然后发现声明了一个edit1 : TEdit ,对吧。其实 ,在你拖动的过程中delphi 帮你在后台做了一些事情,你可以alt+F12看一看,在.frm文件里。如果你自己写代码 写下 edit1 : TEdit,那是用不了的,还要 create,而且 还要edit1.parent :=窗体(不然不会显示)。
2,你说的直接edit1 : TEdit 的情况 是 你拖动一个edit 到 窗口上,然后发现声明了一个edit1 : TEdit ,对吧。其实 ,在你拖动的过程中delphi 帮你在后台做了一些事情,你可以alt+F12看一看,在.frm文件里。如果你自己写代码 写下 edit1 : TEdit,那是用不了的,还要 create,而且 还要edit1.parent :=窗体(不然不会显示)。
展开全部
现在编程都是面向对象编程.
你先声明一个类变量.创建的时候,只是实例化这个类的对象.
然后再使用它里边的一些属性和方法!
相当于你买一个车.谁知道你买的啥车啊?
所以说要先从车这个大的体系里说明是买的汽车,这就是实例化一个类.
然后再对汽车里边的某些东西操作,比如刹车啊.踩油门啊,踩离合啊什么的!
既然有创建,就要有对应的释放了!
你先声明一个类变量.创建的时候,只是实例化这个类的对象.
然后再使用它里边的一些属性和方法!
相当于你买一个车.谁知道你买的啥车啊?
所以说要先从车这个大的体系里说明是买的汽车,这就是实例化一个类.
然后再对汽车里边的某些东西操作,比如刹车啊.踩油门啊,踩离合啊什么的!
既然有创建,就要有对应的释放了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不需要
你有初始化类,则需要释放,反正不用
你有初始化类,则需要释放,反正不用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询