请问如何在TChart中使用曲线趋势图(Fast Line)?  sStudyPhase:=Trim(RzComboBoxYear.text)+'年'+Trim(RzComboBoxStudyPhase.text);
  sStudyPhase:=sStudyPhase+'就业情况趋势图';
  DBChart1.Title.Text.Clear;
  DBChart1.Title.Text.Add(sStudyPhase);
  DBChart1.SeriesList.Series[0].Clear;
  if mpXMLDataSet1.Active=false then Exit;
  mpXMLDataSet1.First;
  K:=1;
  While not mpXMLDataSet1.Eof do begin
    try
      sFieldName:=mpXMLDataSet1.fieldbyname('统计年月').AsString;
      iTemp:=mpXMLDataSet1.fieldbyname('签约人数').AsInteger;
      DBChart1.SeriesList.Series[0].Add(iTemp,sFieldName,$00000000+k*$36);
    finally
      k:=K*366;
      mpXMLDataSet1.Next;
    end;
  end;这段代码哪里有问题吗?
为何总是报Invalid pointer operation?

解决方案 »

  1.   

    我这样测试的,没问题。。看看你的数据添加的代码。
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
     sStudyPhase : string;
     i : integer;
    begin
      sStudyPhase:=Trim('1999')+'年'+Trim('20');
      sStudyPhase:=sStudyPhase+'就业情况趋势图';
      Chart1.Title.Text.Clear;
      Chart1.Title.Text.Add(sStudyPhase);
      Chart1.SeriesList.Series[0].Clear;
      {
      if mpXMLDataSet1.Active=false then Exit;
      mpXMLDataSet1.First;
      K:=1;
      While not mpXMLDataSet1.Eof do begin
        try
          sFieldName:=mpXMLDataSet1.fieldbyname('统计年月').AsString;
          iTemp:=mpXMLDataSet1.fieldbyname('签约人数').AsInteger;
          DBChart1.SeriesList.Series[0].Add(iTemp,sFieldName,$00000000+k*$36);
        finally
          k:=K*366;
          mpXMLDataSet1.Next;
        end;
      end;   }
       for i := 0 to 100 do
       begin
         Chart1.SeriesList.Series[0].Add(199,'abc',$00000000+1*$36)
       end;
    end;
      

  2.   

    注意你的try .. finally部分。