1、数组越界问题
var
   k:array[1..3] of integer;
   i:integer;
begin
   i:=5;
   showmessage(inttostr(k[i]);//这个居然不出错
end;2、如果有N个Label要创建,数量不确定。大家用什么办法来创建?
最好有tstringlist这样的,操作比较方便。

解决方案 »

  1.   

    TList 
    tstringlist 都行吧就用里面的成员函数操作 不行吗 
      

  2.   

    showmessage(inttostr(k[i]);
    的结果是什么?  0?
      

  3.   

    var
      k:array[1..3] of integer;
      i:integer;
    begin
      i:=5;
      k[i]:=255;
      showmessage(inttostr(k[i]);//这个居然不出错
    end;结果就是255
      

  4.   

    看delphi 帮助就行了 
    TList.add  增加
    TList.delete 删除 
    动态增加删除 实现你需要的功能  帮助里的例子 
    Label 就是一个item 
      

  5.   

    1.是错的,F7运行看看
    2.array of TLabel;
      

  6.   

    应该有点类似于
    var i,s:integer;showmessage(inttoStr(i));
    showmessage(inttoStr(s));这类情况。
      

  7.   

    k[i]在Delphi中编译时被转成了 K的首地址+i个整型长度 的一个地址了,类似于C中的 *(k + i * SizeOf(Integer)),因此,只要这个地址有读写权限,对其访问和普通变量没什么区别。
    不过Delphi提供了一个编译选项,可检查这种越界的情况,设置之后,像楼主这样的调用就会报错,设置方法为 Option->Compiling->Range Checking