谁快帮帮我。。给我一个Delphi中DBChart的的例子我的表不是静态的是写代码查询的 。。我怎么样才可以写代码 让DBChart动态的链接  最好是详细一点包括配置之类的非常感谢。

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,Series, TeeProcs, TeEngine, Chart, DbChart, StdCtrls, ExtCtrls,
      DB, ADODB, XPMenu;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        Button1: TButton;
        DBChart1: TDBChart;
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        Series1: TBarSeries;
        DBChart2: TDBChart;
        Series2: TLineSeries;
        DBChart3: TDBChart;
        LineSeries1: TLineSeries;
        procedure Button1Click(Sender: TObject);  private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
        //SeriesOne,SeriesTwo,SeriesThree:TBarSeries;
        mSeries: array[1..20] of TBarSeries;
    begin
        DBChart1.RemoveAllSeries;    DBChart1.BottomAxis.LabelStyle:=talText;
        DBChart1.BottomAxis.Maximum:=100;
        DBChart1.BottomAxis.Minimum:=20;
        DBChart1.Foot.Text.Add('foot text');
        DBChart1.Canvas.MoveTo(100,200);
        DBChart1.Canvas.LineTo(184,20);
        mSeries[1]:=TBarSeries.Create(DBChart1);
        mSeries[1].Title:='光接点1';
        //SeriesOne.ShowInLegend:=false;
        mSeries[1].Marks.ArrowLength:=8;
        mSeries[1].Marks.Arrow.Visible:=false;
        mSeries[1].Marks.Style:=smsValue; 
          adoquery1.Close;
          adoquery1.Open;
          mSeries[1].Clear;
          adoquery1.First;
          mSeries[1].Add(0,'0',clRed);
          while not adoquery1.Eof do
          begin
             DBChart1.TopAxis.LabelValue(adoquery1.FieldByName('NUM').AsFloat);
             mSeries[1].Add(adoquery1.FieldByName('NUM').AsInteger,adoquery1.FieldByName('MON').AsString,clRed);
             adoquery1.Next;
          end;
          DBChart1.AddSeries(mSeries[1]);
          DBChart1.Series[0].HorizAxis:=aBothHorizAxis;// and aBottomAxis;
          DBChart1.Series[0].VertAxis:=aBothVertAxis;     DBChart1.Canvas.EllipseWithZ(180,20,240,120,10);
         DBChart1.Canvas.TextOut(184,20,'DBChart1.Canvas.TextOut()');
         DBChart1.Canvas.TextAlign;
         //DBChart1.Repaint;
    end;
    end.
      

  2.   

    我搞这个控件还要处理个问题:在DBChart缩放时 series的宽度不知道怎么改变
      

  3.   

    procedure TChartFrm.Button1Click(Sender: TObject);
    var
    myseries:array of TBarSeries;
    i:integer;
    begin
    setlength(myseries,Lanstart.DBGrid1.Columns.Count);
    DBChart1.View3D:=false;
    DBChart1.FreeAllSeries;
    For i:=0 to Lanstart.DBGrid1.Columns.Count-1 do
    begin
    myseries[i]:= TBarSeries.Create(self);
    With myseries[i] do
    begin
    ParentChart := DBChart1;
    s.Style:= smsvalue;
    DataSource := dataset.ADOQuery2;
    if i=0 then
    XLabelsSource := Lanstart.DBGrid1.Columns[i].FieldName
    else
    begin
    XLabelsSource := Lanstart.DBGrid1.Columns[0].FieldName;
    YValues.ValueSource := Lanstart.DBGrid1.Columns[i].FieldName;
    end;
    end;
    //CheckDatasource;
    end;
    end; 
      

  4.   

    series有customBarWidth但到了DBChart里面的series属性 却没有了这个属性  郁闷这两个控件 没有源码大侠们能帮帮我么?!我想实现的功能是  在DBChart图形里放大查看里面的series 因为series太多了就看不清上面的数据了(相互遮盖著了)