怎么获取常量的名字?第一个正确回答者给全部分!

daidai_____DD 2010-06-04 09:57:57
如delphi定义
const aaaa=1;

或集合type TFilter = set of(AApps,AAudios,AVideos,AImages,ATexts);

或者枚举type MY_ENUM=(yes,no);

怎么获取字符串aaaa,或AApps或yes??

希望得到一个较通用的方法。

谢谢
...全文
123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2010-06-04
  • 打赏
  • 举报
回复
至于集合,可以用RTTI机制,参考下面7楼的代码,但要将集合作为一个published属性才行
http://topic.csdn.net/t/20011108/15/360887.html
Frank.WU 2010-06-04
  • 打赏
  • 举报
回复
uses typinfo;

function GetEnumName(TypeInfo: PTypeInfo; Value: Integer): string;
function GetEnumValue(TypeInfo: PTypeInfo; const Name: string): Integer;
bdmh 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tjianliang 的回复:]
给一个枚举类型的
GetEnumName(TypeInfo(TFilter), Ord(AApps))
[/Quote]
亮子,TFilter 不是枚举类型,应该 换成

var
pt:PTypeInfo;
begin
pt := TypeInfo(MY_ENUM);
ShowMessage(GetEnumName(pt, Ord(yes)));
end;
SQLDebug_Fan 2010-06-04
  • 打赏
  • 举报
回复
常量在翻译成汇编之后是会变成地址的,只有在调试器里,带了调试信息才能知道是什么,真正发布的程序是无法得知的。
亮剑_ 2010-06-04
  • 打赏
  • 举报
回复
给一个枚举类型的
GetEnumName(TypeInfo(TFilter), Ord(AApps))

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧