System.TypInfo.pas
System.TypInfo.hpp
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.TypInfo.GetEnumName
 http://docwiki.embarcadero.com/CodeExamples/Berlin/en/TypInfoGetEnumName_(C%2B%2B)
http://docwiki.embarcadero.com/CodeExamples/Berlin/en/TypInfoGetEnumName_(Delphi)
http://docwiki.embarcadero.com/CodeExamples/Berlin/en/RuntimeErrors_(Delphi)
 
两个枚举函数
GetEnumName
GetEnumNameValue
其他函数参考
GetTypeName
GetPropInfo
GetPropName
GetEnumProp
SetToString
 StringToSet
GetSetElementName
GetSetElementValue

获得枚举字符EnumName

String kindName;

kindName = System::Typinfo::GetEnumName(__delphirtti(TFieldType), curGrid->SelectedField->DataType);

SubName = System::Typinfo::GetEnumName(__delphirtti(TOrdType),                Data->OrdType);

KindName := System.TypInfo.GetEnumName(System.TypeInfo(TTypeKind),      Ord(Info^.Kind));
根据枚举字符串获得枚举值
字符串转为枚举值
    ft := TFieldType(GetEnumValue(TypeInfo(TFieldType),'ft'+SubJson.S[cstFieldType]));  atype := TFieldType(GetEnumValue(TypeInfo(TFieldType),'ftInteger')); 枚举集合Anchors
Anchors: [akLeft,akTop]
tkSet:
begin
List.Add(Tmp + prop.Name + ' (' + string(prop.GetValue(Obj).TypeInfo.Name) + '): ' + prop.GetValue(Obj).ToString);
end;
枚举集合得到全部
Anchors:
akLeft
akTop
akRight
akBottom

tkSet:
begin
List.Add(Tmp + prop.Name + ' (' + string(prop.GetValue(Obj).TypeInfo.Name) + '): ');
GetSetInformation(prop.GetValue(Obj).TypeInfo, Tmp);
end;
下面3个tkSet属性的参考
 http://stackoverflow.com/questions/38192934/know-selected-tkenumeration-from-a-tkset
https://github.com/synopse/mORMot/blob/master/SQLite3/Samples/ThirdPartyDemos/AntonE/ORMCDS/ORMCDS.pas
https://github.com/VSoftTechnologies/Delphi-Mocks/blob/master/Delphi.Mocks.Utils.pas tkSet: result := TValue.FromOrdinal(rttiType.Handle,rttiType.AsOrdinal.MinValue); GetSetProp / SetSetProp 函数
GetSetProp 函数用于获取集合类型属性的字符串值,它也是调用 GetOrdProp 获得属性值,然后调用 SetToString 函数把数值转换成字符串。
SetSetProp 函数用于通过字符串设置集合类型属性的值。它先调用 StringToSet 函数把字符串转换为整数值,然后使用 SetOrdProp 函数设置属性值
例如
Memo1.Lines.Add(GetSetProp(self, 'Anchors', True));
SetSetProp(self.Button8, 'Anchors', '[akLeft,akRight]'); http://stackoverflow.com/questions/38192934/know-selected-tkenumeration-from-a-tkset

GetEnumName 枚举名称 字符串的更多相关文章

  1. C# 枚举、字符串、值的相互转换

    using  System; class  Program{    public   enum  Color   {      Red  =   0xff0000 ,      Orange  =   ...

  2. C# 枚举转字符串

    有时候需要把枚举转字符串,那么如何把枚举转字符串? 枚举转字符串 假如需要把枚举转字符串,可以直接把他进行转换,请看代码 public enum Di { /// <summary> // ...

  3. 2018-2-13-C#-枚举转字符串

    title author date CreateTime categories C# 枚举转字符串 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23:3 ...

  4. 转-C#让枚举返回字符串

    下面的手段是使用给枚举项打标签的方式,来返回字符串 下面分别定义一个属性类,和一个枚举帮助类 [AttributeUsage(AttributeTargets.Field,AllowMultiple  ...

  5. C# 让枚举返回字符串

    下面的手段是使用给枚举项打标签的方式,来返回字符串 分别定义一个属性类,一个枚举帮助类 /// <summary> /// 自定义属性 /// </summary> [Attr ...

  6. 【C#】枚举和字符串以及数字之间的互相转换

    准备条件: ①枚举类型: public enum enumColor { Red = , Yellow, Green, Blue, White, Black } ②以下状态都是理想状态,并未对错误数据 ...

  7. c++ 枚举与字符串 比较

    读取字符串,然后将这个字符转换为对应的枚举. 如:从屏幕上输入'a',则转换为set枚举中对应的a,源代码如下: //关键函数为char2enum(str,temp); #include using ...

  8. oc中枚举映射字符串技巧

    后台返枚举数据给app,app需要对不同枚举转换成字符串显示. 一般想到方法用 switch 根据不同枚举变量返回不同字符串,结果就是判断代码写得很长,不优雅.更简便方式有如下: typedef NS ...

  9. Java名称字符串进行星号处理

    /** * 对字符串处理:将指定位置到指定位置的字符以星号代替 * * @param content * 传入的字符串 * @param begin * 开始位置 * @param end * 结束位 ...

随机推荐

  1. onerror="javascript:this.src='images/defaultUpload.png';"【容易导致死循环报错】

    当无法找到默认图片时,onerror="javascript:this.src='images/defaultUpload.png';"容易导致死循环报错

  2. sublime text3安装以及插件配置教程

    http://blog.csdn.net/feizaosyuacm/article/details/54729891 本文是安装的Sublime Text3是portable version(可移动版 ...

  3. Quartz 2D编程指南(7) - 阴影(Shadows)

    阴影是绘制在一个图形对象下的且有一定偏移的图片,它用于模拟光源照射到图形对象上所形成的阴影效果,如果7-1所示.文本也可以有阴影.阴影可以让一幅图像看上去是立体的或者是浮动的. 阴影有三个属性: 1. ...

  4. python笔记-10(socket提升、paramiko、线程、进程、协程、同步IO、异步IO)

    一.socket提升 1.熟悉socket.socket()中的省略部分 socket.socket(AF.INET,socket.SOCK_STREAM) 2.send与recv发送大文件时对于黏包 ...

  5. php7+Redis+Windows7安装 (phpstudy)

    1.首先去github网站上下载https://github.com/dmajkic/redis/downloads: 2.根据实际情况,将64bit的内容cp到自定义盘符目录,如D:\Redis; ...

  6. MSDN中回调函数的讲解及其C#例子:用委托实现回调函数

    转自:http://blog.csdn.net/sizheng0320/article/details/1615777 ms-help://MS.MSDNQTR.2003FEB.2052/cpguid ...

  7. lapis 集成openresty最新版本cjson 问题的解决

    备注:    为了解决安装了lapis.同时又希望使用新版nginx 以及openresty 的特性(stream ...)   1. 解决方法 参考: https://github.com/leaf ...

  8. Markdown语法简单介绍

    Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 一.标题 # 这是标题一 ## 这是标题二 ### 这是标题三 #### 这是标题 ...

  9. angular先加载页面再执行事件,使用echarts渲染页面

    剧情重现: 在一个页面中有多个小模块,这几个模块是可以拖动调顺序的,并且其中有两个模块使用了echarts渲染, 调整顺序angular插件有成熟的解决方案angular-sortable,https ...

  10. 自定义元素(custom elements)

    记录下自定义html自定义元素的相关心得: 浏览器将自定义元素保留在 DOM 之中,但不会任何语义.除此之外,自定义元素与标准元素都一致 事实上,浏览器提供了一个HTMLUnknownElement, ...