将变量值存储在TStringList的object属性中

时间:2010-12-10 19:55:22

标签: delphi delphi-2007

我需要在TStringList中存储一个变量值,到目前为止我试试这个

var
 list : TStringList;
 v   : OleVariant;

  List..AddObject('Item1',v);

  List..AddObject('Item1',TObject(v));

但在这两种情况下,代码都无法编译,因为类型转换无效或类型不兼容。

所以问题是,我如何在TStringlist中存储变量值?

2 个答案:

答案 0 :(得分:8)

我认为唯一的方法是将变量包装在一个类中,并在stringlist项的对象中引用它。当然,在释放stringlist时,您需要注意正确释放包装器实例。使用最近的Delphi版本,可以通过使用stringlist的“OwnsObjects”参数轻松完成。

答案 1 :(得分:1)

我认为您需要存储变体记录的地址:

List..AddObject('Item1',TObject(@v));