请问怎样访问一个外部变量?(100分)

  • 主题发起人 主题发起人 ridle
  • 开始时间 开始时间
R

ridle

Unregistered / Unconfirmed
GUEST, unregistred user!
题目说的不清楚,我举个例子吧:
假设有这么一个类,只是举例。
TTest = class
public va:Integer;
end;

有这么一个函数:
function FuncA( va:Integer);
var t:TTest;
begin
t:=TTest.Create;
try
with t do begin
//(AAA)

end;
finally
t.Free;
end

end;

我的问题是在(AAA)处怎么访问函数的参数va,而不是t(TTest)中的va成员。
请大家不要抬杠,解决这个问题的办法很简单,不用with就是了,但现在
讨论的实现的可能性。
 
呵呵,考验delphi呀,
inprise公司该把你招入作开发测试
 
不抬扛,但是也不用钻牛角尖:


TTest = class
public va:Integer;
end;

有这么一个函数:
function FuncA( va:Integer);
var t:TTest;
/////////////////////////////////////////
vb:Integer;
/////////////////////////////////////////
begin
t:=TTest.Create;
try
with t do begin
//(AAA)
//这里访问VB就可以了!
end;
finally
t.Free;
end

end;
 
sorry:

TTest = class
public va:Integer;
end;

有这么一个函数:
function FuncA( va:Integer);
var t:TTest;
/////////////////////////////////////////
vb:Integer;
/////////////////////////////////////////
begin
vb:=va;
t:=TTest.Create;
try
with t do begin
//(AAA)
//这里访问VB就可以了!
end;
finally
t.Free;
end

end;
 
从理论上来说是可以的,只要你想办法找到传入参数va的地址就可以了,可是好象有点没事找事!
 
aizb说得很对
 
没事找事!改一下参数va名称就什么事都没有
 
是啊,同意楼上的楼上:
好像没有可以省事的方法,都会给自己添麻烦。
Delphi没有 作用域 操作符 一类的东西。

如果有人找到能 不添麻烦 却能实现功能的方法 告诉我一下。
 
如果不修改变量名,应该是访问不到了。
在一个函数或过程里,先是一局部变量为主。象你在函数里定义了va,此时再引用va,编译
器会认为是局部变量的va,而不会是全局变量的va。
 
要用with,那就一定会出现某些变量不能访问到的现象啦!
 
后退
顶部