主页C++ Builder 资料C++ Builder 参考手册System 字符串StrToEnum
C++ Builder 串口控件
C++ Builder 编程技巧
C++ Builder 操作指南
C++ Builder 参考手册
基础知识
cfloat 浮点数
cmath 数学函数
cstdlib 标准库函数
System 字符串
 • UnicodeString
 • UTF8String
 • TStringList
 • TStrings
 • String
 • AnsiString
 • AnsiStringBase
 • AnsiStringT
 • RawByteString
 • UCS4String
 • WideString
 • EnumToStr
 • FloatToStr
 • FloatToStrF
 • FormatFloat
 • IntToStr
 • UIntToStr
 • IntToHex
 • StrToEnum
 • StrToFloat
 • StrToFloatDef
 • StrToInt
 • StrToIntDef
 • StrToInt64
 • StrToInt64Def
 • StrToUInt64
 • StrToUInt64Def
 • TFloatFormat
 • GetUnicodeCategory
 • IMLangCodePages
 • StringReplace
System 日期和时间
System.Math.hpp 数学函数
其他数据类型
VCL 基础类
VCL 应用程序
Pictures 图片
Graphics 绘图
Additional 控件
System 控件
A ~ Z 字母顺序排列的目录
网友留言/技术支持
StrToEnum - 字符串转枚举型

模板函数定义:

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);
}
//---------------------------------------------------------------------------

 

相关链接:

EnumToStratoiatol_atoi64strtolstrtollstrtoulstrtoull
itoaltoaultoa_i64toa_ui64toa
IntToStrUIntToStrIntToHex
StrToIntStrToIntDefStrToInt64StrToInt64DefStrToUInt64StrToUInt64Def

◤上一页:IntToHex下一页:StrToFloat

C++ 爱好者 -- Victor Chen 的个人网站 www.cppfans.com 辽ICP备11016859号