模板函数定义:
template<class T>
T StrToEnum(const UnicodeString &s){ return (T)Typinfo::GetEnumValue(__delphirtti(T),s); } |
头文件:
#include <System.TypInfo.hpp>
注:头文件里面只有 GetEnumValue 函数,并没有 StrToEnum 模板,需要把模板函数定义方框内的代码加入自己的头文件。
参数:
T: 枚举类型
s: 字符串
返回值:
枚举类型的值,例如 t = StrToEnum<EnumType>(s); 把字符串 s 转为枚举类型 EnumType 类型的值 t。
例:
把 L"wsMaximized" 和 L"wsNormal" 转成对应的 TWindowState 枚举值,赋值给 this->WindowState 让窗口最大化和还原。
void __fastcall TForm1::Button3Click(TObject *Sender)
{
UnicodeString s = L"wsMaximized";
this->WindowState = StrToEnum<TWindowState>(s);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
UnicodeString s = L"wsNormal";
this->WindowState = StrToEnum<TWindowState>(s);
}
//--------------------------------------------------------------------------- |
相关链接:
• EnumToStr • atoi • atol • _atoi64 • strtol • strtoll • strtoul • strtoull
• itoa • ltoa • ultoa • _i64toa • _ui64toa
• IntToStr • UIntToStr • IntToHex
• StrToInt • StrToIntDef • StrToInt64 • StrToInt64Def • StrToUInt64 • StrToUInt64Def
|