定义了这样一个Delphi对象
TNsStVtLPVar = class(TObject)
public
VarIndex: Integer;
IntVar: Boolean;
constructor Create; virtual;
end;
然后用Intenger函数取值,这个取值到底是TObject的地址还是别的
var num : Interger;
pvar :TNsStVtLPVar ;
begin
pvar := TNsStVtLPVar.Create;
num := Integer(pvar);//这个取值是地址还是别的?
end;
引用 皆我百晓生 小程序回复内容作答:
在Delphi中,整数类型的Integer函数可以用于将指针或对象转换为整数类型。当传递一个对象给Integer函数时,它会返回对象的地址,即对象的指针。所以在你的例子中,num的值将保存pvar对象的地址。
【以下回答由 GPT 生成】
根据Delphi的规则,当你将一个 TObject
对象转换为 Integer
类型时,它实际上是将对象的指针(内存地址)转换为整数。所以 num
的值是 pvar
对象的地址。
在你的代码示例中, num
将存储 pvar
对象的内存地址,而不是一个有意义的整数值。如果你想要获取 TObject
对象的其他属性或方法的值,你应该使用相应的访问方式。
示例代码中的 pvar := TNsStVtLPVar.Create;
表示你创建了一个新的 TNsStVtLPVar
对象,并将其分配给 pvar
变量。如果你想要访问该对象的属性或方法,你可以直接使用 pvar
变量。
var
pvar: TNsStVtLPVar;
begin
pvar := TNsStVtLPVar.Create;
// 访问对象的属性或方法
pvar.SomeProperty := 123;
pvar.SomeMethod;
end;
如果你的目的是将 TObject
对象转换为可读或有意义的整数值,你需要根据具体的对象类型,获取相应的属性或方法返回值并转换为整数类型。
总的来说, num
不是 TObject
的地址,而是存储了 pvar
对象的地址。如果你想获得有意义的整数值,你需要进一步访问 pvar
对象的属性或方法,并根据具体情况进行转换。