
implementation Uses TypInfo; procedure TForm3.FormCreate(Sender: TObject); //定义枚举类型 type TDayOfWeek=(Monday,Tuesday,Wednesday,Thursday,FriDay,Saturday,Sunday); var s: string; aWeek:TDayOfWeek; begin ShowMessage('枚举字符串:' + GetEnumName(TypeInfo(TDayOfWeek), 0) ); ShowMessage('枚举字符串:' + GetEnumName(TypeInfo(TDayOfWeek),Ord(Monday))); aWeek:=Monday; ShowMessage('枚举字符串:' + GetEnumName(TypeInfo(TDayOfWeek),Ord(aWeek))); end;

GetEnumName(TypeInfo( System.TTypeKind), ord( pMethod.ReturnType.TypeKind));
遍历枚举
对于枚举类型,Low 返回枚举的第一个值,而 High 返回枚举的最后一个值。你可以使用这两个函数来遍历枚举的所有值。
type
TMyEnum = (Value1, Value2, Value3);
var
enumValue: TMyEnum;
begin
for enumValue := Low(TMyEnum) to High(TMyEnum) do
begin
// 在这里处理枚举值 enumValue
WriteLn(GetEnumName(TypeInfo(TMyEnum), Integer(enumValue)));
end;
end;
在这个例子中,enumValue 将依次取 TMyEnum 类型的 Value1、Value2 和 Value3 这三个值

implementation uses TypInfo; {$R *.dfm} procedure TForm2.FormCreate(Sender: TObject); var theStringname:String; ptd: PTypeData; i:integer; begin ptd := GetTypeData(Typeinfo(TAlignment)); Memo1.Clear; for i:=ptd.MinValue to ptd.MaxValue do begin theStringname := GetEnumName(Typeinfo(TAlignment),i); Memo1.Lines.Add(theStringname); end; end;
浙公网安备 33010602011771号