如何把ACCESS数据在DBCHART或CHART上动态显示出来? ( 积分: 100 )

  • 主题发起人 主题发起人 mailzzh2000
  • 开始时间 开始时间
M

mailzzh2000

Unregistered / Unconfirmed
GUEST, unregistred user!
请高手看看怎么实现的,下面的代码是把CHART1和5个数据表连接上了,运行后只有一条曲线并不随着数据的变化而变化呀!
如果改用DBCHART的话,要如何去做呢?列出相应代码最好。

procedure Tmain1.Timer1Timer(Sender: TObject);
var
Series,Series1,Series2,Series3,Series4,Series5:TLineSeries;
i:integer;
begin
Series1:= TLineSeries.Create(self);
Series2:= TLineSeries.Create(self);
Series3:= TLineSeries.Create(self);
Series4:= TLineSeries.Create(self);
Series5:= TLineSeries.Create(self);

for i:=0 to 4 do
Chart1.Series.clear;
Series1.ParentChart := Chart1;
Series2.ParentChart := Chart1;
Series3.ParentChart := Chart1;
Series4.ParentChart := Chart1;
Series5.ParentChart := Chart1;

try
adoTable1.open; adoTable2.open; adoTable3.open; adoTable4.open; adoTable5.open;
while not adoTable1.EOF do
adoTable1.close;
except
adoTable1.close;
end;//end of try..except

adotable1.Open;
adotable1.Active:=true;
adotable1.First;
For i:=1 To 10 do
begin
chart1.Series[i-1].Clear;
end;

panel_cfg.Visible:=false;
panel_meter.Visible:=false;
panel_led.Visible:=false;
chart1.Visible:=true;
WITH CHART1 DO
for i:=0 to 5 do
begin
Series.addxy(20,adotable1.fieldbyname('A1').asfloat,'转炉',series1.SeriesColor);
series.addxy(35,adotable2.fieldbyname('B1').asfloat,'精炼',series1.SeriesColor);
series.addxy(50,adotable3.fieldbyname('C1').asfloat,'连铸',series1.SeriesColor);
series.addxy(65,adotable4.fieldbyname('D1').asfloat,'加热炉',series1.SeriesColor);
series.addxy(80,adotable5.fieldbyname('E1').asfloat,'轧机',series1.SeriesColor);
end;


adoTable1.close;
adoTable2.close;
adoTable3.close;
adoTable4.close;
adoTable5.close;

end;
 
请高手看看怎么实现的,下面的代码是把CHART1和5个数据表连接上了,运行后只有一条曲线并不随着数据的变化而变化呀!
如果改用DBCHART的话,要如何去做呢?列出相应代码最好。

procedure Tmain1.Timer1Timer(Sender: TObject);
var
Series,Series1,Series2,Series3,Series4,Series5:TLineSeries;
i:integer;
begin
Series1:= TLineSeries.Create(self);
Series2:= TLineSeries.Create(self);
Series3:= TLineSeries.Create(self);
Series4:= TLineSeries.Create(self);
Series5:= TLineSeries.Create(self);

for i:=0 to 4 do
Chart1.Series.clear;
Series1.ParentChart := Chart1;
Series2.ParentChart := Chart1;
Series3.ParentChart := Chart1;
Series4.ParentChart := Chart1;
Series5.ParentChart := Chart1;

try
adoTable1.open; adoTable2.open; adoTable3.open; adoTable4.open; adoTable5.open;
while not adoTable1.EOF do
adoTable1.close;
except
adoTable1.close;
end;//end of try..except

adotable1.Open;
adotable1.Active:=true;
adotable1.First;
For i:=1 To 10 do
begin
chart1.Series[i-1].Clear;
end;

panel_cfg.Visible:=false;
panel_meter.Visible:=false;
panel_led.Visible:=false;
chart1.Visible:=true;
WITH CHART1 DO
for i:=0 to 5 do
begin
Series.addxy(20,adotable1.fieldbyname('A1').asfloat,'转炉',series1.SeriesColor);
series.addxy(35,adotable2.fieldbyname('B1').asfloat,'精炼',series1.SeriesColor);
series.addxy(50,adotable3.fieldbyname('C1').asfloat,'连铸',series1.SeriesColor);
series.addxy(65,adotable4.fieldbyname('D1').asfloat,'加热炉',series1.SeriesColor);
series.addxy(80,adotable5.fieldbyname('E1').asfloat,'轧机',series1.SeriesColor);
end;


adoTable1.close;
adoTable2.close;
adoTable3.close;
adoTable4.close;
adoTable5.close;

end;
 
接受答案了.
 
后退
顶部