我已创建的记录的动态阵列,其使用此actionexecute方法扩增:记录的动态数组未能扩大
procedure TForm1.AddTeamActionExecute(Sender: TObject);
Var
c : integer;
begin
c := length(PrjRecArray);
PrjRecArray[c].tmpLoadPrjRec (true, 'Team', 'Big Building', '123 Main Street' ,'',
'Somewhere', 'Ohio','', '555-1234', 'Bob', 'Big Cheese', '555-0123', '[email protected]');
PrjSg.Cells[0,PrjSg.RowCount-1] := (PrjRecArray[c].Team);
PrjSg.Cells[1,PrjSg.rowcount-1] := (PrjRecArray[c].Name);
PrjSg.Cells[2,PrjSg.rowcount-1] := (PrjRecArray[c].addr1);
PrjSg.Cells[3,PrjSg.rowcount-1] := (PrjRecArray[c].addr2);
PrjSg.Cells[4,PrjSg.rowcount-1] := (PrjRecArray[c].city);
PrjSg.Cells[5,PrjSg.rowcount-1] := (PrjRecArray[c].state);
PrjSg.Cells[6,PrjSg.rowcount-1] := (PrjRecArray[c].zip);
PrjSg.Cells[7,PrjSg.rowcount-1] := (PrjRecArray[c].phone);
PrjSg.Cells[8,PrjSg.rowcount-1] := (PrjRecArray[c].contact);
PrjSg.Cells[9,PrjSg.rowcount-1] := (PrjRecArray[c].title);
PrjSg.Cells[10,PrjSg.rowcount-1] := (PrjRecArray[c].conPhone);
PrjSg.Cells[11,PrjSg.rowcount-1] := (PrjRecArray[c].email);
PrjSg.RowCount := PrjSg.RowCount + 1;
Revised(true);
showmessage ('PrSG Rows = ' + inttostr (PrjSg.RowCount));
c := c + 1;
SetLength (PrjRecArray, c);
showmessage ('PrjRecArray Rows = ' + inttostr (length(PrjRecArray)));
end;
阵列被称为PrjRecArray在单元中声明(PrjRecArray : Array of TPrjRec;
)并且也未初始化。 PrjSg是表单中包含的tstringgrid,用于显示记录。
当我使用AddTeamActionExecute添加更多记录时,stringgrid会继续正确增加大小。但是,虽然PrjRecordArray正确扩展为四条记录,但程序显然在设定长度线的第五次迭代中失败。执行挂起并且从不显示第二个showmessage框。
我错过了正确使用动态数组的一些步骤吗?
“shr”的使用有点不透明 –
@DavidHeffernan:我编辑了这个部分。 –