• GetEnumName 枚举名称 字符串


    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

  • 相关阅读:
    java 日期格式 毫秒 表示方法
    Java的框架是什么意思
    圣思源Java视频36节练习源码分享(自己的190+行代码对比老师的39行代码)
    预装win8的笔记本如何重装win7
    Word 2013 无法撤销操作的错误
    面试经验分享(跳槽季~~~❀)
    一些可能有点用处的C#开发经验
    电子设计解决方案透视
    突破限速
    当区块链遇上Rust
  • 原文地址:https://www.cnblogs.com/cb168/p/4601809.html
Copyright © 2020-2023  润新知