请问一个自定义类的问题

gbhsky 2007-10-11 07:39:35
我在a.pas里定义了一个类a,在b.pas里uses a,然后在b.pas 里有一个函数如下
func
var c:a;
begin
c:=a.create
....
end;
运行时居然报错,好像是a并没有创建成功,不知问题出在哪
另外
c.reate 和 c:=a.create 这两个语法有什么区别呢?
...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小呆之家 2007-10-11
  • 打赏
  • 举报
回复

func
var c:a;
begin
c:=a.create(nil);
....
end;
运行时居然报错,好像是a并没有创建成功,不知问题出在哪
另外
c.reate 和 c:=a.create 这两个语法有什么区别呢?
上面都不是正确的语法!
c.reate?这是什么!?没有这样的写法。而且还拼写错误。
c:=a.create;这样写是错误的。因为创建一个动态组件,DELPHI都要求要提供一个组件管理者,管理
动态组件的内存。。。。。。
nil:没有管理者。此时,动态组件的内存就得由程序员来管理了。

一般地这样使用是安全的:
var
sthObj:TObject;
begin
sthobj:=tobject.create(nil);
try
....
finally
sthobj.free;//回收内存
end;

end;
gbhsky 2007-10-11
  • 打赏
  • 举报
回复
虽然我水平不高,但我觉得楼上的老兄似乎也好不了多少啊。你的热心我很感激,但是请问你实际执行过你的代码没有?另外,类和组件似乎不是完全等同的概念吧,类需要管理者么?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧