我有一个过程它有两个返回值(我要怎样设置)  我怎样才能获得它们。
最好说得详细些。谢谢。

解决方案 »

  1.   

    不只两个, 可以有N个
    procedure aaa(var A: string; var B: Integer);
    begin
      A := 'AAAAAAAAAAA';  //可以把A返回给调用处的变量
      B := 100;      //可以把B返回给调用处的变量
    end;
      

  2.   

    procedure myproce(var i:integer;var j:integer);
    begin
       i:= 1;
       j:=1000;
    end;procedure myproce2;
    var a,b:integer;
    begin
       myproce(a,b);
       //这里就可以返回a=1,b=1000;end;/////////////   ok??
      

  3.   

    function your_fun_name(your_parameters): variant; 
    begin
      //如果你对variant类型有足够了解的话,不妨用variant,variant可以随意改变为各种类型,包括数组
    end;
      

  4.   

    procedure myproce(var i:integer;var j:integer);
    var sumall:int;
    begin
    sumall=I+j;end ;
    以上只是傳了兩個參數.
    -----------------------------------------------
    function  myproce(var i:integer;var j:integer):int;
    var sumall:int;
    begin
    sumall=I+j;
    result :=sumall;
    end ;
    function  才返回結果
      

  5.   

    to  chludlf(春露) 
    楼上的没错,参数加上var表示传入传出,即使没有返回值也是没关系的,关键是如果这样的返回值很多,而且函数体很复杂,比如需要递归,那么函数的效率就有点低了,空间复杂度增加了。
      

  6.   

    若参数多,use record return
      

  7.   

    自己定义一个记录型变量就可以了:
    例如:
    type
       Mydata = record
          v1 : string
          v2 : integer;
       end;function func(var A: string; var B: Integer):Mydata;
    begin
      result.v1 := A;
      result.v2 := B;
    end;
      

  8.   

    可以选择返回一个记录类型,或者指针类型。在参数表里面用指针也可以。再有就是参数前面加上var这是对形式参数地址传递。函数内外操作的变量都是使用同一个地址,所以也相当于返回值。如果不加这个限定的话,默认使用const传递。也就是值传递,把函数外的变量值复制到函数参数表中的形参上。
      

  9.   

    用VAR传递,用一个VARIANT 型的ARRAY更方便,你试试,
      

  10.   

    写成function,或者是在procedure中用result语句