C
crazycock
Unregistered / Unconfirmed
GUEST, unregistred user!
我以前知道了如何以字符形式获得枚举集中的元素。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3165106
现在有个情况,就是我建了一个ini文件,里面有很多的值,我在loadini的时候会读取进来,放到一个结构体中,比如ini文件是
[string]
menu_play=播放
menu_stop=停止
menu_next=下一曲
menu_prior=上一曲
menu_pause=暂停
我在程序中,有一个结构体
TMediaCtrl=record
menu_play:string;
menu_stop:string;
menu_next:string;
menu_prior:string;
menu_pause:string;
end;
var
mediactrl:TMediaCtrl;
我需要挨个通过
mediactrl.menu_play := ini.ReadString('string','menu_play','');
mediactrl.menu_stop := ini.ReadString('string','menu_stop','');
mediactrl.menu_next := ini.ReadString('string','menu_next','');
mediactrl.menu_prior := ini.ReadString('string','menu_prior','');
mediactrl.menu_pause := ini.ReadString('string','menu_pause','');
在增加新的内容后,需要ini增加一条,结构体增加一条,loadini代码增加一条,很麻烦。
不知道有没有办法获得结构体的某个成员,然后再获得它的字符串名,这样就可以一劳永逸了。
最理想的代码是:
for i:=0 to GetRecordMemberCount(TMediaCtrl)-1 do
GetRecordMember(TMediaCtrl).Item := ini.ReadString('string',GetRecordMember(TMediaCtrl).Item.Name,'');
其中,
GetRecordMemberCount函数获得结构体TMediaCtrl的成员数,
GetRecordMember().Item是获得某个成员
GetRecordMember().Item.Name得到这个成员的名字(string类型的返回值)。
能否实现?TypInfo单元里是否提供这样的函数?或者把TMediaCtrl定义为TObject,这样反而有点可能哦~对类的成员好像更多运行时函数可用。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3165106
现在有个情况,就是我建了一个ini文件,里面有很多的值,我在loadini的时候会读取进来,放到一个结构体中,比如ini文件是
[string]
menu_play=播放
menu_stop=停止
menu_next=下一曲
menu_prior=上一曲
menu_pause=暂停
我在程序中,有一个结构体
TMediaCtrl=record
menu_play:string;
menu_stop:string;
menu_next:string;
menu_prior:string;
menu_pause:string;
end;
var
mediactrl:TMediaCtrl;
我需要挨个通过
mediactrl.menu_play := ini.ReadString('string','menu_play','');
mediactrl.menu_stop := ini.ReadString('string','menu_stop','');
mediactrl.menu_next := ini.ReadString('string','menu_next','');
mediactrl.menu_prior := ini.ReadString('string','menu_prior','');
mediactrl.menu_pause := ini.ReadString('string','menu_pause','');
在增加新的内容后,需要ini增加一条,结构体增加一条,loadini代码增加一条,很麻烦。
不知道有没有办法获得结构体的某个成员,然后再获得它的字符串名,这样就可以一劳永逸了。
最理想的代码是:
for i:=0 to GetRecordMemberCount(TMediaCtrl)-1 do
GetRecordMember(TMediaCtrl).Item := ini.ReadString('string',GetRecordMember(TMediaCtrl).Item.Name,'');
其中,
GetRecordMemberCount函数获得结构体TMediaCtrl的成员数,
GetRecordMember().Item是获得某个成员
GetRecordMember().Item.Name得到这个成员的名字(string类型的返回值)。
能否实现?TypInfo单元里是否提供这样的函数?或者把TMediaCtrl定义为TObject,这样反而有点可能哦~对类的成员好像更多运行时函数可用。