setlength(Label1,n);
之后,Label1的下标是从[0]到[n-1],
而你的for i:=0 to n do里
当i = n时,label1[i]即label1[n]是无效的.
之后,Label1的下标是从[0]到[n-1],
而你的for i:=0 to n do里
当i = n时,label1[i]即label1[n]是无效的.
解决方案 »
- delphi学习日记之DLL文件
- 请大家帮助提供一个Clientdataset和JSON之间相互转换的方法
- delphi+crystal report(水晶报表)10开发的程序,发布时需要带哪些文件呢?
- 在线等:哪位弟兄有日历程序呀,跟我贴出来吧,我给100赠送,解决加到100分。
- 小弟有重要问题请教,请求各位高手帮忙???????特急,已经捆扰两我周了。。。。。
- 各位仁兄,放掉所有分,各路英雄豪杰,小弟这个问题,希望各位帮一帮,先声谢谢
- 请问:用quick report打印带网格的报表?
- 怎样在Listbox的每一项中除了存字符串以外再存一个整数值?我用TTreeView时借用了ImageIndex这个我不用的属性。
- 如何让javascript识别用delphi制作的对象
- 如何屏蔽TChart控件的右键移动处理,会的人帮帮忙 Thanks
- 请问:如何将带有‘的字符串内容写入到相关表中!如:将I DON'T KNOW写入到相关表的字符串字段内!!
- 关于错误捕获,我的代码错在那里?
错误原因是由于数组越界引起的
i,n:Integer;setlength(Label1,n);for i:=0 to n-1 do
begin
label1[i].top:=...
label1[i].left:=...
label1[i].caption:='asdfasd';
label1[i].Parent:=self;
end;循环里改为n-1,请测试上面代码。
begin
label1[i].top:=...
label1[i].left:=...
label1[i].caption:='asdfasd';
label1[i].Parent:=self;
end;
是不是还没有动态创建啊?
for i:=0 to n-1 do
begin
Label1[i]:=TLabel.create(self);
............
end;
-->for i:=0 to n-1 do // 用n数组过界
begin
--> label1[i]:=TLabel.Create(self);// 在动态使用部件前应先创建
label1[i].top:=i*16 + 8;
label1[i].left:=8;
label1[i].caption:='asdfasd';
label1[i].Parent:=self;
label1[i].Visible:=true;// 使部件可见
end;
for i:=0 to n-1 do
begin
label1[i]:=tlabel.create(self);
label1[i].parent:=self;
label1[i].top:=...
label1[i].left:=...
label1[i].caption:='asdfasd';
end;