Steema是全球领先的图表类控件公司,总部设在西班牙的巴塞罗那附近,Steema公司的VCL图表报表控件在全球拥有极高知名度。Steema公司和慧都科技针对中国市场联合推出中文版TeeChart for .NET图表控件,一经推出,就在市场上大受欢迎,如果有感兴趣的用户,可以下载试用版体验一下。
Teechart的组成
图1是TChart组成示意图,为便于与组件的属性、方法和事件对应,图中的标示采用英文字符方式。TChart的父类是 TCustom Chart,由TCUstom Chart派生了 TChart、 TDBChart、TQRDBChart和 TDecisionGraph四个功能基本类似而各有特点的图表组件。其相互关系如图2所示。
图1
当在Delphi IDE中安装了TeeChart Pro v7.0后,在DE的 Additional、Data Controls和QReport选项卡上有 TChart、TDBChart和TQRDBChart三个图表组件。
TChart是一个通用的图表组件,TDBChart提供了对数据库技术的支持,TQRDBChart提供了在报表模式中绘制图表的功能。在QReport选项卡中的组件TQRChart是一个接口型组件,它利用属性Chart关联一个TChart或TQRChart将TChart或TDBChart与报表对象Quick Reports对象连接起来,从而使报表中能够具有图表功能,其关系如图3所示。
图2
图3
TeeChart的组成元素
TChart由坐标轴、序列、图例、标题和墙壁等主要元素组成,分述如下
-
坐标轴( TChartAxis)。TChart的坐标轴有左( LeftAxis)右( RightAxis)、上( TopAxis)下( BottomAxis)、顶部深度( DepthTopAxis:TChartDepthAxis)、右边深度( DepthRightAxis:TChart DepthAxis)和用户自定义轴( Custom axes:TChartCustomAxes07个类型。由于用户可随意定义若干个坐标轴,所以图表组件中的坐标轴是无限制的。与深度有关的坐标轴是用于三维图表绘制的。坐标轴的刻度既可由程序设定,也可由图表自动设置( Chart1. BottomAxisAutomatic:= true)。
-
序列( TChartSeries)。是图表中绘制的各种几何形状,其类型将在第4章中详细介绍。一个图表中可以绘制的序列也是不受限制的(与计算机内存有关),同一个图表中的每个序列的类型可以不同,不同序列的坐标刻度和类型也可以不同利用图表的 Serieslist[i]、Series[i]和Chart[i]属性可以列出图表中包含的序列。
-
标题和脚注( TChart title)。图表的标题(Title)与脚注(Foot)是一个 TChartitle对象,如图1中标示的 Title、 SubTitle、Foot和 SubFoot区域,这些对象的颜色、位置、字体等都是可以改变的
-
图例( TChartLegend)。是图表中的一个矩形区域,用于对图表中的序列进行说明,图例中显示内容、方式、外观等参数都可以改变,还可设定某一个序列不在图例中显示等。
-
画布( TCanvas3D)。图表组件的画布是一个三维画布对象,可以绘制各种几何形状和输出文字字符,为程序员在图表上增加新的图形内容提供了方便
-
墙壁(Wall)。为体现图表的三维效果,图表组件提供了左面墙( LeftWall:Chart Wall)地面( Bottom wall)、后墙( Back Wall:TChart Back Wal)和右面墙( TChartRight Wall)共四个方向的墙壁以增加二维效果,墙的顏色、厚度、透明程度都是可定义的
-
工具( Tools)。与图表组件起还有27个工具对象,可以对序列、坐标轴以及其他对象进行控制和操作。当打开图表编辑器选择Tools页面单击Add按钮后就可在工具库中选择需要使用的工具。
图表元素之间的关联
-
TChart关联的对象。与 TChart关联的对象有序列( TChartSeries)、坐标轴( TChartAxes)、墙( TChart Wall)、图例( TChartlegend)和标题等。除画布对象TCanvas3D外,其他几个对象与TChart的关联是由其具有的 Parentchart属性确定的,其关系示意如图4所示。
图4
-
序列TChartSeries与坐标轴TChartAxis的关联。序列对象的两个枚举类型属性TChartTitle Thorizaxis和 TVertAxis指出序列在水平和垂直方向所关联的坐标轴在图表中的位置,从而使得序列通过这两个属性与坐标轴建立关联后也就建立了与 TChart的间接关联。也就是说,通过这个属性可以访问序列所在的坐标轴。属性THorizAxis和 TVertAxis的定义为:
THorizAxis=(aTopAxis,aBottomAxis,aBothHorizAxis,acustomHorizAxis);
TVertAxis=(aLeftAxis,aRightAxis,aBothVertAxis,aCustomvertAxis);
诚然,也可以通过坐标轴获取与坐标轴所关联的序列。TChart中的 GetAxisSeries(Axis:TChartAxis): TChartSeries方法就可以获得与坐标轴关联的序列。
图表组件的主要属性
-
外观控制。图表组件的外观控制包括边框( Border)、边缘( Chart bounds,由Left、Iop、Width、Height表示)、边距( MarginLeft、Margin Right、MarginTop、MarginBottom)图表区( ChartRect)、背景等(可参照图1)。
-
缩放与滚动控制。属性 AllowZoom确定是否随鼠标右键拖动而缩放, AnimatedZoom设定缩放过程是否具有动感效果,而 AnimatedZoomSteps是设定分几步可达到最后的缩放效果;属性 AllowPanning用于设定是否允许在水平或垂直方向上滚动,另外 TChart的Tools还提供了有关滚动控制的工具,如坐标箭头工具TAxisArrowTool。和坐标滚动工具 TAxisScrollTool都可以进行滚动控制。
-
页面控制。图表组件可以设定每页的最大点数 MaxPointsPerPage和最后一页的显示方式属性ScaleLastPage使图表可多页显示,组件群中的 TChartScrollBar与TChartPageNavigator 组件就是用于控制多页显示的。
-
输出控制。图表组件的输出包括打印和导出两种形式,打印是直接送往打印机,可以设置打印边距( Chart1.PrintMargins、 Printer.PageWidth/PageHeight)、打印分辨率( Printer.Resolution)、打印方向( Printer.Orientation)等,而且TeeChart组件群中还提供了单页面多图表打印的组件,使图表打印更方便。另外图表组件还提伏Export导出页面用于输为指定格式文件,并且还有一些方法支持输出控制
图表组件的方法
TChart提供了许多方法用于图表组件的操作,如序列的增加( AddSeries)、删除
( RemoveSeries、RemoveAllSeries)、数据源设定及检查刷新( DataSource, CheckDataSource)、缩放( ZoomPercent),打印图表( Print、PrintPartial)和文件操作( SaveToBitmapFile、SaveToMetafile)等。
图表组件的事件
Tchart不但具备一般可视组件具有的事件,并且提供了具有自己特点的时间,如在序列单击OnClickSeries和双击OnDblClick、在图表组件上单击OnClick,这些均会在后续章节中介绍,希望感兴趣的朋友可以持续关注本教程。