zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Remote API(RAPI)之 文件管理
    vue前端框架

    托马斯彩色回旋
    VUE?
    cookie与session
    ajax前后端分离
    djangoIII
    Django少年
    django三板斧
  • 原文地址:https://www.cnblogs.com/cb168/p/4601809.html
Copyright © 2011-2022 走看看