如何把一个TObject转换成Variant类型的(50分)

  • 主题发起人 主题发起人 erace99
  • 开始时间 开始时间
E

erace99

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把一些控件在程序中转换成Variant类型的,应该怎么做
比如:TPanel -> pObj 然后可以用pObj.Color := 2134 来设置TPanel的颜色
 
没人回答吗?
 
var XXX:TObject;
begin
XXX := panel1;
TPanel(xxx).color := clRed;
end;
 
不是这个意思,是指把TObject转换成Variant
如:Aobject :TObject

VarObj :Variant;
begin
AObject 转换成 VarObj;
CLassName := VarObj.ClassName
//可以这样操作,而不能用 className := TObject(VarObj).ClassName这样的写法
end;
 
我前段时间做过,总的思想是,把对象的内存空间拷贝到Variant中,
当然,Variant要赋值为一个varByte类型的数组,注意,拷贝数据时,
对象的前四个字节不要拷贝,因为这四个字节是指向VMT的指针,在不
同的程序中,可能不同。
 
没人回答吗?
帮一下吧!
 
后退
顶部