先定义了一个动态数组,然后从文件中读取数据来填充这个数组,读完后再把数组的数据画到CHART中去。
如果文件中数据不同则一切都正常,但是如果文件中的数据(是3332)都是一样的,则画到CHART上之后在子程序退出时会出现一个非法指针的错误。
后来另外写了一个小的实验不从文件读数据,而把一组相同的值先赋给数组后,在画到CHART上,则没有异常,但是CHART上会显示一些不正常的虚线出来。请高手看看这到底是怎么一回事?
如果文件中数据不同则一切都正常,但是如果文件中的数据(是3332)都是一样的,则画到CHART上之后在子程序退出时会出现一个非法指针的错误。
后来另外写了一个小的实验不从文件读数据,而把一组相同的值先赋给数组后,在画到CHART上,则没有异常,但是CHART上会显示一些不正常的虚线出来。请高手看看这到底是怎么一回事?
文件的第一行写的是数组的大小,即一共有多少数据
只要文件中在第一行以后的数据一样,(如都为3332),则就会出错
而只要修改第一行以后任何一个数据与别的不同,就没有问题var DataV:array of integer; //这个是定义的动态数组
Sum:integer; //这个是动态数组的大小
F1:TextFile;
i:integer;
begin
AssignFile(F1,'1.txt');
reset(F1);
try
readln(F1,Sum); //先从文件中读出有多少数据
setlength(DataV,sum); //动态数组的大小
for i:=1 to sum do
readln(F1,DataV[i-1]); //从文件中读入数据到数组
finally
closefile(F1); Chart1.Series[0].Clear;
for i:=0 to Sum-1 do begin
Chart1.Series[0].AddXY(i,DataV[i],'',ClDefault);
end;
end;
加上这样一句试试
setlength(DataV,0);
另外也试过在这里把这个动态数组释放掉,但还是不行。
另外也试过定义一个新的动态数组和这个一样大的,把值赋给这个新的数组,然后用新的数组去画CHART,还是一样的问题。
Chart1.Series[0].AddXY(i,DataV[i],'',ClDefault);
是不是和CHART有关的什么问题?