利用TypInfo单元的GetEnumName和GetEnumValue可以遍历任意枚举类型,并获取其名称和值。下面是示例Demo。
procedureTForm1.btnTestClick(Sender:TObject);
var
p:PTypeData;
i:Integer;
s:String;
pt:PTypeInfo;
begin
ListBox1.Items.Clear;
pt:=TypeInfo(TWindowState);
ifpt.Kind<>tkEnumerationthenbegin
ShowMessage('不是枚举类型');
Exit;
end;
p:=GetTypeData(TypeInfo(TWindowState));
//将获取的枚举类型信息,以枚举名=枚举值的形式加入到ListBox中
ListBox1.Items.beginUpdate;
try
fori:=p.MinValuetop.MaxValuedobegin
S:=GetEnumName(pt,i);
ListBox1.Items.Values[S]:=IntToStr(GetEnumValue(pt,S));
end;
finally
ListBox1.Items.EndUpdate;
end;
end;
var
p:PTypeData;
i:Integer;
s:String;
pt:PTypeInfo;
begin
ListBox1.Items.Clear;
pt:=TypeInfo(TWindowState);
ifpt.Kind<>tkEnumerationthenbegin
ShowMessage('不是枚举类型');
Exit;
end;
p:=GetTypeData(TypeInfo(TWindowState));
//将获取的枚举类型信息,以枚举名=枚举值的形式加入到ListBox中
ListBox1.Items.beginUpdate;
try
fori:=p.MinValuetop.MaxValuedobegin
S:=GetEnumName(pt,i);
ListBox1.Items.Values[S]:=IntToStr(GetEnumValue(pt,S));
end;
finally
ListBox1.Items.EndUpdate;
end;
end;
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关推荐
演示如何操作Delphi 的枚举类型。 1. 包含源代码; 2. 包含执行程序 3. 演示如下函数如何使用:GetEnumName、GetEnumProp、GetEnumValue、SetEnumProp 4. 非常简单,一看就会。
Delphi获取内存信息+枚举进程..rar
delphi_数组定义delphi_数组定义delphi_数组定义delphi_数组定义delphi_数组定义delphi_数组定义delphi_数组定义
Delphi获取网络中的SQL服务器名称..rar
delphi源码获取指定类型的文件数量 delphi源码获取指定类型的文件数量
delphi枚举系统硬件id,SetupDiGetClassDevs,SetupDiEnumDeviceInfo,SetupDiGetDeviceRegistryProperty
DELPHI窗体枚举源码,可以枚举全部窗体,包含隐藏窗体。
Delphi 获取系统中已安装的中文输入法,判断是否在中文状态,若是则关闭它,切换半角和全角模式,切换中文标点模式和英文标点模式,并对输入法做相关设置。以下是相关代码: procedure TForm1.closecid; var ...
Delphi PCI设备枚举,代码参考 遍历PCI设备。根据供应商代码和设备代码,获取对应的PCI设备名称,要使用到WinIok.dll和WinIo.sys组件,如果是单功能设备,则不再查funcNo>0的设备,已为您打包在源码里。
可以获取其它程序文本框里的值,用途你懂得
Delphi获取和修改计算机名称..rar
Delphi获取本机IP、名称、网卡MAC等信息..rar
Delphi获取打印机列表和详细信息
Delphi 线程枚举的简单例子,可能和CPU线程有关系,线程越多的情况下,枚举到的线程也越多。线程是如何获取的,这个枚举的例子会告诉你方法。
delphi枚举字符串转换
delphi获取图片指定点RGB颜色值,载入一张BMP图像,鼠标单击图像任意处,将获取该处的RGB颜色分量图。任何一种颜色都是由RGB分量值构成,获取这些分量值,就可以改变这些值,从而改变颜色,为程序的进一步处理提供...
delphi 获取图片指定点RGB值 图片RGB,很好用源代码可以作为参考
delphi 获取窗口信息 delphi 获取窗口信息
Delphi获取窗口文本..rar```