将变体值存储在 TStringList 的对象属性中
我需要在 TStringList
中存储一个变体值,到目前为止我尝试了这个
var
list : TStringList;
v : OleVariant;
List..AddObject('Item1',v);
,
List..AddObject('Item1',TObject(v));
但在这两种情况下,代码都无法编译,因为类型转换无效或类型不兼容。
所以问题是,如何在 TStringlist 中存储变体值?
i need store a variant value in a TStringList
, so far i try this
var
list : TStringList;
v : OleVariant;
List..AddObject('Item1',v);
or
List..AddObject('Item1',TObject(v));
but in both cases the code not compile because the typecast is invalid or the types are incompatibles.
so the question is, how i can store a variant value in a TStringlist ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为唯一的方法是将您的变体包装在一个类中,并将对该变体的引用放入字符串列表项的对象中。当然,您需要注意在释放字符串列表时正确释放包装器实例。使用最新的 Delphi 版本,可以通过使用字符串列表的“OwnsObjects”参数轻松完成。
I think the only way would be to wrap your variant in a class and put a reference to that in the object of the stringlist item. You would of course need to take care that the wrapper instances are properly freed when freeing the stringlist. Using the recent Delphi version's that would easily be done by using the "OwnsObjects" parameter of the stringlist.
我相信您需要存储变体记录的地址:
I believe that you need to store the address of the variant record: