var v:variant; 
for I := 0 to 10 do begin
   v:=vararrayof([i]);
end;
 showmessage(v[0]);//在这里得到的值是10
我的想法是在v里面放的是1~10 所以应该打印0才是不知道这里面怎么改呢?
帮忙看看

解决方案 »

  1.   


    var
      I :Integer;
      v:variant;
    begin
      for I := 10 downto 0 do begin//这里有顺序问题
        v:=vararrayof([i]);
      end;
     showmessage(v[0]);//在这里得到的值是10
      

  2.   


    var 
      v:variant;
      i:integer;
    begin
      v:=VarArrayCreate([0,9], varInteger);
      for I := 1 to 10 do
      begin
        v[i-1] := i;
      end;
      showmessage(v[0]);// '1'
    end;
      

  3.   

    我想要得到的结果是
    v[0]=0
    v[1]=1
    v[2]=3
    .
    .
    .v[9]=9
    v[10]=10var
      I :Integer;
      v:variant;
    begin
      for I := 0 to 10 do begin
        v:=vararrayof([i]);
      end;
     showmessage(v[0]);//在这里得到的值是覆盖后最后值0
      

  4.   

    v:=VarArrayCreate([0,9], varInteger);
    后要不要v吧内存释放呢?
      

  5.   

     加上v:= Unassigned,应该系统会自动释放了