如何从变量名得到变量的值? (100分)

  • 主题发起人 主题发起人 songhb
  • 开始时间 开始时间
S

songhb

Unregistered / Unconfirmed
GUEST, unregistred user!
有几个string型的变量,用户输入其中某个变量的名称,
如何才能把该名称对应的变量的值输出出来。即实现类似FoxPro中宏替换的功能。
我要的是string变量的值,而不是控件中某一属性的值,所以不能从Components中取。
也不是tStrings型的值。
 
是FindComponent吧。不过尽量少用。
 
你可以用TSTRINGLIST的NAMES和VALUES来实现,不过现在讲究界面与实现隔离,不推荐
让用户直接了解内部变量的设计方法了。
 
举个例子,不知道有没有理解正确你的问题:
比如你在form1上有个edit1和edit2控件,在edit1中输入‘edit2’,
将edit2的text变成‘成功’,需要代码如下
var
i:Integer;
begin
for i:=0 to form1.ComponentCount-1 do
if form1.Components.name=Trim(edit1.Text) then
begin
TEdit(form1.Components).Text:='成功';
Break;
end;
end;
 
类似是什么意思?
输入字符串,输入出字符串的值?
TStringList.AddObject试试
 
真的delphi变量就不行
用TStringList.Values[变量] 做假的变量就可以
 
What about storing the variables in a database table, and querying the table
with input parameter?!
 
弄个二维字符串数组,一维存变量名,一维存它对应的值, 怎么样?
 
用二维字符串数组是一个很好的办法,Delphi里没有宏。用FindComponent没有效率
 
不知道我的理解对不对
不如你定义:
Str1:,Str2:String;
Str1:='hello';
Str2:='Welcome';
Form1上有Edit1,Edit2
当用户在Edit1中输入
Str1,则在Edit2中显示hello
如果对,请回答,我再解释
 
http://www.CashRead.com/cgi-bin/page.cgi?r=shangjintong@ccsoft.com.cn
上面的网址可以赚美元,注册即可得到100$。并通过点击广告连接,继续赚美元。
 
用一维数组和枚举类型,数组对应变量值,枚举对应变量名,代码可读性较好
 
to:yfdciom
就是你说的那个意思,有办法么?
 
Str1:,Str2:String;
Str1:='hello';
Str2:='Welcome';
Form1上有Edit1,Edit2
当用户在Edit1中输入
Str1,则在Edit2中显示hello
这可能要绕点弯子,把变量名和他所对应的值写入配置文件,当用户输入变量名也就是配置文件的
键值名,然后就可以找到该键对应的值
 
后退
顶部