解决方法
将枚举转换为Pointer或TObject并返回工作正常.如果您的Delphi版本支持泛型使用Tim的建议,那就更好了.或者,您可以使用动态数组(TTestEnum数组)或围绕动态数组创建包装类 – 这就是如何在具有泛型的Delphi版本中实现泛型列表.
这是一个使用TList而不是TObjectList的快速控制台演示,因为TList对它所拥有的项目做出的假设更少.
program Project1; {$APPTYPE CONSOLE} uses SysUtils,Classes; type TTestEnum = (enum1,enum2,enum3,enum4); var L: TList; i: Integer; E: TTestEnum; begin L := TList.Create; try L.Add(Pointer(enum1)); L.Add(Pointer(enum2)); L.Add(Pointer(enum3)); L.Add(Pointer(enum4)); for i:=0 to L.Count-1 do begin E := TTestEnum(L[i]); case E of enum1: WriteLn('enum1'); enum2: WriteLn('enum2'); enum3: WriteLn('enum3'); enum4: WriteLn('enum4'); end; end; finally L.Free; end; ReadLn; end.
原文地址:https://www.jb51.cc/delphi/102307.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。