⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 002.htm

📁 Delphi书籍--Delphi网上教程
💻 HTM
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI专题--控件应用-->DELPHI中CHARTFX构件使用详解</TITLE>
<META NAME="keywords" CONTENT=" DELPHI专题--控件应用 DELPHI中CHARTFX构件使用详解">
<META NAME="description" CONTENT=" - DELPHI专题--控件应用 - DELPHI中CHARTFX构件使用详解">

<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋体"}
.tt2 {font: 12pt/15pt "宋体"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<a href="index.html">返回</a>



<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -