您好,欢迎访问三七文档
图表控件Teechart的使用主要内容1.Teechart控件概述2.Tchart常用属性、方法及事件介绍3.TSeries常用属性、方法及事件介绍4.动态创建Tchart和Tseries一、图表控件概述图表是日常生活中获取信息的一种重要方式,尤其是在数据分析及信号处理等领域仍占有重要地位。它可以把一些对比性强的数字、叙述冗长的机理以及实验分析结果等一目了然的显示出来。以帮助人们在较短的时间内,获取更多的信息。常用的图表控件有Teechart、Mschart、Zedgraph等。Teechart作为BCB中一个标准的图形显示控件,可以方便的做出各种图表,并且可以对它们进行各种设置和修饰。TeeChart组件主要包括:Tchart、TDBchart,TQRchart,TDecisionGraph,其中TChart是最基本的核心组件,其他3个组件都是根据具体需要从TChart继承而来的,TDBchart是Tchart的数据感知版本,与数据库相连时使用,TQRchart用于在QuickReport上绘制图表。本节主要以Tchart和Tdbchart为例来说明它的用法。二、Teechart图表控件概述:Tchart控件继承关系:TObjectTCustomControlTWedgetControlTComponentTPersistentTChartTCustomPanelTControl1、Tchart控件常用属性:(1)AxisVisible:Bool型;用于显示或隐藏图表上的四个坐标以及显示区域的虚线框,当取值为ture时,上述各项均显示出来;当取值为false时上述各项将同时隐藏。如果要针对单个坐标操作,需使用各自的Visible属性。(2)BufferDisplay:Bool型,默认为ture。当数据比较多时,使用该属性可以避免图像闪烁,也可以提高图像显示速度,使画面更稳定。对于实时显示的动态数据,该项必须为ture。(3)canvas:程序员可以通过该属性来操作与画布有关的属性及方法eg.在点(50,50)与(100,100)间画线。//移动画笔到(50,50点)Chart1-Canvas-MoveTo(50,50);//移动画笔从(50,50)开始划线到(100,100)Chart1-Canvas-LineTo(100,100);(4)MaxPointPerpage:Long型,默认为0;使用该属性控制Series中每页最多可以显示多少个点。设置了该属性之后,除最后一页之外每页都会以固定点数显示。用户可以可以通过Chart-Page和Chart-NumPage属性来操纵这些页。若想改变最后一页的显示方式可以通过Chart1-ScaleLastPage属性实现伸缩。(5)SeriesList:该属性为一指针数组,数组的每个元素指向Tchart中的一个Series,用户可以通过该属性改变Series在Z轴上的排列顺序。eg.Chart1-SeriesList[0]=myseries2;Chart1-SeriesList[1]=myseries1;注意:1).当你想遍历每一个Series时不需要使用该属性,只需要通过Chart1-SeriesCount和Chart1-Series属性即可实现。eg.for(intt=0;t≦Chart1-SeriesCount-1;t++)Chart1-Series[t]-SeriesColor=ClRed;2).还需要注意的是在使用时绝对不能使用Free和Remove来操作Series中的元素,这些方法将会释放掉创建好的Series而使其不能使用。(6)Series:该属性为一个数组,数组中每一个元素存放一个Series对象。(7)View3D:Bool型,默认为Ture;该属性用于设置图表是否具有3D效果。当该属性值为真时,可以通过View3Dwall和Chart3DPercent来调节3D比例。(8)Foot:用于设置图表页脚。(9)Legend:用于设置图表的图例。可以通过Style和TextStyle控制text来设置Legend的及其内容的样式。(10)Title:用于设置图表的标题。(11)Gradient:用于设置图表背景的渐变色。2、Tchart控件常用方法介绍(1)AddSeries:AddSeries(ASeries:TChartSeries);使用该方法可以在TChart中添加一个Series组件,效果和设置与TChart的Series-ParentChart属性一致。eg.LineSeries1-ParentChart=Chart1;注意:动态添加Series时,必须用ParentChart将其与Chart关联起来。(2)CheckDataSource:该方法常用于刷新Series中所有点的取值。动态创建或者修改Series中的数据时,需调用该方法。每当调用该方法时,图表将重新绘制以反映所发生的变化。(3)ActiveSeriesLengend:该方法返回第N个活动的Series,如果所有的Series都被激活,该方法作用与Chart1-Series属性相同。(4)ExchangeSeries(Series1,Series2:LongInt)通过该方法交换两个Series在Z轴上的叠放次序。在3D属性选中时有效。(5)GetAseries:返回Chart中第一个活动的Series,若无Series或者没有激活的Series,则返回Null。(6)GetAxisSeries(Axis:TChartAxis):返回指定轴上的第一个Series。(7)SeriesCount:返回图表中Series的个数。三、TSeries控件使用方法概述Series在Tchart图表中是一个十分重要的概念。该控件将绘制图表的复杂操作封装了起来,而让用户通过简单的使用“画”等方式来构建一个极具美学价值的图表。事实上,图表中每一组图形,如一条折线,一组直方图,都是不同类型的Series对象。常见对象:Line(TlineSeries):用折线将序列各点连接起来的形式绘制图表。Area(TAreaSeries):与line类型相似,也是用折线将序列各点连接起来,不过还要将折线与x轴之间进行填充。Point(TPointSeries):用一组点的形式显示Series中各个点,就好像将line类型中的折线去掉。Bar(TBarSeries):也叫Pyramid或Cilinder类型,用垂直的直方图绘制图形,每一个直方条代表一个Series点。HorizontalBar(ThorizBarSeries):和Bar类似,只不过是用水平方向的直方图绘制图形。Pie(TPieSeries):用圆饼图绘制图形,每一个Series点是圆饼中的一个扇形,Pie类型是唯一不需要坐标轴的序列类型,因此可以将它和其他Series类型放在同一张图表上显示。Shape(TchartShape):一种特殊的序列类型,用于将任意指定的图形形状放在图表中,类似BCB中的Tshape类型。Shape序列的作用主要是在图表上加注释。FastLine(TFastLineSeries):与line类型相似,只不过它用尽可能快的方法来绘制图形。Arrows(TArrowsSeries):用箭头的形式绘制图形,适用于实现多个独立事件的起点和终点。Gantt(TGanttSeries):这个序列类型类似HorizonalBar和Arrows类型的结合体。它有许多水平方向的条形组成,每一个条形代表一个独立的事件。有两个横坐标,分别表示始值和终值。纵坐标表示事件值。Bubble(TBubbleSeries):用一系列相同形状的图形表示表示Series系列中的各个点,一般用它来表示不同事件的权重。1、TSeries常用属性介绍:*(1)Active:Bool型,用于隐藏和显示Series,该属性可以静态也可以动态的设置。当Series隐藏之后,Series中的数据均被保护起来,因此当它再次显示时不需要重新为点赋值即可显示,需要说明的是尽管如此,与之相对应的坐标轴还是会重新绘制以适应改变。*(2)DataSourse:用于指定Series的数据源,如果没有指定的话需要手动添加到图表中。数据源主要有三种:来自文件中数据;数据库中数据;其它ChartSeries中数据。(3)XValue:一般而言,每个图表均包含该属性,在本质上它是一个存放图表取值的列表。需要注意的是不能直接对它进行删除、清理或者添加值,而是要通过TChartSeries的等价方法来实现。Eg.下面的语句修改了第35个点的取值。LineSeries1-XValue-Value[35]=10;使用时也可以不用Value属性,例如Eg.For(IntIndex=0;IndexSerise1-Count;Index++)Series1-Xvalue[Index]=Series1-Xvalue[Index]/10;(4)LastValueIndex:该属性返回Series中最后一个点的序号。当图表没有发生缩放时,该属性等同于TChartSeries-Count-1。(5)FirstValueIndex:该属性返回Series中水平坐标第一个值的序列号,通常为0。当图表没有发生缩放时等同于0。2、TSeries常用方法介绍:(1)Add:函数原型:FunctionAdd(constAvalue:Double;constAlabel:String;Acolor:Tcolor):LongInt;Virtual该方法用于向Series中添加一个新点,可以不用管该点的横坐标,系统会自动添加。参数Avalue为必选项其余可选,函数最后返回所加点在值列表中的位置。Eg.Series1-Add(40,’Pencil’,ClRed);Series1-Add(60,’Paper’,ClBlue);Series1-Add(30,’Ribbon’,ClGreen)(2)AddNull:函数原型为FunctionAddNull(ConstALabel:String)LongInt;Virtual;该方法用于向序列中添加一些值为空的点使序列中点“中断”;函数返回所加点在值列表中的位置。(3)AddXY:函数原型为FunctionAddXY(ConstAXvalue,AYValue:Double;ConstAxLabel:String;AColor:Tcolor)LongInt;Virtual;该函数用于向Serise中添加一个有横、纵坐标的点;AXvalue,AYValue为必选项。函数返回新插入点的位置。Eg.向序列添加一些随机数:Series1-AddXY(Xvalue.Last+1,Yvalue.Last/Yvalue.Multiplier+(Random(ChartSamplesMax)-(ChartSamplesMax/2));(4)Clear:使用该方法删除Series中的所有值,即清空。(5)Count:该方法返回序列中所有点的个数。(6)Delete:原型为:ProcedureDelete(ValueIndex:LongInt)该方法用于删除Series中ValueIndex指定点。执行该方法后,点所在的Chart以及与之有关的Series将在重画。(7)FillSampleValues:ProcedureFillSampleValues(NameValues:LongInt);使用该方法为序列添加一些随机数,并使序列重画。Eg.下面指令使序列在运行时向Series中添加20个随机数。Series1-FillSampleValues(20);(8)RefreshSeries:该方法用于刷新Series数据,使Series从DataSource从新读取数据。四、动态创建TChart和TSeries1、动态创建TChart:TCh
本文标题:TChart用法
链接地址:https://www.777doc.com/doc-3526758 .html