DELPHI 创建自定义类对象必须要Txxx.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呢

1.Txxx.create表示用这个类的构造方法 实例化这个对象,就好比java 一样,只是java的构造函数是跟类同名,java 用 new xxxx()
2,你说的直接edit1 : TEdit 的情况 是 你拖动一个edit 到 窗口上,然后发现声明了一个edit1 : TEdit ,对吧。其实 ,在你拖动的过程中delphi 帮你在后台做了一些事情,你可以alt+F12看一看,在.frm文件里。如果你自己写代码 写下 edit1 : TEdit,那是用不了的,还要 create,而且 还要edit1.parent :=窗体(不然不会显示)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-12
现在编程都是面向对象编程.
你先声明一个类变量.创建的时候,只是实例化这个类的对象.
然后再使用它里边的一些属性和方法!
相当于你买一个车.谁知道你买的啥车啊?
所以说要先从车这个大的体系里说明是买的汽车,这就是实例化一个类.
然后再对汽车里边的某些东西操作,比如刹车啊.踩油门啊,踩离合啊什么的!
既然有创建,就要有对应的释放了!
第2个回答  2011-01-12
不需要
你有初始化类,则需要释放,反正不用

DELPHI 创建自定义类对象必须要Txxx.Create吗?我不这样也能用怎么回事...
1.Txxx.create表示用这个类的构造方法 实例化这个对象,就好比java 一样,只是java的构造函数是跟类同名,java 用 new xxxx()2,你说的直接edit1 : TEdit 的情况 是 你拖动一个edit 到 窗口上,然后发现声明了一个edit1 : TEdit ,对吧。其实 ,在你拖动的过程中delphi 帮你在后台做...

DELPHI基础教程:简单数据库应用的创建及MASTAPP介绍(二)[2]
因为动态字段对象是没有自己的名字的 永久性的字段对象有自己的名字 所以对这两种字段对象的访问方法是不一样的 动态字段对象的访问 动态字段对象存在于数据集部件TTable和TQuery部件中 它们是随着磁盘上的数据库文件的打开而动态生成的 并且每一个字段对象对应于数据库表中的一个字段(即记录的一列) ...

如何在DELPHI中做注册表修改软件的设计与实现
1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Create; 2.释放TRegistry对象。对注册表操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy。 二、指定要操作的键 操作注册表时,首先应指定操作的主键:先给属性RootKey赋值以指定根键,然后用方法OpenKey来指定要操...

相似回答