为什么出现list index out of brounts(-1)?
一个奇怪的问题?
我发现我的delphi3。0在运行时如果执行下面一段代码打开一个文件
gridsj是一个stringgrid
procedure TForm1.btreadClick(Sender: TObject);
var
openfilename:string;
rdstr:string;
f :textfile;
i,j,temp:integer;
begin
if opendialog.Execute then
begin
openfilename:=opendialog.FileName;
if fileexists(openfilename) then
begin {读取预处理}
assignfile(f,openfilename);
reset(f);
{以下为读取段}
readln(f,rdstr);
readln(f,zbgs,qsdx,qsdy,qsdfwjjd,qsdfwjhd);
edbt.Text:=rdstr;
edqsdhzbx.Text:=formatfloat('0.0000',qsdx);
edqsdzzby.Text:=formatfloat('0.0000',qsdy);
edqsdfwjjd.Text:=formatfloat('0.0000',qsdfwjjd);
edqsdfwjhd.Text:=formatfloat('0.000000',qsdfwjhd);
for i:=1 to zbgs do
begin
readln(f,zbsj[1,i],zbsj[2,i]);
end;
closefile(f);
temp:=gridsj.RowCount-1;
gridsj.RowCount:=zbgs+1;
for i:=temp+1 to zbgs do gridsj.Cells[0,i]:='J'+inttostr(i);
for i:=1 to 2 do
for j:=1 to zbgs do gridsj.Cells[i,j]:=formatfloat('0.0000',zbsj[i,j]);
end
else
Application.MessageBox('文件找不到!','错误!',mb_ok+mb_defbutton1)
end;
end;
然后关闭返回编辑时,如果不在代码窗口中进行改动,则再次运行时就报
list index out of brounts(-1)
invalid pointer operation
如果退出delphi就报
exception einvalidpointer in module vcl30.dpl at 000038ee
如果不退出就无法再运行该程序。
用看进程的工具可以看到这个程序仍然驻留在内存。请问这是怎么回事?