有其它方法创建类的实例吗?(100分)

  • 主题发起人 主题发起人 first
  • 开始时间 开始时间
F

first

Unregistered / Unconfirmed
GUEST, unregistred user!
除了可以用类本身的Create方法创建类实例外,还有其它办法创建对象吗
 
你可以给你的类写一个类方法,不过里面还是要调用 Create:)
或者你完全自己实现,反正 Create 中该有的步骤肯定跑不了。
 
to beta
那不是一样吗,我就是不想通过Create方法创建对象
 
type
pa=^ta

Ta=object
public
fstr:string;
end;
new(pa);
pa.fstr:='aaa';
dispose(pa);

 
思考问题过分深渊!!!
 
我想问怎样才能不用DEGIN ,END谁知道,好象有人说用C吧!
干嘛要绕弯弯呢!
不过有搞科学的精神!
 
复制已创建的实例!
 
to 春意
你只是没用到
 
因为以下原因我才有这样的想法:
我在delphi6中建一个事务对象,又加入一个本地数据模块。
但是在事务对象中动态创建数据模块时报"不支持此接口"的错误,非常奇怪。
代码如下:
MyInterface= class(TMtsAutoObject, Iree)
private
MyDataMod: TDataModule1;//本地数据模块
public
procedure Initialize override;
end;
procedure MyInterface.initialize
begin
MyDatMod := TDataModule1.Create(Forms.Application);//创建数据模块
end;
 
给这个类新加一个constructor,然后就可以用这个新的构造器新建一个对象的。
 
to dedema
如何实现,可给个例子吗
 
说说你不用create的道理
 
to huawda
已经说了,在上面
 
MyInterface= class(TMtsAutoObject, Iree)
private
MyDataMod: TDataModule1;//本地数据模块
public
constructor Create(AOwner: TObject
AApplication: TApplication)
override;
end;

constructor MyInterface.Create(AOwner: TObject
AApplication: TApplication);
begin
MyDatMod := TDataModule1.Create(AApplication);//创建数据模块
end;
 
不管什么办法,其最终,我想还是要调用create方法(除非你的create不叫这个名字)。看不懂上面的问题。
 
to beta
好象不能重载Create方法
 
啊?不会吧。那你直接隐藏它:
constructor Create(AOwner: TObject
AApplication: TApplication)
// 后面不要东西
然后
constructor MyInterface.Create(AOwner: TObject
AApplication: TApplication);
begin
inherited(AOwner);
MyDatMod := TDataModule1.Create(AApplication);//创建数据模块
end;
 
to beta
象你那样,当创建Com+对象事,Create方法是不会被执行的
 
报什么错误?
 
后退
顶部