构造单元中的类实例与构造常规类实例方法类似,均可使用 CreateObject 或 new 实现。
核心区别在于类标识符的指定方式:
常规类实例:只需提供类名,如CreateObject("TStringList")或new TStringList()。
单元中的类实例:需提供
完整的类路径(格式:单元名.类名),如CreateObject("Unit1.Class1.Class2")或new Unit1.Class1.Class2()。
具体语法如下:
obj:=CreateObject("Unit1.Class1.Class2"[,P1,...,PN:any]);//CreateObject方式
obj:=new Unit1.Class1.Class2([,P1,...,PN:any]);//new方式
例如obj:= new Unit1.Class1.Class2(),表示创建单元 Unit1 中 Class1 内部定义的嵌套类 Class2的实例,并赋值给obj。
注:2025-08-27后的NG客户端及使用新一代TSL的服务器支持该功能。
示例:
定义于 Unit1 中的类结构
Unit Unit1;
Interface
Type Class1=Class
Type Class2=Class// 嵌套类
function MethodInClass2();//方法
class function ClassMethodInClass2();//类方法
end;
end;
Initialization
Finalization End.
创建实例
//方式一:CreateObject
obj1:=CreateObject("Unit1.Class1.Class2");
obj1.MethodInClass2();//调用方法
//方式二:new关键字
obj2:=new Unit1.Class1.Class2();
obj2.MethodInClass2();//调用方法