var LyrPanel:Array of TPanel;
I:integer;
begin
Setlength(LyrPanel,20);
For I:=0 to 20 do
begin
LyrPanel[I]:=TPanel.Create(ScrollBox1);
With LyrPanel[I] do //在此处出错
begin
Align:=alTop;
Color:=$00FC2C94;
Height:=33;
Caption:='';
//Visible:=True;
end;
end;
end;LyrPanel不是的parent不是指定了为存在的ScrollBox1吗?
I:integer;
begin
Setlength(LyrPanel,20);
For I:=0 to 20 do
begin
LyrPanel[I]:=TPanel.Create(ScrollBox1);
With LyrPanel[I] do //在此处出错
begin
Align:=alTop;
Color:=$00FC2C94;
Height:=33;
Caption:='';
//Visible:=True;
end;
end;
end;LyrPanel不是的parent不是指定了为存在的ScrollBox1吗?
解决方案 »
- 如何把jpeg还原成bmp?
- 从TXT文件中读出数据,再写入数据表中,每项数据类型都要对应的,怎么写代码呢?
- 我的程序中的图标颜色怎么突然都变了?
- 关于16进制数,递增的问题,在线等待100分
- 请教大家一个字串操作的问题
- 怎么设定DBGRID中字段按给定格式显示?
- 安装完DevExpress控件后,为何有些ExpressQuantumGrid 4 Suite例子提示我"TdxDBGrid not found"(Delphi7)
- 今天心情非常非常不好!!散分……【四】
- 不知奇不奇?简值不感相信!!!
- 转行十年了,现在需要写个小程序:FORM1和Edit1隐藏方面的。
- dbgrid的简单问题。
- 如何在C/S中传输WORD文件
I:integer;
begin
Setlength(LyrPanel,21);//**************注意这里需要申请21个lyrpanel空间
For I:=0 to 20 do
begin
LyrPanel[I]:=TPanel.Create(ScrollBox1);
lyrpanel[i].parent:=scrollbox1//**********注意这里需要指明在那个容器上创建
With LyrPanel[I] do //在此处出错
begin
Align:=alTop;
Color:=$00FC2C94;
Height:=33;
Caption:='';
end;
end;
end;
关于第一个问题的解释,你申请的数组空间必须比你要使用的空间大一,如你申请20个数组空间,使用为0..19可以,从5..20就不可以,因为,当你申请20个空间以后,前4个内存空间没有使用,从第5个内存空间开始使用,而不是象你想的那种从第一个那里开始存放5到20,至于为什么要比使用的大一,是因为要留一个数组空间存放数组大小。你出错就出在这里,parent没有指定不会引发异常。关于第2个问题的解释:parent与创建时传递的参数是不一样的,LyrPanel[I]:=TPanel.Create(ScrollBox1);表示你创建的lyrpanel在谁释放后才释放,在这里就是当
ScrollBox1释放后,lyrpanel释放,而parent表示要在那个容器上创建,这和create里的参数是两个概念。
看在你的名字比较想MM而且又没人和我抢的份上,说了这么多,已经很详细了,在我机器上调试通过后来的兄弟不用补充了,分都给我吧,我正冲5条内裤呢