setlength(l,n);
//          ~不要-1

解决方案 »

  1.   

    setlength(l,n-1);
      
    for  i:=0  to  n-1  do这2句有冲突,你访问中存在内存泄露问题(当i = 0 时)
      

  2.   

    l:array of tlabel 如果没有setlength(l,n)当程序运行到:
    l[i]:=tlabel.create(self);
    它同样报错:eaccessviolation                  
      

  3.   

    你没有调用setlength的话 l 只是一个指针当你调用l[i]时自然就访问了无效内存
      

  4.   

    你的数组长度定义少了1
    setLength(l,n)  //长度应该为n,而不是你定义的n-1for i:=0 to n-1 do  //循环了n次,而你的数组长度是n-1当然会错了