为什么,小弟我的二维动态数据会报错
为什么,我的二维动态数据会报错?
本来有一个二维数组,它是固定的值,我想把它变成动态
可为什么我编译的时候可以过,但运行时在窗体运行时报错了
还有,如果我设动态数组,但是要从1开始,而不是0开始怎么办?
------解决方案--------------------
动态数组下标从0开始的。
循环0到7
本来有一个二维数组,它是固定的值,我想把它变成动态
可为什么我编译的时候可以过,但运行时在窗体运行时报错了
还有,如果我设动态数组,但是要从1开始,而不是0开始怎么办?
以下是一个类型声明文件a.pas,
type
TRecArray = array of array of integer; //原来是array[1..8, 1..8] of integer;
var
ConstNum:integer;//定义动态数组长度
以下是b.pas是一个有窗口的文件,在FormCreate时有如下代码:
var
eight: array of array of TLabel; //array[1..8, 1..8] of TLabel;
EightCode: TRecArray ;
i, j: Integer;
begin
ConstNum:=8;//定义数组长度
SetLength(eight,ConstNum,ConstNum);//设置数组长度
SetLength(EightCode,ConstNum,ConstNum);//设置数组长度
//显示
for i := 1 to 8 do
for j := 1 to 8 do
begin
eight[i][j] := TLabel.Create(self); //??????????为什么到这里会报错,但原来如果全是8的固定值就不会?
eight[i][j].Parent := self;
eight[i][j].Width := 20;
eight[i][j].Height := 20;
eight[i][j].Left := (i - 1) * 20 + 200;
eight[i][j].Top := j * 20 + 420;
eight[i][j].Color := clRed;
end;
end.
------解决方案--------------------
动态数组下标从0开始的。
循环0到7