先定义了一个动态数组,然后从文件中读取数据来填充这个数组,读完后再把数组的数据画到CHART中去。
如果文件中数据不同则一切都正常,但是如果文件中的数据(是3332)都是一样的,则画到CHART上之后在子程序退出时会出现一个非法指针的错误。
后来另外写了一个小的实验不从文件读数据,而把一组相同的值先赋给数组后,在画到CHART上,则没有异常,但是CHART上会显示一些不正常的虚线出来。请高手看看这到底是怎么一回事?
如果文件中数据不同则一切都正常,但是如果文件中的数据(是3332)都是一样的,则画到CHART上之后在子程序退出时会出现一个非法指针的错误。
后来另外写了一个小的实验不从文件读数据,而把一组相同的值先赋给数组后,在画到CHART上,则没有异常,但是CHART上会显示一些不正常的虚线出来。请高手看看这到底是怎么一回事?
解决方案 »
- form属性的类型问题
- 进来看看,给你一次献爱心的机会
- BDE连接informix数据库,用:连接其他库中的表导致param出现的问题求教
- 请问如何监测当前主窗体为最小化
- 难问题: 高手请进! 在线等待给分!
- SQL Server提示’将截断字符串或二进制数据‘!!
- 谁用过rave?
- 为什么我的DELPHI6企业版找不到Proxies.pas这个文件?
- 很简单的问题
- 为什么会错呢????????????????????????????????????????????????????
- 怎样根据文件后缀名来得到该类型文件的图标?
- 有没有能按字串中指定的逗号分隔字符的函数?就像ASP中的split函数?
文件的第一行写的是数组的大小,即一共有多少数据
只要文件中在第一行以后的数据一样,(如都为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有关的什么问题?