怎样取得Variant arrays数组的长度?

解决方案 »

  1.   

    好久不用DElphi了,都忘记了,似乎是用highbound和lowbound吧
      

  2.   

    Pascal
    function VarArrayDimCount(const A: Variant): Integer;
      

  3.   


    VarArrayDimCount取的值不对,取成了1,我的代码大概如下:function a(out Rst: variant):Boolean;
    var
      ResArray: variant;
    begin
      arrayLen := 78;
      ResArray := VarArrayCreate([0, arrayLen], varVariant);
    ....
    end;function b(ResArray :variant;out Rst: variant):Boolean;
    begin
      if VarIsArray(ResArray) then
      begin
        ShowMessage(inttostr(VarArrayDimCount(ResArray)));
      end;
    end;procedure test;
    var
      return,return2 : variant;
    begin
      if a(return) then
      begin
        if b(return,return2) then
          showmessage('success.');
      end;
    end;
      

  4.   


    procedure testdd;
    var
      ResArray,return2 : variant;
      i : integer;
    begin
      ResArray := VarArrayCreate([0, 78], varVariant);
      for i := 0 to 78 do ResArray[i] := i;  if VarIsArray(ResArray) then
     showmessage(inttostr(VarArrayHighBound(ResArray,1)));不好意思,應該是:
    function VarArrayHighBound(const A: Variant; Dim: Integer): Integer;
      

  5.   

    VarArrayHighBound(v) - VarArrayLowBound(v) + 1