Delphi 是一种新型可视化程序开发工具.它在功能上远远胜过 VB,甚至被冠以 VB 杀手(VB Killer)的美誉.理由之一就是 Delphi 可以轻松地安装和使用 VB 的
VBX 控件并转换 VB 程序为 Delphi
程序. 本文将就 Delphi 组件 VBX 页里 ChartFx(图表)构件的特性和使用方法作一 较为完备的阐述.相信对读者建立美观的图表有所裨益,并会对
Delphi 的"属 性管理"有更深一步的认识. 首先介绍一下工程上经
常用到的直方图和饼图的概念.由于实际需要,常需比较 一组数据或多组数据的相对大小(如公司中各部门的收支情况比较,金融利率的 调整情况等).为了能够简洁直观地得到比较结果,通常将这些数据放入直角坐 标系,以纵坐标的相对大小比较数据,即所谓直方图;或是将各数据转化为百分 点,放入一个单位圆,即形成所谓饼图. 在 Delphi 组件 VBX 页中,ChartFx 构件就是以上工程需要而设计的.选取 该构件置于窗体上,调整至合适大小,即可见到缺省的图表格式(在未初始化数 据时,构件自动生成随机数据充当比较项目).在对象监视器中,设置不同的属 性,还可以看到其它工具条.以下逐条解释各属性: Nseries 需比较的数据项的个数. Nvalues 每个数据项中的子项目数. TitleDlg 图表的标题设置对话框. AdmDlg 图表构件绘图区上下左右边缘处注解设置对话框. FontDlg 注解文字字体设置. BorderStyle 图表构件的边框风格. Height,Width,Top,Left 这四项设置图表构件在窗体中的位置及大小. BottomGap,TopGap,LeftGap,RightGap 这四项设置图表构件绘图区的位 置及大小. ChartType,pThpe,Style 这三项设置图表构件及绘图区的类型与风格. Chart3D 用以设置是否以三维形式显示数据. ViewRot3D 设置观察三维图示的视角. WallWidth 设置三维图示中 X,Y,Z 三壁的厚度. LinebkColor,LineColor,LineStyle,LineWidth 设置线条的颜色和风格. PointType 设置数据点的形状,类型. RGB3DBK,RGB2DBK,RGBBK,RGBBarHorz 设置 2/3 维图示中背景色. Cursor 设置绘图区光标形状. Decimals 设置图表中数据显示的小数位数. Stacked 设置图表中数据的归一化方式. Grid,VertGridGap 设置坐标系的背景网格线. 在制作同时比较多组数据的图表时,还需要设置以下属性: . FixedGap 每个数据项之间间隔. ThisPoint 数据项的次序. ThisSerie 每个数据项中子数据项的次序. ThisBkColor,ThisColor 颜色设置. 余下的 Visible,Hint,HelpContext,Name,Tag 等属性与其它构件相同, 不再赘述.下面对 CustTool,ToolBar,PalleteBar,PatternBar 几个关于图表 中工具条设置的属性作简单介绍.PalleteBar 设为 True 时生成的图表带有颜色 设置工具条,即可在浏览图表时改变数据项颜色以适应不同视觉需求.
PatternBar 设为 True 时生成的图表带有图案设置工具条,作用同上. ToolBar 设为 True 时
生成的图表带有一个功能 强大的工具条,其上加速键能完成的功能有:从数据文件读入比较数据,输 出数据到数据文件,图表打印,在直方图/饼图/离散点图/曲线拟合图之间切换, 2/3 维切换,改变视角,以表格方式浏览,修改数据等等.丰富的功能节省了程 序员的开发时间,使用极为方便(工具条上每个加速键都有 Hint 提示). CustTool 在该属性里可以设置需要使用的功能项,Delphi 自动去除未选取 的加速键. 到目前为止,读者对 ChartFx 构件的属性已有了一定的了解,可以
设计较为复杂 的图表了,但还不能真正制作实用的图表,因为我们还未介绍如何初始化数据. 同时读者可能还发现了这么个问题:当数据较多以致构件空间容纳不下怎么办? 我们举一实例来说明这两个
问题.假定某校要比较全校 40 个班级某一学期班平 均成绩,40 个班的平均分和名称(实验班,初一(2)等)分别存放在两个数组 Data [39] ,Class Name[39]中.在窗体 FormCreat 事件中加入以下代码: For i:=0 to 39 Do Begin ChartFx 1.Op