gpt4 book ai didi

delphi - 如何在 TStringList 对象中存储集合?

转载 作者:行者123 更新时间:2023-12-03 15:41:39 26 4
gpt4 key购买 nike

我试图在 TStringList 的对象属性内存储一个集合(并读取它)(我还将使用它来存储与该集合关联的文本),但我得到了该集合的无效类型转换。

在 StringList 对象中存储集合的最佳方法是什么?另外,销毁StringList时是否需要释放该对象?

这是一些示例代码:

type
TDummy = (dOne, dTwo, dThree);
TDummySet = set of TDummy;


var
DummySet: TDummySet;
SL: TStringList;
begin
SL := TStringList.Create;
Try
DummySet := [dOne, dThree];
SL.AddObject('some string', TObject(DummySet)); // Doesn't work. Invalid typecast
Finally
SL.Free;
End;
end;

最佳答案

首先阅读其他答案 - 也许您会找到一个不那么棘手的解决方案。

但是FTR:你可以写

SL.AddObject('some string', TObject(Byte(DummySet)));

DummySet := TDummySet(Byte(SL.Objects[0]));

如果你真的想要的话。

注意:如果向 TDummySet 类型添加足够的元素,则必须更改关键字 Byte。例如,如果您再添加六个元素(总共九个),则需要转换为 Word

关于delphi - 如何在 TStringList 对象中存储集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2191242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com