Delphi中的GetEnumName和GetEnumValue的使用方法

来源:互联网 发布:淘宝优惠劵 编辑:程序博客网 时间:2024/06/05 11:07

利用TypInfo单元的GetEnumName和GetEnumValue可以遍历任意枚举类型,并获取其名称和值。下面是示例Demo。

uses TypInfo;

...

procedure TForm1.btnTestClick(Sender: TObject);var  p: PTypeData;  i: Integer;  s: String;  pt: PTypeInfo;begin  ListBox1.Items.Clear;  pt := TypeInfo(TWindowState);  if pt.Kind <> tkEnumeration then begin    ShowMessage('不是枚举类型');    Exit;  end;  p := GetTypeData(TypeInfo(TWindowState));  //将获取的枚举类型信息,以枚举名=枚举值的形式加入到ListBox中  ListBox1.Items.beginUpdate;  try    for i := p.MinValue to p.MaxValue do begin      S := GetEnumName(pt,i);      ListBox1.Items.Values[S] := IntToStr(GetEnumValue(pt, S));    end;  finally    ListBox1.Items.EndUpdate;  end;end; 

0 0
原创粉丝点击