主页C++ Builder 资料C++ Builder 参考手册System 字符串EnumToStr
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 字母顺序排列的目录
网友留言/技术支持
EnumToStr - 枚举型转字符串

模板函数定义:

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

 

相关链接:

StrToEnumatoiatol_atoi64strtolstrtollstrtoulstrtoull
itoaltoaultoa_i64toa_ui64toa
IntToStrUIntToStrIntToHex
StrToIntStrToIntDefStrToInt64StrToInt64DefStrToUInt64StrToUInt64Def

◤上一页:WideString下一页:FloatToStr

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