能否通过一个变量来改变另外一个变量的值(50分)

  • 主题发起人 主题发起人 阿韬
  • 开始时间 开始时间

阿韬

Unregistered / Unconfirmed
GUEST, unregistred user!
问题如下:
如果有3个字符串类型的变量name,address,condition。
condition的存放的值可能是name也可能是address这两个变量的变量名。现在要通过判断
condition的值是哪个变量名来决定将字符串“abcd”赋值给name变量或者address变量。
请问这个该怎么写?
 
if condition='name' then name:='abcd' else address:='abcd';
考虑多了吧?
 
IF condition='name' then name:='abcd'
esle if condition='address' then address:='abcd'
esle showmessage('SB')
 
if condition='name then
name:='abcd'
else
begin
if condition='address=' then
address:='abcd'
end;
 
各位大哥,如果用if后者case,我还来问干什么。
 
还有一个办法,自己作一个函数.还有别的吗?我也想知道
 
楼主可能是从脚本语言转过来的吧。
在DELPHI一类的编译型的高级语言中,变量名只是一个内存块的代号而已,在程序编译后,
变量名就不复存在了。
想在运行时直接从字串得到变量名,好象是不可能的。
或者象楼上几位所说的,用if,case判断吧。
不过程序要这样做恐怕就已经在思路上出问题了。
 
还有谁来说说。。。。。。
 
还有一个办法,
TUser=class(TComponent)
private
FName: String;
FAddress: String;
FCondiction: String;
published
property Name : String read FName write FName;
property Address: String read FAddress write FAddress;
property Condiction: String read FCondiction write FCondiction;
end;

然后利用RTTI来处理, 别忘了引用TypeInfo单元
procedure SetProperty(aComponent: TCOmponent
aPropertyName: String
aValue: String);
var
PropInfo: PPropInfo;
begin
PropInfo := GetPropInfo(aCOmponent.ClassInfo, aPropertyName);
if PropInof <> nil then
begin
if PropInfo^.PropType^.Kind = tkString then
SetStrProp(aComponent, aPropertyName, aValue);
end;
end;
 
楼主的想法是有点复杂,看了只有用RTTI
但是处理两个变量,值得?
 
不是为了处理两个变量而这么问,而是想想看有没有可能可以实现。
 
后退
顶部