一直对自定义过程和字定义函数的形参不太了解
看别人的代码
那些参数五花百乱的
都不知道为什么要那么定义的所以然
请前辈就参数定义的问题说说定义的经验
最好有些例子让小辈参考参考
有些人的某个自定义过程代码定义5.6个参数
那就让我更摸不着头脑了

解决方案 »

  1.   

    UP 先....你想要哪方面的?不是什么方面的问题
    是在看VCL代码和看别人的源代码的时候
    每当看见别人很灵活的定义过程和函数的参数
    都摸不着头脑他门为什么要那么定义和定义了干什么用
    这可能是我县市最薄弱的技术点
      

  2.   

    1、procedure test(const n: integer);
    begin
      n := n + 3; //这是不允许的
    end;
    2、procedure test(n: integer);
    begin
      n := n + 3; //这是允许的,n相当于过程里面的局部变量
    end; 
    3、procedure test(var n: integer);
    begin
      n:=n + 3;
    end;
    3、a=4,则test(a)执行过后,a=7!
    2、a=4,则test(a)执行过后,a=4!
    参数是通过寄存器传递的,多了就不够用了^__^
      

  3.   

    比如这样的参数
    function readclient(var buffer;count;integer);ingeger;override;
    //(var buffer;count;integer);
    这两个参数干什么用的
    用户什么时候把这两个参数用什么形式传进去
      

  4.   

    blueshu() 
    兄弟
    我给短信息你了
    你被再害我了
    QQ了加我
    有话好商量
    我开几个散分帖给你就是了
      

  5.   

    function readclient(var buffer;count;integer);ingeger;override;
    应该是
    function readclient(var buffer,count:integer);ingeger;override;
    吧,呵呵
    buffer,count都是整形变量形参,override说明还有另一个函数名和这个一样
      

  6.   

    呵呵,正如 wxjh(苦儿) 所说buffer,count都是整形变量形参,
    在你调用后,调用前的值是不会发生改变的,override说明还有另一个函数名和这个一样
    在这个单元中函数名复用
      

  7.   

    实例出真知,看看我的例子:
        function addF(x,y:integer):integer;  //自定义函数,求两数之和:)
         var
           h:integer;       
         begin
           h:=x+y;
           result:=h;  //或者是:addf:=h;
         end;
    这里的x,y就是形参,在函数体内使用!
       要调用的时候,传递的就是实参了,如:
         edit1.text:=inttostr(addf(1,2));
    这里的1,2就是实参
    当然,参数的传递还有两种方式的,看看书吧!
      

  8.   

    不如自己找本pascal书看几分钟就知道了。