【发布时间】:2011-05-05 08:11:56
【问题描述】:
我应该使用什么列表类型来存储枚举值?我尝试过使用 TObjectList,我将其转换为 TObject 以添加值,但在从列表中读取时无法将其转换回枚举。
你用什么列表来存储枚举?
【问题讨论】:
-
从 TObject 回退应该可以工作,显示你的代码。
-
你可能需要投两次:
TYourEnum(Integer(obj)). -
@Ulrich - 不,你没有。请参阅我发布的 working 示例以获取答案。
-
@Cosmin:你是对的:
al := TAlign(obj);与var obj: TObject; al: TAlign;编译。一定是把它和别的东西混在一起了。 -
不要使用 TObjectList。该类带有它包含的对象的“所有权”概念,但您不能拥有枚举值。如果您的列表不知道它包含的不是对象,它可能会在它们被删除时尝试释放它们。相反,请使用普通的旧 TList。
标签: delphi list enums delphi-2007