为什么在过程中不能修改传递的参数
编号:QA003032
建立日期: 2000年6月13日 最后修改日期:2000年6月13日
所属类别:
cm:
我在使用DELPHI5时,自定义了一个带参数的过程,
procedure tmain.tomemo(x,y,z: integer);
begin
if (dbedit2.text='1') and (x<>0) then
begin
x:=x-1;
memo1.Lines.AddStrings(dbmemo1.Lines);
end;
..........
end;
在调用这个函数时,为什么值不能代入,如:
执行 tomemo(a1,b1,c1); 之后,a1,b1,c1的值并不改变(都在同一事件里),
非常希望您能给我解答,谢谢。
回答:
Delphi默认的传递参数的方式是传值,在这种情况下,你对传入的参数的任何修改都不会影响到调用过程的主程序中变量的值。对于你的要求应该采用传地址的方式,修改的方法是将定义改为:
procedure tmain.tomemo(var x,y,z: integer);
其他不变。
此问题由李海回答。
| |
|
|
| |
|
|