我必须动态创建Editbox,我正在创建使用循环(循环变量j)。成功创建了5个组件,但在第6个组件中,数组显示为nil(在调试过程中),即实际上没有创建任何内容。第7和第8个组件再次成功创建,但第9个组件未成功创建。 我已经声明了像
这样的变量 sud,eud,fud,a,e,c,d,na,st1,st2,citye,statee,pinne,cn,cr,cb,ca: array [0..9] of TEdit;
crr,vcl: array [0..9] of TEdit;
我在上面声明的所有其他组件都是在该循环中成功创建的。
crr[j+3]:=tEdit.Create(coregroup[i]);
crr[j+3].Parent:=coregroup[i];
crr[j+3].Top:= 77;
crr[j+3].Left:=83+(j*57);
crr[j+3].Width:=17;
我和最近两天的代码情况相同。 如果需要更多说明,我可以提供给您。
实际代码是 -
sud,eud,fud,a,e,c,d,na,st1,st2,citye,statee,pinne,cn,cr,cb,ca: array [0..9] of TEdit;
crr,vcl: array [0..9] of TEdit;
dud,leud,lfud,b,f,g,h,nal,st1l,st2l,cityel,stateel,pinnel,dt,cl,crl,cbl,cal,vce: array [0..9] of TLabel;
count,ppointer:integer;
rcaldt: array[0..5] of TDateTimePicker;
coregroup:array of TGroupBox;
var
i,j,kk,aa,x:integer;
divv:array[0..3] of Tlabel;
u,m,k:integer;
begin
k:=0;
m:=0;
//kk:=groupbox11.ControlCount-1;
SetLength(coregroup,5);
for i:=0 to count-1 do
begin
coregroup[i]:= tGroupbox.Create(groupbox11);
coregroup[i].Parent:=groupbox11;
coregroup[i].SetBounds(8+(i*223),140,x,170);
if ctvt.ItemIndex=0 then
coregroup[i].Caption:='C T'+ IntToStr((aa*i)+1)
else
coregroup[i].Caption:='V T'+ IntToStr((aa*i)+1);
cl[0]:= tLabel.Create(coregroup[i]);
cl[0].Parent:=coregroup[i];
cl[0].Top:= 20;
cl[0].Left:=8;
cl[0].Caption:= 'CORE';
cl[0].Font.Style := cl[0].Font.Style + [fsBold];
cbl[0]:= tLabel.Create(coregroup[i]);
cbl[0].Parent:=coregroup[i];
cbl[0].Top:= 50;
cbl[0].Left:=8;
cbl[0].Caption:= 'BURDEN';
cbl[0].Font.Style := cbl[0].Font.Style + [fsBold];
crl[0]:= tLabel.Create(coregroup[i]);
crl[0].Parent:=coregroup[i];
crl[0].Top:= 80;
crl[0].Left:=8;
crl[0].Caption:= 'RATIO';
crl[0].Font.Style := crl[0].Font.Style + [fsBold];
cal[0]:= tLabel.Create(coregroup[i]);
cal[0].Parent:=coregroup[i];
cal[0].Top:= 110;
cal[0].Left:=8;
cal[0].Caption:= 'ACLASS'; //cr,cb,ca
cal[0].Font.Style := cal[0].Font.Style + [fsBold];
vce[0]:= tLabel.Create(coregroup[i]);
vce[0].Parent:=coregroup[i];
vce[0].Top:= 140;
vce[0].Left:=8;
vce[0].Caption:= 'VCLASS'; //cr,cb,ca
vce[0].Font.Style := cal[0].Font.Style + [fsBold];
for j:=0 to ((StrToInt(ncorct.Text))-1) do
begin
if cn[j]=nil then
begin
cn[j]:=tEdit.Create(coregroup[i]);
cn[j].Parent:=coregroup[i];
cn[j].Top:= 17;
cn[j].Left:=52+(j*57);
cn[j].Width:=50;
cb[j]:=tEdit.Create(coregroup[i]);
cb[j].Parent:=coregroup[i];
cb[j].Top:= 47;
cb[j].Left:=71+(j*57);
cb[j].Width:=30;
cr[j]:=tEdit.Create(coregroup[i]);
cr[j].Parent:=coregroup[i];
cr[j].Top:= 77;
cr[j].Left:=56+(j*57);
cr[j].Width:=17;
ca[j]:=tEdit.Create(coregroup[i]);
ca[j].Parent:=coregroup[i];
ca[j].Top:= 107;
ca[j].Left:=61+(j*60);
ca[j].Width:=35;
divv[j]:=tLabel.Create(coregroup[i]);
divv[j].Parent:=coregroup[i] ;
divv[j].Top:=80;
divv[j].Left:=74+(j*57);
divv[j].Caption:='/';
crr[j]:=tEdit.Create(coregroup[i]);
crr[j].Parent:=coregroup[i];
crr[j].Top:= 77;
crr[j].Left:=83+(j*57);
crr[j].Width:=17;
vcl[j]:=tEdit.Create(coregroup[i]);
vcl[j].Parent:=coregroup[i];
vcl[j].Top:= 137;
vcl[j].Left:=61+(j*60);
vcl[j].Width:=35;
end
else
if cn[j+3]=nil then
begin
cn[j+3]:=tEdit.Create(coregroup[i]);
cn[j+3].Parent:=coregroup[i];
cn[j+3].Top:= 17;
cn[j+3].Left:=52+(j*57);
cn[j+3].Width:=50;
cb[j+3]:=tEdit.Create(coregroup[i]);
cb[j+3].Parent:=coregroup[i];
cb[j+3].Top:= 47;
cb[j+3].Left:=71+(j*57);
cb[j+3].Width:=30;
cr[j+3]:=tEdit.Create(coregroup[i]);
cr[j+3].Parent:=coregroup[i];
cr[j+3].Top:= 77;
cr[j+3].Left:=56+(j*57);
cr[j+3].Width:=17;
ca[j+3]:=tEdit.Create(coregroup[i]);
ca[j+3].Parent:=coregroup[i];
ca[j+3].Top:= 107;
ca[j+3].Left:=61+(j*60);
ca[j+3].Width:=35;
divv[j+3]:=tLabel.Create(coregroup[i]);
divv[j+3].Parent:=coregroup[i] ;
divv[j+3].Top:=80;
divv[j+3].Left:=74+(j*57);
divv[j+3].Caption:='/';
***crr[j+3]:=tEdit.Create(coregroup[i]);
crr[j+3].Parent:=coregroup[i];
crr[j+3].Top:= 77;
crr[j+3].Left:=83+(j*57);
crr[j+3].Width:=17;***
vcl[j+3]:=tEdit.Create(coregroup[i]);
vcl[j+3].Parent:=coregroup[i];
vcl[j+3].Top:= 137;
vcl[j+3].Left:=61+(j*60);
vcl[j+3].Width:=35;
end
else
begin
cn[j+6]:=tEdit.Create(coregroup[i]);
cn[j+6].Parent:=coregroup[i];
cn[j+6].Top:= 17;
cn[j+6].Left:=52+(j*57);
cn[j+6].Width:=50;
cb[j+6]:=tEdit.Create(coregroup[i]);
cb[j+6].Parent:=coregroup[i];
cb[j+6].Top:= 47;
cb[j+6].Left:=71+(j*57);
cb[j+6].Width:=30;
cr[j+6]:=tEdit.Create(coregroup[i]);
cr[j+6].Parent:=coregroup[i];
cr[j+6].Top:= 77;
cr[j+6].Left:=56+(j*57);
cr[j+6].Width:=17;
ca[j+6]:=tEdit.Create(coregroup[i]);
ca[j+6].Parent:=coregroup[i];
ca[j+6].Top:= 107;
ca[j+6].Left:=61+(j*60);
ca[j+6].Width:=35;
divv[j+3]:=tLabel.Create(coregroup[i]);
divv[j+3].Parent:=coregroup[i] ;
divv[j+3].Top:=80;
divv[j+3].Left:=74+(j*57);
divv[j+3].Caption:='/';
crr[j+6]:=tEdit.Create(coregroup[i]);
crr[j+6].Parent:=coregroup[i];
crr[j+6].Top:= 77;
crr[j+6].Left:=83+(j*57);
crr[j+6].Width:=17;
vcl[j+6]:=tEdit.Create(coregroup[i]);
vcl[j+6].Parent:=coregroup[i];
vcl[j+6].Top:= 137;
vcl[j+6].Left:=61+(j*60);
vcl[j+6].Width:=35;
end;
end;
end;
end
else
begin
one.Enabled:=false;
onem.Enabled:=false;
end;
end;
答案 0 :(得分:0)
你与nil比较
if cn[j]=nil then
但你用nil初始化数组变量CN吗? 我没有看到这个。 我想这就是问题