aAuthority[sys_cnt]:=g_aSysNo[i];
这句话负值出错,后面有值的但是就是报错,是不是和我LIST没初始化有关啊,
还有这个for i:=0 to Length(g_aSysNo)-1 do语句,
I从0开始还是[Length(g_aSysNo)-1]这个开始诱惑试,从Length(g_aSysNo)这个开始阿

解决方案 »

  1.   

    aAuthority[sys_cnt]这个是LIST数组,没有初始化,运行时,g_aSysNo[i]这个是有值得,但是无法负值成功
      

  2.   

    1、for 循环中i肯定是从 i:=0 这里的0开始的。如果是 for i := n - 1 downto 0 do 的话,就是从n-1开始了。
    2、LIST数组是什么LIST? 首先你要确保 aAuthority 已经 Create,如果没有Create就更不用说其他了。看你的代码似乎应该是StringList,如果真是StringList的话,不要用aAuthority[i]的方式赋值,建议你使用:
    aAuthority.Add(g_aSysNo[i])
      

  3.   

    lx130说的对,如果你是stringlist,你必须经过Tstringlist.add()函数后才可以使用Tstringlist[],其实,TstringLIst[]并不是一个字符串数组,它是利用属性对TstringList.items()函数的封装。
      

  4.   

    没有初始化?你没创建吗?晕
    var
      aAuthority:TStrings
      i:Integer;
    begin
      aAuthority:=TStringList.Create;
      try
        for i:=0 to Length(g_aSysNo)-1 do 
          aAuthority[i]:=g_aSysNo[i]; 
      finally
        FreeAndNil(aAuthority);
      end;
    end;