各位大侠:小弟在delphi中定义了一个过程:procedure QiuHe(var a,b,c,d,e,f,g,h,i,j:single);
begin
   mm=a+b+c+d+e+f+g+h+i+j;
end;调用此过程用的是:QiuHe(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj:string);  //(1)在(1)句中出现错误:E2034 Too many actual parameters这到底是咋回事呀????????

解决方案 »

  1.   

    自己比较一下procedure QiuHe(var a,b,c,d,e,f,g,h,i,j:single);QiuHe(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj:string); //(1)
      

  2.   

    我试过的改为QiuHe(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj:single); //(1)错误依旧
      

  3.   

    调用此过程用的是:QiuHe(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj); //(1)这样就可以了,不要后面的:string
      

  4.   

    procedure QiuHe(var a,b,c,d,e,f,g,h,i,j:single);
    begin
      mm=a+b+c+d+e+f+g+h+i+j;
    end;你的过程参数定义 为:single
    为什么传string呢?
      

  5.   

    主要是用了single后会多了一项错误呵呵就是“(”excepted but“)”found 错误搞不清楚为什么呀
      

  6.   

    还有QiuHe(aa,bb,cc,dd,ee,ff,gg,hh,ii,jj:string); //(1)在unit1中,而procedure QiuHe(var a,b,c,d,e,f,g,h,i,j:single);在unit2中这不会有什么影响吧
      

  7.   

    procedure QiuHe(var a,b,c,d,e,f,g,h,i,j:single);
    begin
      mm=a+b+c+d+e+f+g+h+i+j;
    end;改为:
    procedure QiuHe(a,b,c,d,e,f,g,h,i,j:single);
    begin
      mm=a+b+c+d+e+f+g+h+i+j;
    end;
      

  8.   

    把你的Unit1、Unit2代码贴出来看看吧
      

  9.   


    function QiuHe(a,b,c,d,e,f,g,h,i,j:Integer): Integer;
    begin
      result := Round(a+b+c+d+e+f+g+h+i+j);
    end;procedure TF_Main.btnTestClick(Sender: TObject);
    begin
    //
      AddIntMsg( qiuhe(-1,2,3,4,5,6,7,8,9,10 ) );end;
      

  10.   

    另一种实现function QiuHe2(arNum:array of Integer): Integer;
    var
      i: Integer;
    begin
      Result := 0;
      for i := 0 to Length( arNum ) - 1 do
        Result := Result + arNum[i];
    end;procedure TF_Main.btnTestClick(Sender: TObject);
    begin
    //
      AddIntMsg( qiuhe2( [-1,2,3,4,5,6,7,8,9,10] ) );end;