Delphi Tchart 急急,加分!
发布网友
发布时间:2022-04-07 20:07
我来回答
共2个回答
热心网友
时间:2022-04-07 21:36
楼上用的是DBchart.. 我着手给lz写一个Tchart的例子,
楼主留下信箱吧,我写好给你发过去..
下面的是个最简单的例子,lz如果要源码就hi我,, 如果需要其他功能,我也可以帮你添加
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
ct: TChart;
Series1: TBarSeries;
Button1: TButton;
TT: TTimer;
procere Button1Click(Sender: TObject);
procere FormCreate(Sender: TObject);
procere TTTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procere TForm1.Button1Click(Sender: TObject);
begin
//Timer 控制开关
if TT.Enabled=false then
TT.Enabled:=true
else
TT.Enabled:=false;
end;
procere TForm1.FormCreate(Sender: TObject);
begin
TT.Interval:=2000; //2秒刷新一次
TT.Enabled:=false;
end;
procere TForm1.TTTimer(Sender: TObject);
begin
ct.Series[0].Clear;
//这里的值我是取随机数了
//你可以换成你具体的值,从文件读或者从数据库取均可.
Randomize;
ct.Series[0].Add(Random(1000)+200,'time1',clred);
ct.Series[0].Add(Random(1000)+100,'time2',clblue);
ct.Series[0].Add(Random(1000)+100,'time3',clyellow);
//三个参数分别为 Y轴数量,X轴显示,颜色
end;
end.
[补充]:
ct.Series[0].Add(c ,'time3',clyellow);
就这么写哦.. 这个Add函数有三个参数
第一个是Y轴的值,换成c
第二个是X轴显示的时间, 可以取当前时间
FormatDatetime('yyyy-m-dd hh:mm:ss',now)
第三个是颜色
综上,你应该换成:
ct.Series[0].Add(c , FormatDatetime('yyyy-m-dd hh:mm:ss',now),clyellow);
热心网友
时间:2022-04-07 22:54
我不知道你的数据源是什么,给一些关于dbchart的设置给你参考
1.绑定数据
ADOQuery1.Active:=True;
DBChart1.Series[0].DataSource:=ADOQuery1;
DBChart1.Series[0].XLabelSource:='FiledName';
DBChart1.Series[0].YValues.ValueSource:='FieldName';
2.切换图表类型
tmpChart:=DBChart1.Series[0];
ChangeSeriesType(tmp,TLineSeries);
tmpChart.Active:=True;
tmpChart.RefreshSeries;
3.设置分页
DBChart1.ScaleLastPage:=true;
DBChart1.MaxPointsPerPage:=10;
DBChart1.Page:=1;
DBChart1.PreviousPage;
DBChart1.NextPage;
DBChart1.Page:=NumPages;
4.导出图表
SaveToBitmapFile(FileName);
5.打印图表
uses TeePrevi;
ChartPreview(Parent,DBChart1);
TeePreview(Parent,DBChart1);
6.数据源
ADODataSet1.CreateDataSet;
AdoDataSet1.Insert;
AdoDataSet1.FieldByName('Value').AsFloat:=200000;
AdoDataSet1.FieldByName('Info').AsString:='05-02';
AdoDataSet1.Post;