小知识:如何以字符形式获得枚举集中的元素。 ( 积分: 150 )

  • 主题发起人 主题发起人 crazycock
  • 开始时间 开始时间
C

crazycock

Unregistered / Unconfirmed
GUEST, unregistred user!
这种情况,以前感觉不可能的,呵呵~无意间看到一个朋友的帖子竟然解决了。
请访问。
http://www.delphibbs.com/delphibbs/dispq.asp?LID=3164840
推荐给大家~~
------------------
uses一下TypInfo。
type
MyEnum = (meName, meDay);
procedure TForm1.Button1Click(Sender: TObject);
var
tmp :MyEnum;
begin
tmp :=meDay;
ShowMessage(GetEnumName(TypeInfo(MyEnum), Ord(tmp)));
end;
150分有50分奖励给Puha的。还有100分,顶者都有分。
 
这种情况,以前感觉不可能的,呵呵~无意间看到一个朋友的帖子竟然解决了。
请访问。
http://www.delphibbs.com/delphibbs/dispq.asp?LID=3164840
推荐给大家~~
------------------
uses一下TypInfo。
type
MyEnum = (meName, meDay);
procedure TForm1.Button1Click(Sender: TObject);
var
tmp :MyEnum;
begin
tmp :=meDay;
ShowMessage(GetEnumName(TypeInfo(MyEnum), Ord(tmp)));
end;
150分有50分奖励给Puha的。还有100分,顶者都有分。
 
路过此贴,意外拾到金,以一“顶”回报!
 
你在:
http://www.delphibbs.com/delphibbs/dispq.asp?LID=3164840
的问题:

to crazycock
不知道下面的代码对你上面的要求是不是有帮助?

获得其他应用程序窗口中某个控件的句柄

var
myhandle : THandle;//本地全局变量

function EnumerateChildWindows(hWnd: HWND; lParam: LPARAM): BOOL;stdcall;
var//枚举函数
windowCaption:array[0..254] of Char;
begin
GetWindowText(Hwnd,WindowCaption,255);
if WindowCaption ='确定' then
myhandle := hWnd;//找到的按钮句柄
Result:=true;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
Hnd : HWnd;
begin
Hnd := FindWindow( nil,'AAA');//找该程序窗体的句柄
if Hnd = 0 then exit;//没找到,退出
EnumChildWindows( Hnd, @EnumerateChildWindows, 0 );
showmessage(inttostr(myhandle));
end;
 
那我就来顶了
 
可以将枚举集中的元素强制转换为字符型吗?
 
JohnSun2002,以字符形式得到枚举集中的元素,你实验一下代码就知道了:)
 
我的QQ 308886262,请crazycock多指教。
 
我也是菜鸟:) 哪里敢说请教啊。
这个帖子让他先放两天,好让大伙都学几招。
 
那我再提一个类似的问题,什么办法得到字符串形式的集合?特别是由枚举值构成的集合?
 
看TypInfo单元内,还有GetEnumValue等很多有用的方法。
 
能否在一个方法内部取得方法的名称?
 
这没什么奇怪的.这是RTTI基本的功能,否则你想.IDE的属性察看器/*.dfm当中文字表述的枚举值该如何处理
 
昨天刚看了一点有关
RTTI 的东西,正好看到这个,可以在 <delphi 5 开发人员指南> 上找到.有兴趣的可以看看
 
to qi_jianzhou,确实哦。书就在我枕头边,竟然。。。。。惭愧!
 
后退
顶部