Decision控件
1,Delphi中提供了大量的决策图表控件
Decision->决策,决断
Cube->立方体
Chart->图表
Series->系列
TeeChart->T型图表
Gallery->图库
Axis->轴线
Gradient->渐变
Legend->图例 传奇
Delphi7中
TChart组件---------->Additional
TDBChart组件----------->Data Controls
Decision Cube组件组里有一整套
TVTChart->ActiveX
ChartFx->ActiveX
图表(Chart)组件的属性绝大多数一样,用法也一样
1,去掉Chart的3D效果 View3D->False
2,标题文字 Title->Text 有字体属性
3,底部文字 Foot->Text 有字体属性
4,去掉轴线->AxisVisible->false
5,BottomAxis RightAxis LeftAxis TopAxis->上下左右的坐标线
6,Frame->Mode->区域色与底色的模式
7,Frame->Style->边框样式
8,Gradient->渐变设置
9,很多属都可在双击Chart进行设置
10,MaxPointsPerPage->每页中容纳的最大数据量->如果为0则表示全部数据都装在一页中,当显示的数据较多时,要设这个属性,只有设了这个属性,才能把数据分页显示!
---------------------------------------------
设置这些就可以得到一个带渐变的Panel
------------------------------------------------------
如何动态增加一个图表?
注意:TChart, TDBChart只是一个图表的容器控件,继承自Panel,而真正的图表是一个不可视的类
-----------------------------------------------------------------------------------------
定义条型(反映不同数据的变化情况,如,每月,每天销售的各大类情况,哪类销售最多,那类销售最少)
var a:TBarSeries;
定义饼型(主要用于不同数据所占的比例,如销售中,各大类的销售情况)
var a:TPieSeries;
定义折线型(反映同一数据的变化,如每天,每月的销售变化, 这样可以看出,哪天,哪月的销售情况最好,最不好)
var a:TLineSeries
注意必须引用Series
如何给一个图表赋值并显示在Chart中???
procedure TForm1.Button2Click(Sender: TObject);
var
a:TLineSeries;
begin
a:=TLineSeries.Create(a);
Chart1.AddSeries(a);
a.AddArray([1,3,5,9,4,2])
end;
如何在已显示出来的图表中增加数据?
方法1
procedure TForm1.Button1Click(Sender: TObject);
begin
Chart1.Series[0].AddXY(12,20,'新加的',clLime);
//12->X轴的坐标 20->Y轴的坐标 Clime是颜色
end;
方法2
procedure TForm1.Button3Click(Sender: TObject);
begin
Chart1.Series[0].Add(14,'打印机',clTeeColor);
Chart1.Series[0].Add(18,'主板',clTeeColor);
Chart1.Series[0].Add(23,'显示器',clTeeColor);
end;
如何动态改变图表背景的渐变
procedure TForm1.Button4Click(Sender: TObject);
begin
Chart1.Gradient.Visible:=True;
Chart1.Gradient.EndColor:=clTeal;
Chart1.Gradient.StartColor:=clWhite;
end;
如何让数据块以不同颜色显示(除了TPieSeries是以不同颜色显示数据块外,其它的默认都是红色),并动态改变标题与页角及Y坐标的标题
procedure TForm1.Button5Click(Sender: TObject);
begin
Chart1.Series[0].ColorEachPoint:=True; //数据块不同色
Chart1.LeftAxis.Title.Caption:='产品销售表';//Y坐标标题
Chart1.Title.Text.Clear;
Chart1.Title.Text.Add('哪个月份的销售记录');//图表标题
Chart1.Foot.Text.Add('图表的说明文字'); //页脚内容
end;
效果如下:
数据太多了,想翻页显示怎么做?
1,设置Chart->MaxPointsPerPage(每页的最大数据量)->只有设置了这个置才可能分页,如果是0表示,全部数据都在一页上
2,可以使用点击左右坐标进行上下翻页也可以点击鼠标的左右键进行翻页
-----------------
procedure TForm1.Chart1ClickBackground(Sender: TCustomChart;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then Chart1.NextPage;
if Button=mbRight then Chart1.PreviousPage;
end;
如何标显特殊数据(当点特殊数据时以不同颜色进行显示)
procedure TForm1.Chart1ClickSeries(Sender: TCustomChart;
Series: TChartSeries; ValueIndex: Integer; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Series.ValueColor[ValueIndex]:=clRed;
end;
动态图表分析技术
DBChart
-------------------------------
动态图表的连接方式分2种
①手工方式连接数据库
②运用DBChart属性,在动行时动态连接数据库
---------------------------------------
1,DBChart对于数据是只图的,所以他连接数据库表,关不是直接挂连ACCESS组件,而是直接连接DataSet,Table,Query,ClientDataSet这样的数据集组件
2,首先要设好数据据组件的连接,再设置DBChart与数据组件连接
方法如下:
①双击DBChart->Series->设置标题,X的数据,Y(Bar)的数据
②,如果是在动行时设置是设置是设置DBChart的如下属性
DBChart->DataSet
DBChart->XLabelSource
DBChart->XValues
DBChart->YValues
----------------------------
procedure TForm1.Button3Click(Sender: TObject);
begin
DBChart1.Series[0].DataSource:=ADODataSet1;
DBChart1.Series[0].XLabelsSource:='酒水名称';
DBChart1.Series[0].XValues.ValueSource:='单价';//写的都是字段名称
DBChart1.Series[0].YValues.ValueSource:='单价';
end;
----------------------------------------
如何让DBChart自动更新数据显示
1,手动更新需设置DBChart->AutoRefresh->Rrue或False
2,自动更新设置DBChart->RefreshInterval的值,以秒为单位,每隔多少秒更新一次数据
如何刷新当前图表?
如果要刷新当前图表而不是所有图表,可以用DBChart->RefreshDataSet过程
如:
DBChart1.RefreshDataSet(ADOQuery1,DBChart.Series[0]);