第一次点击后,正常第二次点击后,出现异常var x,y:double;
    i:integer;
begin
if chart1.SeriesCount>0 then begin
for i:=0 to chart1.SeriesCount-1 do
chart1.Series[i].Free;
end;for i:=0 to 5 do begin
chart1.AddSeries(tlineseries.Create(self));
x:=0;
while x<=10 do
begin
y:=sin(x+i);
chart1.series[i].AddXY(x,y,'',rgb(255,0,0));
x:=x+0.05;
end;
chart1.series[i].Title:=inttostr(i);end;

解决方案 »

  1.   

    for i:=0 to chart1.SeriesCount-1 do
    chart1.Series[i].Free; 这里释放要从后往前释放改成
    for i:= chart1.SeriesCount-1 downto 0 do
    chart1.Series[i].Free;
      

  2.   

    改成chart1.Series[0].Free;应该也可以
      

  3.   

    試試:var x,y:double;
      i:integer;
    begin
    if chart1.SeriesCount>0 then begin
    //for i:=0 to chart1.SeriesCount-1 do
    for chart1.SeriesCount -1 to 0 do
    chart1.Series[i].Free;
    end;for i:=0 to 5 do begin
    chart1.AddSeries(tlineseries.Create(self));
    x:=0;
    while x<=10 do
    begin
    y:=sin(x+i);
    chart1.series[i].AddXY(x,y,'',rgb(255,0,0));
    x:=x+0.05;
    end;
    chart1.series[i].Title:=inttostr(i);end;
      

  4.   


    var x,y:double;
      i:integer;
    begin
      while chart1.SeriesCount>0 do 
        chart1.Series[0].Free;
      //if chart1.SeriesCount>0 then begin
      //for i:=0 to chart1.SeriesCount-1 do
      //chart1.Series[i].Free;
      //end;
      ....
    end;
      

  5.   

    非常感谢大家的帮忙,问题是解决了,但是刚才无意中又发现一个问题我在form上加一个chart控件,一个button控件,在button   click中输入var x,y:double;
      i:integer;
    beginfor i:=0 to 5 do begin
    chart1.AddSeries(tlineseries.Create(self));
    x:=0;
    while x<=10 do
    begin
    y:=sin(x+i);
    chart1.series[i].AddXY(x,y,'',rgb(255,0,0));
    x:=x+0.05;
    end;
    chart1.series[i].Title:=inttostr(i);
    end;说tlinseries没有定义,undeclared identifier:'tlineseries'
    there is no overloaded vesion of addseries that can be called with these arguments请问为什么谢谢
      

  6.   

    你的TLineSeries在哪裡?procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      x,y:double;
      i:integer;
      Series1:TLineSeries;
    begin
      for i:=0 to 5 do
      begin
        chart1.AddSeries(tlineseries.Create(self));
        x:=0;
      while x<=10 do
        begin
          y:=sin(x+i);
          chart1.series[i].AddXY(x,y,'',rgb(255,0,0));
          x:=x+0.05;
        end;
        chart1.series[i].Title:=inttostr(i);
      end;end;