【发布时间】:2022-01-11 19:11:03
【问题描述】:
在 Delphi 10.3 中,我编写了一些 Excel 自动化代码。我使用了变体。例程完成后,我清除并释放了 Variant...
VarClear(arrData);
FreeAndNil(arrData);
这编译并运行良好。我刚刚升级到 D11,即 Alexandria。此代码现在给出错误。 ... 不兼容的类型:TObject 和 Variant。
我将这部分代码改写为:
VarClear(arrData);
arrData.Free;
这样编译,乍一看,似乎运行良好。这是在亚历山大清除/处理变种的正确方法吗?
【问题讨论】:
-
我没有D11,但是根据您的描述,他们将
FreeAndNil(var obj)重新定义为procedure FreeAndNil(var Obj:TObject)。现在,由于Free是 TObject 的一个方法并且与变体无关,除非他们为引入“免费”方法的变体添加了帮助器,这对我来说看起来非常错误。