模板函数定义:
template<class T>
UnicodeString EnumToStr(T t){ return Typinfo::GetEnumName(__delphirtti(T),(int)t); } |
头文件:
#include <System.TypInfo.hpp>
注:头文件里面只有 GetEnumName 函数,并没有 EnumToStr 模板,需要把模板函数定义方框内的代码加入自己的头文件。
参数:
t: 枚举类型的变量
注:经过测试,如果不是枚举类型的变量,只有整数类型不会出错,返回整数值,其他类型的变量,例如浮点数,函数执行会出错。
返回值:
字符串,例如 s = EnumToStr(t); 把枚举型变量 t 的值转为枚举值对应的字符串 s。
例1:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Lines->Add(EnumToStr(this->BorderStyle));
Memo1->Lines->Add(EnumToStr(this->Position ));
Memo1->Lines->Add(EnumToStr(this->WindowState));
} |
获取到这些属性的枚举值对应的字符串 bsSizeable, poDesigned, wsNormal
例2:
enum TMyEnum { First, Second, Third };
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TMyEnum e = Second;
Memo1->Lines->Add(EnumToStr(e));
} |
获取到枚举值 e 当前值对应的字符串 Second
相关链接:
• StrToEnum • atoi • atol • _atoi64 • strtol • strtoll • strtoul • strtoull
• itoa • ltoa • ultoa • _i64toa • _ui64toa
• IntToStr • UIntToStr • IntToHex
• StrToInt • StrToIntDef • StrToInt64 • StrToInt64Def • StrToUInt64 • StrToUInt64Def
|