热情软件屋

 

为什么在过程中不能修改传递的参数


编号: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);
    其他不变。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio