也就是说 当调用这个函数时 是这样调用的 function lll(); var obj : TObject; begin lcl(obj); end; 还是这样调用的 function lll(); var obj : TObject; begin obj := Tobject.Create(); lcl(obj); end;
function lll(); var obj : TObject; begin obj := Tobject.Create(); lcl(obj); end;声明后必须要调用构造函数创建对象,或者引用另一个已经创建的对象。————————————————————————————————— 宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。 —————————————————————————————————
是这样调用的
function lll();
var
obj : TObject;
begin
lcl(obj);
end;
还是这样调用的
function lll();
var
obj : TObject;
begin
obj := Tobject.Create();
lcl(obj);
end;
var
obj : TObject;
begin
obj := Tobject.Create();
lcl(obj);
end;声明后必须要调用构造函数创建对象,或者引用另一个已经创建的对象。—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
一般情况下根本就不用考虑这种情况,因为没有人会这样写代码,即使写了运行时会出错,所以编写代码的人也会立即修改,这样有明显错误的程序不会发布出去(因为你测试这个模块的时候根本就运行不了)。不过你硬是要费劲写的话也不是没办法。
在try....except...and里访问这个对象只有在create后才能访问的属性或方法,如果出错了,说明这个对象没有create,否则已经create。