Delphi中Chart
- 格式:docx
- 大小:92.98 KB
- 文档页数:15
delphi checklistbox用法Delphi中的CheckListBox是一个复选框列表,它允许用户选择多个项目。
在本文中,将介绍如何使用Delphi的CheckListBox控件。
1. 添加CheckListBox控件在Delphi的窗体设计器中,将CheckListBox控件从工具箱拖放到窗体上。
然后可以设置控件的属性,例如名称、位置和大小。
2. 添加项目在程序运行时,可以使用代码向CheckListBox控件添加项目。
可以使用Add方法添加单个项目,也可以使用AddStrings方法添加多个项目。
例如:CheckListBox1.Items.Add('项目1');CheckListBox1.Items.Add('项目2');CheckListBox1.Items.AddStrings(['项目3', '项目4', '项目5']);3. 选择项目通过设置ItemIndex属性或使用Selected数组,可以选择CheckListBox控件中的项目。
例如:CheckListBox1.ItemIndex := 0;CheckListBox1.Selected[1] := True;4. 获取选中的项目使用Checked数组可以获取选中的项目列表。
例如:for i := 0 to CheckListBox1.Items.Count - 1 dobeginif CheckListBox1.Checked[i] thenMemo1.Lines.Add(CheckListBox1.Items[i]);end5. 自定义外观可以使用CheckListBox的ItemHeight、ItemWidth、BorderStyle 和Color等属性自定义控件的外观。
例如:CheckListBox1.ItemHeight := 30;CheckListBox1.ItemWidth := 200;CheckListBox1.BorderStyle := bsSingle;CheckListBox1.Color := clYellow;这些方法和属性是使用Delphi的CheckListBox控件的基本用法。
怎么在delphi中读取Excel数据(各种详细操作)转( 一) 使用动态创建的方法首先创建Excel 对象,使用ComObj :VarExcelApp : Variant ;ExcelApp := CreateOleObject ( '' Excel.Application '' ) ;1 ) 显示当前窗口:ExcelApp.Visible := True ;2 ) 更改Excel 标题栏:ExcelApp.Caption := '' 应用程序调用Microsoft Excel '' ;3 ) 添加新工作簿:ExcelApp.WorkBooks.Add ;4 ) 打开已存在的工作簿:ExcelApp.WorkBooks.Open ( '' C : \Excel\Demo.xls '' ) ;5 ) 设置第2个工作表为活动工作表:ExcelApp.WorkSheets [ 2 ] .Activate ;或ExcelApp.WorksSheets [ '' Sheet2 '' ] .Activate ;6 ) 给单元格赋值:ExcelApp.Cells [ 1 , 4 ] .Value := '' 第一行第四列'' ;7 ) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelApp.ActiveSheet.Columns [ 1 ] .ColumnsWidth := 5 ;8 ) 设置指定行的高度(单位:磅)(1磅=0.035 厘米),以第二行为例:ExcelApp.ActiveSheet.Rows [ 2 ] .RowHeight := 1 / 0.035 ; // 1厘米9 ) 在第8行之前插入分页符:ExcelApp.WorkSheets [ 1 ] .Rows [ 8 ] .PageBreak := 1 ;10 ) 在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns [ 4 ] .PageBreak := 0 ;- 11 ) 指定边框线宽度:ExcelApp.ActiveSheet.Range [ '' B3 : D4 '' ] .Borders [ 2 ] .Weight := 3 ;1 - 左2 - 右3 - 顶4 - 底5 - 斜( \ )6 - 斜( / )12 ) 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells [ 1 , 4 ] .ClearContents ;13 ) 设置第一行字体属性:ExcelApp.ActiveSheet.Rows [ 1 ] := '' 隶书'' ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.Color := clBlue ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.Bold := True ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.UnderLine := True ;14 ) 进行页面设置:a.页眉:ExcelApp.ActiveSheet.PageSetup.CenterHeader := '' 报表演示'' ;b.页脚:ExcelApp.ActiveSheet.PageSetup.CenterFooter := '' 第&P页'' ;c.页眉到顶端边距2cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2 / 0.035 ;d.页脚到底端边距3cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3 / 0.035 ;e.顶边距2cm:ExcelApp.ActiveSheet.PageSetup.TopMargin := 2 / 0.035 ;f.底边距2cm:ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2 / 0.035 ;g.左边距2cm:ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2 / 0.035 ;h.右边距2cm:ExcelApp.ActiveSheet.PageSetup.RightMargin := 2 / 0.035 ;i.页面水平居中:ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035 ;j.页面垂直居中:ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2 / 0.035 ;k.打印单元格网线:ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True ;15 ) 拷贝操作:a.拷贝整个工作表:ed.Range.Copy ;b.拷贝指定区域:ExcelApp.ActiveSheet.Range [ '' A1 : E2 '' ] .Copy ;- c.从A1位置开始粘贴:ExcelApp.ActiveSheet.Range. [ '' A1 '' ] .PasteSpecial ;d.从文件尾部开始粘贴:ExcelApp.ActiveSheet.Range.PasteSpecial ;16 ) 插入一行或一列:a.ExcelApp.ActiveSheet.Rows [ 2 ] .Insert ;b.ExcelApp.ActiveSheet.Columns [ 1 ] .Insert ;17 ) 删除一行或一列:a.ExcelApp.ActiveSheet.Rows [ 2 ] .Delete ;b.ExcelApp.ActiveSheet.Columns [ 1 ] .Delete ;18 ) 打印预览工作表:ExcelApp.ActiveSheet.PrintPreview ;19 ) 打印输出工作表:ExcelApp.ActiveSheet.PrintOut ;20 ) 工作表保存:If Not ExcelApp.ActiveWorkBook.Saved ThenExcelApp.ActiveSheet.PrintPreview ;21 ) 工作表另存为:ExcelApp.SaveAs ( '' C : \Excel\Demo1.xls '' ) ;22 ) 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True ;23 ) 关闭工作簿:ExcelApp.WorkBooks.Close ;24 ) 退出Excel:ExcelApp.Quit ;( 二) 使用Delphi 控件方法在Form中分别放入ExcelApplication , ExcelWorkbook和ExcelWorksheet。
一、TeeChart使用指南1.添加引用一下两个DLL文件到项目中。
工具箱中右键打开选择项,如上图所示在筛选器中打开浏览找到项目中的TeeChart.dll文件点击打开,完成后工具栏中将会出现teechart控件的图表2.创建一个webchart控件到页面中3.编辑属性4.在上图中添加series ,设置teeChart Gallery属性5.设置数据库连接6.必要参数设置如何在项目中使用破解版本的TeeChart?1、建一个aspx文件Default.aspx;2、在设计视图中拖进去一个控件;3、在属性窗口的杂项中,将GetChartFile设置成GetChart.aspx(默认)将TempChart属性设置成Session新建aspx文件GetChart.aspx,在GetChart.aspx.cs中写入以下代码: using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;///<summary>///为了覆盖session变量中的图表, 新建一个页面,命名为GetChart.aspx///</summary>public partial class GetChart : System.Web.UI.Page{///<summary>///将图片存储在session变量中///</summary>///<param name="sender"></param>///<param name="e"></param>protected void Page_Load(object sender, EventArgs e){string chartName = Request.QueryString["Chart"];if (Session[chartName] != null){System.IO.MemoryStream chartStream = newSystem.IO.MemoryStream();chartStream =((System.IO.MemoryStream)Session[chartName]);Response.OutputStream.Write(chartStream.ToArray(), 0, (int)chartStream.Length);chartStream.Close();Session.Remove(chartName);}}}如何将GetChart.aspx拷贝到当前的工程目录下。
怎么在delphi中读取Excel数据(各种详细操作)转( 一) 使用动态创建的方法首先创建Excel 对象,使用ComObj :VarExcelApp : Variant ;ExcelApp := CreateOleObject ( '' Excel.Application '' ) ;1 ) 显示当前窗口:ExcelApp.Visible := True ;2 ) 更改Excel 标题栏:ExcelApp.Caption := '' 应用程序调用Microsoft Excel '' ;3 ) 添加新工作簿:ExcelApp.WorkBooks.Add ;4 ) 打开已存在的工作簿:ExcelApp.WorkBooks.Open ( '' C : \Excel\Demo.xls '' ) ;5 ) 设置第2个工作表为活动工作表:ExcelApp.WorkSheets [ 2 ] .Activate ;或ExcelApp.WorksSheets [ '' Sheet2 '' ] .Activate ;6 ) 给单元格赋值:ExcelApp.Cells [ 1 , 4 ] .Value := '' 第一行第四列'' ;7 ) 设置指定列的宽度(单位:字符个数),以第一列为例:ExcelApp.ActiveSheet.Columns [ 1 ] .ColumnsWidth := 5 ;8 ) 设置指定行的高度(单位:磅)(1磅=0.035 厘米),以第二行为例:ExcelApp.ActiveSheet.Rows [ 2 ] .RowHeight := 1 / 0.035 ; // 1厘米9 ) 在第8行之前插入分页符:ExcelApp.WorkSheets [ 1 ] .Rows [ 8 ] .PageBreak := 1 ;10 ) 在第8列之前删除分页符:ExcelApp.ActiveSheet.Columns [ 4 ] .PageBreak := 0 ;11 ) 指定边框线宽度:ExcelApp.ActiveSheet.Range [ '' B3 : D4 '' ] .Borders [ 2 ] .Weight := 3 ;1 - 左2 - 右3 - 顶4 - 底5 - 斜( \ )6 - 斜( / )12 ) 清除第一行第四列单元格公式:ExcelApp.ActiveSheet.Cells [ 1 , 4 ] .ClearContents ;13 ) 设置第一行字体属性:ExcelApp.ActiveSheet.Rows [ 1 ] := '' 隶书'' ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.Color := clBlue ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.Bold := True ;ExcelApp.ActiveSheet.Rows [ 1 ] .Font.UnderLine := True ;14 ) 进行页面设置:a.页眉:ExcelApp.ActiveSheet.PageSetup.CenterHeader := '' 报表演示'' ;b.页脚:ExcelApp.ActiveSheet.PageSetup.CenterFooter := '' 第&P页'' ;c.页眉到顶端边距2cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2 / 0.035 ;d.页脚到底端边距3cm:ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3 / 0.035 ;e.顶边距2cm:ExcelApp.ActiveSheet.PageSetup.TopMargin := 2 / 0.035 ;f.底边距2cm:ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2 / 0.035 ;g.左边距2cm:ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2 / 0.035 ;h.右边距2cm:ExcelApp.ActiveSheet.PageSetup.RightMargin := 2 / 0.035 ;i.页面水平居中:ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2 / 0.035 ;j.页面垂直居中:ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2 / 0.035 ;k.打印单元格网线:ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True ;15 ) 拷贝操作:a.拷贝整个工作表:ed.Range.Copy ;b.拷贝指定区域:ExcelApp.ActiveSheet.Range [ '' A1 : E2 '' ] .Copy ;c.从A1位置开始粘贴:ExcelApp.ActiveSheet.Range. [ '' A1 '' ] .PasteSpecial ;d.从文件尾部开始粘贴:ExcelApp.ActiveSheet.Range.PasteSpecial ;16 ) 插入一行或一列:a.ExcelApp.ActiveSheet.Rows [ 2 ] .Insert ;b.ExcelApp.ActiveSheet.Columns [ 1 ] .Insert ;17 ) 删除一行或一列:a.ExcelApp.ActiveSheet.Rows [ 2 ] .Delete ;b.ExcelApp.ActiveSheet.Columns [ 1 ] .Delete ;18 ) 打印预览工作表:ExcelApp.ActiveSheet.PrintPreview ;19 ) 打印输出工作表:ExcelApp.ActiveSheet.PrintOut ;20 ) 工作表保存:If Not ExcelApp.ActiveWorkBook.Saved ThenExcelApp.ActiveSheet.PrintPreview ;21 ) 工作表另存为:ExcelApp.SaveAs ( '' C : \Excel\Demo1.xls '' ) ;22 ) 放弃存盘:ExcelApp.ActiveWorkBook.Saved := True ;23 ) 关闭工作簿:ExcelApp.WorkBooks.Close ;24 ) 退出Excel:ExcelApp.Quit ;( 二) 使用Delphi 控件方法在Form中分别放入ExcelApplication , ExcelWorkbook和ExcelWorksheet。
[新手必看]delphi部分的控件属性.方法.事件及常用函数的中文说明(定期更新)1. TmainMemu控件该控件是一个标准的菜单控件,运用它为窗口提供菜单。
该对象的层次结构为:TObject—TPersistent--TCompoment—TMenu。
属性1-AutoMetge:Boolean功能:用于确定非MID程序中非主Form上的菜单要不要和主Form的菜单合并。
主Form菜单AutoMerge的特性总是False。
此外,还要设置菜单项的GroupInd ex属性。
2-BiDiMode:TBiDiMode功能:控制菜单的布置模式,是从左至右,还是从右至左。
3-Handle:HMENU功能:菜单窗口句柄。
4-Images:TImagList功能:出现在菜单项左边的图像列表。
菜单项通过设置它们的ImageIndex属性,以确定图像列表中的哪—个图像出现在菜单项的左边。
5-Items:TMenuItem功能:菜单项,描述了菜单的元素。
6-OwnerDraw:Boolean功能:确定菜单项是否可以由应用程序来画。
7-ParentBiDiMode:Boolean功能:确定BiDiMode属性是否从父辈继承而来,菜单的父辈一般为Form。
方法1-GetOle2AcceleratorTabel:(var AccelTable:HAccel;var AccelCount:Int eger;Group:array of Integer)功能:返回主菜单的加速键表,其参数如下AccelTabel:设置加速键表的句柄。
AccelCount:设置加速键的总数。
Groups:即GroupIndex的值。
2-Merge:功能:组合Form上的一个主菜单与另一个非MDI应用程序的主菜单。
调用Merg e方法将另一个主菜单组合进该菜单。
参数Menu指定了要合并的菜单3-PopulateOle2Menu:(ShareMenu:HMenu; Groups:array of Integer; var W idths:array of Longint)功能:组装OLE菜单。
TeeChart经验总结1.安装我使用的是Delphi5,所以所有的测试,代码均为D5版本,看的时候要有一颗兼容的心.第三方组件,尽量使用有源码的版本,方便修改问题,也方便看懂功能,不然改都没法改.安装TeeChart的话,推荐TeeChart Pro v8.01with Full Source。
目录中有一个exe名为:TeeRecompile.exe..运行它我不记得是否会自动给环境里加入Sources目录了.请在安装完成后检查Tools->Environment Options->Library->Directories->Library Path,是否包含了解压安装目录中的Sources目录.目前为止..安装结束..老版本的TeeChart安装,需要先卸载自身的TChart组件,也就是在Component->Install Packages中不加载Borland Decision Cube Components,然后再使用TeeChart的bpg安装Dcl*.dpk,然后添加Library Path.1TeeChart经验总结2.初识.完成了安装以后,在additional选项卡里,就可以选择TChart进行使用在Options->Language->Change中,可以修改TeeChart Editor为中文菜单,但是不推荐这样做,毕竟写代码还是得用英文的.Edit Chart:打开TeeChart Editor界面,可以进行Series,Axis,Wall之类的参数编辑.Print Preview:打印预览...Export Chart:可以将Chart导出图片之类的格式.Custom Axes:可以编辑自定义Axis,也就是轴Seires:可以编辑曲线序列,也就是数据集合.先贴一张TeeChart Editor的图.在编辑器里,可以对TChart的一系列参数进行修改,基本上所有的TChart功能都可以在Editor里通过修改参数的所见即所得的方式来得以实现.首先,TChart有一个Panel,这个是Axis,Series显示的基础.Axis也就是一般所说的轴,比如常说的坐标系里的X轴Y轴.Series顾名思义,是一个序列,也就是数据序列,Series要绑定在Axis才会显示出来,因为TeeChart里的Series种类众多,有常见的Line,Fastline,Bar,Point,Pie等等,所以抽象的理解其为一个离散的数据集合比2较好.先来看一个Demo,并说明这个Demo用到了TeeChart里的哪些功能,在以后的文章里会逐步解释名词定.义和功能的实现用到了2个自定义的Axis,4个FastLine的Sereis,将Legend(图列说明,也就是Series的名称颜色的集合显示)显示出来.使用了Titles中的Title,用于显示一些与图相关的信息.用到了几个Tools,一个用来显示Paging,一个用来显示所看到的游标内容.TeeChart经验总结3.Panel和WallsWalls为Series表现的区域,有Left,Right,Bottom,Back之分,其中Left,Right,Bottom都为3D显示时候用的,Back就是Series绘图区域.先说Panel,看图:34Color 是用来修改Panel 显示的颜色,如果Walls 的Transparent 属性为True,那么都会显示这个颜色,如果为False,就可以自行定义颜色显示.Bak Image Inside,顾名思义,就是让背景图片是否显示在Back Wall 里.Borders:用来设计Panel 的边缘,都很简单.Separation:是和Walls 的间隔.5Margins:边距,用来设置Panel 与Walls 的边距.有两种设置方式,一种是百分比,一种是像素.Gradient:渐变.背景的颜色渐变,这个应该是TeeChart 的新功能,Title,Tools,Panel,Walls 等都可以设置这个属性,这个功能不算复杂,不多介绍了.只要试试就明白了.6Shadow:阴影,同样很多部分都有这个属性.也一样..这个属性没什么好多说的.Image:图像.可以载入一个图像来替代背景.这个功能有点意思..因为还提供了Filters(滤镜).因为Axis 显示的时候是在Panel,所以Margins 可能因为Axis 的多少而需要调节.Titles,Legend 也同样要显示在Panel 上,需要考虑一下布局的问题.接下来说Walls,之前说过了Walls 是用来显示Series 的地方,而且Left,Right,Bottom 都是用来参与3D 效果的显示.Back Wall 比其他的Wall 多了一个Shadow 的属性,其他基本都一样,所以以下就只贴Back Wall 的图了.7Visible Walls:是否显示Walls,旁边的Size 是用于3D 显示时,Wall 的厚度.Color,Border,Gradient,Image,Shadow 这些属性基本和Panel 的一样.Pattern 为Wall 的填充图案.Position 表示该Wall 的显示区域.独立Wall 里的Size,也是指该Wall 的厚度.Transparency 依然是透明度的意思.因为Wall 为Series 的显示区域,在用色上除了要考虑习惯以外,打印图片时,最好将Gradient 取消,将Wall 和Panel 的颜色变为白色,这样可以节省打印的油墨.TeeChart 经验总结4.Titles 和LegendTitles 分为四个:Title,SubTitle,SubFoot,Foot.这4个的区别其实就是默认的位置.从名字也可以猜出.8Visible:可见.Adjust Frame:适应框架.应该是根据Text 内容调整以适应大小.Alignment:排列位置,在Positon 如果使用Custom,则这个属性失效.Text:该Title 显示的文字内容.Edit:编辑Text.Custom:前面提过了,可以自定义Title 的显示位置.Vert.Margin:垂直空白,是指和Wall 之间的距离.当Custom 选择时,则无效.9Color:背影颜色.Pattern:图案Transparent:透明,和Panel 属性一致(因为Title 显示在Panel 上)Transparency:透明度.其他如:Text,Gradient,Shadow,Picture 就不一一介绍了,都是常规属性.记住一点当Format->Transparent 被选择后,Gradient,Shadow,Picture 均失效,都继承Panel 的相应属性.//----------------------------------------------------------------------------------------------------------Legend 为Series 的说明,可以描述Series 的Names,Values,Last Values,等等.Visible:显示LegendInverted:反转显示顺序Font Series Color:使显示字体的颜色与Series颜色一致.Legend Style:Legend的显示内容,Automatic(自动),Series Names(名称,确切的说其实是Series的Title),Series Values(数据),Last Values(最后一个点的数据,所有的Series),Series Groups(没用过...). Text Value:和Legend Style对应的一些设置,不细说了.No Check Boxes:是否在对应Series前显示CheckBox或者RadioButton.可以直接选择是否显示该Series 在曲线上.Vert.Spacing:垂直间隔..Dividing Line:每个Item之间的分隔线Resize Chart,根据Legend的大小来调整Wall的大小Title:Legend的标题.10Border,Text,Gradient,Shadow,Picture这些和之前一些属性类似.TeeChart经验总结5.Axis开始写一些比较重要的内容了.Axis,坐标系里的坐标轴.TeeChart默认两个X轴:Top,Bottom;有若干个Y 轴.TeeChart的Y轴,可以显示在Wall的左边,也可以显示在Wall的右边,可以100%显示,也可以分段显示,意思就是可以在一个Axis的位置上分段显示多个Axis,每个Axis占用一部分.:如下图下面介绍一下Axis的属性左上角的Visible,可以关闭所有Axis的显示,之前提过Series的显示依赖于Axis,如果Axis被隐藏,则Series同样被隐藏.Behind:这个是3D显示用到的属性,将Axis显示在BackWall上还是显示在最前面.Left Axis,Right Axis,Top Axis,Bottom Axis,Depth Right,Depth Top:和名字的说法一样,都是TeeChart默认创建的Axis,也可以根据需要自行定义Axis.11Scales->Options->Automatic:根据所属该Seires的值自行设置Minimum,Maximum,Increment.Visible:单独控制该Axis的显示.Inverted:反向显示.Logarithmic:对数.可以以某对数为底,处理显示值.比如LogP-H图这种.Minimum,Maximum,Increment:这些就是设置Axis显示的最小值,最大值,以及增量..Titles->用来设置Axis显示的名称,也可以设置显示的角度Labels->显示Axis每个增量的数值.Mutile-Line:多行显示.Round First:感觉像是对第一个值取整.Label On Axis:在Axis也标记.Alternate:交替显示.Min.Separation%:Label的最小分隔.Style:显示风格.Size:Label占用的大小,如果设置为0,就是自动.Angle:Label显示的角度.Ticks->记号.Axis上小分隔的记号.1213Grid->设置Axis 的显示格线.如果Y 轴过多,最好只显示一个Axis 的Grid,不然显示起来会很乱.Grid..:用来设置线的属性,Width,Space 之类的.Z:3D 显示时用到的属性.Draw every:每几个分隔画一条Grid 线.Minor..:Grid 中的Grid.在前面Grid 中继续画Grid.Position->对于Vertical/Horizontal Axis 比较多的时候,Position 的设置就显得尤其重要了.Position %:设置Axis 的位置,如果是Vertical,没有选中Other side,那就是默认在左边的Axis,正就是向右,负就是向左.Start%,End%:这个就是前面那个多个Axis 实现方式.即每个Axis 占用的范围.Z%:3D 显示使用.Other side:Vertical Axis,不选中为Left,选中为Right;Horizontal Axis,不选中为Bottom,选中为Top,Position%均是从Wall 的边缘开始算起.Horizontal:选中就是水平方向的Axis,不选中就是垂直方向的Axis.Other side,Horizontal 都是自定义Axis 才可以使用的.//-----------------------------------------------------------------------------------------------14这是一个Axis 设定Demo 界面.其中使用为Create 和Visbile名称为Axis 的Title最小值为Axis 的Minimum最大值为Axis 的Maximum根据最小值和最大值来计算Increment 值.单位并不是Axis 的属性,在这里只是用于显示和Series 自动判断绑定在哪个Axis 的凭据.颜色就是Axis 的Color.X 坐标轴是每页可显示的范围,因为要用到分页.坐标轴格线即是Grid,如果Vertical,Horizontal 有多个的话,最好各只显示一个Axis 的Grid.TeeChart 经验总结6.Series 之1:LineTeeChart 提供了很多类型不同的Series,下面是比较常用的.创建Series 可以通过TeeChart Editor,如下View下面,可以选择显示或者使用代码创建,如下Series Name(选中就可以修改Name,不选中可以修改Title),Series Group;可以创建Series Group进行管理.Clone可以复制一个新的Series,Change可以修改已经创建好的Series的类型.Series:=TFastLineSeries.Create(aChart);//线所在ChartSeries.ParentChart:=aChart;//指定自定义AxisSeries.CustomVertAxis:=aAxis;//线宽度Series.Pen.Width:=aPenWidth;//线颜色Series.Color:=aColor;//线名称Series.Title:=aTitle;Series常用的添加数据函数Function Add(Const AValue:Double;Const ALabel:String='';AColor:TColor=clTeeColor):Integer;overload;virtual;Function AddArray(Const Values:Array of TChartValue):Integer;overload;Function AddNull(Const Value:Double):Integer;overload;Function AddNull(Const ALabel:String=''):Integer;overload;virtual;Function AddNullXY(Const X,Y:Double;Const ALabel:String=''):Integer;virtual;Function AddX(Const AXValue:Double;Const ALabel:String='';AColor:TColor=clTeeColor):Integer;Function AddXY(Const AXValue,AYValue:Double;Const ALabel:String='';AColor:TColor=clTeeColor):Integer;virtual;Function AddY(Const AYValue:Double;Const ALabel:String='';AColor:TColor=clTeeColor):Integer;15下面开始说LineSeries.Color...:Line Series的颜色.Pattren...:还是用于3D显示的图案.Drak3D:3D阴影.Color Each,Color Each Line:每个点之间的线一种颜色,这个被选中,则Color属性无效.Clickable:可点击.Line Mode:Stairs:阶梯;Inverted:反转.OutLine:轮廓.这个功能实现的很怪,如果修改了这个,则Series Color无效.Height3D:3D显示下Line的高(厚)度.Stack:这是一个比较复杂的设置.当有多个Line Series的时候,这个属性用来表示这些个Line Series的关系.None:在3D显示中,每个Line Series一个独立的ZOrder.1617Stack,Stack100:比较Line 数值,前者使用实际值,后者使用0-100.数学比较差..不知道该如何描述.Treat Nulls:处理空值.分为:Don't Paint(不绘),Skip(跳过),Ignore(忽略).Series 里有一个基础方法AddNull.Shadow:3D 显示的时候没有试出来,2D 显示的时候很明显.Gradient:3D 显示时将Z 上颜色渐变色.18Line 其实是通过AddXY 或者类似的函数添加的点连接而成的曲线,Point 就是是否来显示这个点,以及显示这个点的属性.大部分的属性之前都介绍过.Show In Legend:显示在Legend 中.Cursor:游标,只有当之前的Clickable 被选中,这个属性才有用.Depth:单独设置Line Series 的深度,如果选择Auto,则和Chart 整体保持一致.Horizontal Axis:指定Line Series 的水平Axis.Vertical Axis:指定Line Series 的垂直Axis.DateTime:把Axis 的值设置为时间.设置这个属性只要修改Series.XValues.DateTime 或者Series.YValues.DateTime 即可.做柱形图的月份统计,这个属性经常被用到.Formats:设置显示值的格式.Show In This Editor:是否显示在TeeChart Editor内..Sorts:排序TSeriesMarksStyle=(smsValue,{1234}smsPercent,{12%}smsLabel,{Cars}smsLabelPercent,{Cars12%}smsLabelValue,{Cars1234}smsLegend,{(Legend.Style)}smsPercentTotal,{12%of1234}smsLabelPercentTotal,{Cars12%of1234}smsXValue,{1..2..3..or21/6/1996}smsXY,{123456}smsSeriesTitle,{Series1}//8.0smsPointIndex,{1..2..3...}//8.0smsPercentRelative{100%..90%..120%...}//8.0);其他的比如Arrows(箭头),Symbol(符号,这个和之前在Legend中介绍的那个属性一样),剩下的属性之前都提到过.19TeeChart经验总结7.Series之2:Bar以后不贴TeeChart Editor的图了.尽量文字说明,也方便查找属性.BarSeries.BarStyle Bar的显示类型//矩形,椎体,倒椎体//圆筒,椭圆,箭头,渐变矩形,圆锥体,斜面//斜立方体,钻石型,反箭头,倒圆锥体TBarStyle=(bsRectangle,bsPyramid,bsInvPyramid,bsCilinder,bsEllipse,bsArrow,bsRectGradient,bsCone,bsBevel,bsSlantCube,bsDiamond,bsInvArrow,bsInvCone);BarSeries.ColorEachPoint每个Bar独立颜色BarSeries.Brush.Style刷子类型,也就是Bar的显示图案BarSeries.Brush.ColorBarSeries.Brush.BackColorBarSeries.Brush.Image以上四个属性,就是TeeChart Editor里的Pattern设置.TBrushStyle=(bsSolid,bsClear,bsHorizontal,bsVertical,bsFDiagonal,bsBDiagonal,bsCross,bsDiagCross);BarSeries.Gradient渐变色,配合bsRectGradient使用.BarSeries.TickLines标记线,用于在Bar上画分隔线.BarSeries.Dark3D3D投影效果显示BarSeries.DepthBarSeries.DepthPercentBarSeries.CustomBarWidthBarSeries.BarWidthPercentBarSeries.OffsetPercent以上为设置Bar Series的深度(3D显示),深度百分比(和Chart设置的3D设置比);宽度,宽度百分比;位移(水平方向).BarSeries.Shadow用于显示阴影,在3D和2D下均可显示.BarSeries.BarPen用来设置Bar外框的一些显示属性.BarSeries.MultiBar多个Bar的显示方式.TMultiBar=(mbNone,mbSide,mbStacked,mbStacked100,mbSideAll,mbSelfStack);贴个图,比较清楚:20BarSeries.ShowInLegendBarSeries.CursorBarSeries.AutoBarSizeBarSeries.CustomHorizAxisBarSeries.CustomVertAxisBarSeries.ValueFormatBarSeries.PercentFormatBarSeries.ShowInEditor之前介绍过.BarSeries.Marks用于显示标记.Demo下面是i:Integer;beginBarSeries.Clear;for i:=1to12dobeginwith BarSeries dobeginAddXY(i,Random(1000),Format('%.2d月',[i]));end;end;end;21TeeChart经验总结8.Series之3:Horizontal Bar&AreaHorizontal Bar属性和Bar一致,只是坐标系顺时针转90度.如下图.Area如下图AreaSeries.Stairs阶梯,在Add**函数中,从N点到N+1点之间均为添加的Y值.如果AreaSeries.InvertedStairs为True,则是从N点N-1点之间均为添加的Y值.Pattern对应AreaSeries.AreaChartBrushBorder对应AreaSeries.LinePenTop对应AreaSeries.BrushArea Lines对应AreaSeries.AreaLinesPenTransparency对应AreaSeries.TransparencyDrak3D对应AreaSeries.Dark3DColor Each对应AreaSeries.ColorEachPointColor对应AreaSeries.SeriesColorTreatNulls对应AreaSeries.TreatNullsTTreatNullsStyle=(tnDontPaint,tnSkip,tnIgnore);Stack->Multi Areas对应AreaSeries.MultiAreaStack Group对应AreaSeries.StackGroupUse Origin对应eYOriginOrigin对应AreaSeries.YOrigin2223TeeChart 经验总结9.Series 之4:Pie&OthersTeeChart 自带的PieDemo 就很能说明问题.Explode biggest 对应Pie.ExplodeBiggest;将最大的一块slice 推出.Total Angle 对应Pie.AngleSize;所有slice 的总角度.Dark Border 对应Pie.DarkPen;每一块slice 的边界线.Dark 3D 对应Pie.Dark3D;slice 侧边的阴影.Patterns 对应ePatterns;是否给slice 使用图案.Multiple Pies 对应Pie.MultiPie:TMultiPie=(mpAutomatic,mpDisabled);如果Chart 内有多个Pie,如何显示.Gourp Slices.Style 对应Pie.OtherSlice.Style;TPieOtherStyle=(poNone,poBelowPercent,poBelowValue);Gourp Slices.Value 对应Pie.OtherSlice.ValueGourp bel 对应Pie.OtherSlice.TextGourp Slices.Legend 对应Pie.OtherSlice.Legend这些属性是为了使Value 低于总百分比(poBelowPercent)或者低于数值(poBelowValue)这些数值之和,显示为Label 的新slice.比如处理一些较小的值,显示为Other.Color Each slice 对应Pie.ColorEachPointColor palette对应Pie.ParentChart的ColorPaletteIndexColor对应Pie.SeriesColorAuto Mark Position对应Pie.AutoMarkPosition;自动设置Mark的位置Vertical center callout对应Pie.PieMarks.VertCenter;垂直居中显示Callout Leg size对应Pie.PieMarks.LegSize;Mark脚线的长度(以下属性和TCircledSeries通用)Circled对应Pie.Circled;显示成圆(而不是椭圆)3Dimensions对应Pie.ParentChart.View3DRotation对应Pie.RotationAngle;旋转角度Radius.Horizontal对应Pie.CustomXRadius水平半径Radius.Vertical对应Pie.CustomYRadius垂直半径(以上属性和TCircledSeries通用)Point:离线并不连接的点.常用属性之前都介绍过.Fast Line:简化版的Line,取消了3D显示,取消了Stack等功能.Horizontal Line:XY互换的Line.Horizontal Area:XY互换的Area.Bubble:泡泡.其实感觉更像是立体彩色版本的Point..Gantt:甘特图Extended:扩展.2425Financial:金融.Stats:统计.3D:Gauges:仪表.26Other:Maps:地图.2728TeeChart经验总结10.Zoom&ScrollZoom.Allow对应TheChart.Zoom.Allow;是否允许Zoom.Zoom.Animated对应TheChart.Zoom.Animated;演示Zoom的动画.Zoom.Steps对应TheChart.Zoom.AnimatedSteps;Zoom动画的步数.Zoom.Pen对应TheChart.Pen;Zoom.Pattern对应TheChart.Zoom.Brush;Zoom.Minimum pixels对应TheChart.Zoom.MinimumPixels;最小可执行Zoom的像素,即用户选中的Zoom框的最小大小.Zoom.Direction对应TheChart.Zoom.Direction;Zoom的方向,TTeeZoomDirection=(tzdHorizontal, tzdVertical,tzdBoth);Zoom.Mouse Button对应TheChart.Zoom.MouseButton;实现Zoom的鼠标键,TMouseButton=(mbLeft, mbRight,mbMiddle);Zoom.Zoom on Up Left Drag对应TheChart.Zoom.UpLeftZooms;默认的话,是向右下方(右上方也是)的拖放为Zoom,向左上方(左下方也是)的拖放为复位,如果选中了这个属性,则向左上方(左下方也是)也为Zoom.Scroll.Allow Scroll对应TheChart.AllowPanning;Scroll允许的方向,TPanningMode=(pmNone,pmHorizontal,pmVertical,pmBoth);//不允许,水平,垂直,水平和垂直. Scroll.Mouse Button对应TheChart.ScrollMouseButton;当按住这个MouseButton的时候,就实现Scroll. Cursor对应TheChart.Cursor.TeeChart经验总结11.Tools不记得是从7.0还是8.0,TeeChart提供了丰富的Tools.这是一个纯用TeeChart的Tools实现的简易游标Demo.本节后面会附上全部源码.Clip Series:当Series被拖动超出了Axis的范围,则超出的部分不显示.Cursor:十字,垂直,水平方向的游标,可以具体Snap任意Series的相应方向上的数据点.Drag Marks:可以任意拖动位置的Marks.Drag Point:可以任意移动绑定Series的数据点.Draw Line:在Chart上画线.Extra Legend:扩展Legend,可以在Chart再显示若干个Legend.fibonnaci:斐波那契数29Gantt Drag:可拖动的甘特图Image:图片Legend Palette:用Series的颜色显示Legend颜色Mark Tips:鼠标移动到Mark上,会显示出Hint提示.Nearest Point:移动鼠标,会找到离鼠标最近的Series上的一点.Pie Slices:移动鼠标到Pie Slices上,会高亮被鼠标移动到的slice.Region:填充Series和某个值之间的区域.Series Animation:显示动画,比如柱状图从0增加到设定值.Series Band:填充2个Series之间的区域.Statistics:统计资料,可以显示一个Series的一些统计资料.比如平均值,最大值,最小值,多少个值等等. Surface Nearest:找到表面最近的点,并且高亮.Axis Arrow:在Axis上添加2个方向的箭头,可以进行相应方向的Scroll操作.Axis Scroll:可以用鼠标直接拖动Axis进行数据范围的变更.Color Band:用彩色带填充Axis区域的背景颜色.Color Line:用彩色线(可以允许拖动)显示在相应Axis的区域.Grid Band:用2种颜色带交替填充相应Axis的区域.2D Lighting:有点类似探照灯一样的效果...3D Grid Transpose:交换3D Series的数据,行,列.Annotation:注释,可以在Chart里任意位置显示一段文字.Anti-Alias:平滑线的尖角.Banner:横幅,可以实现滚动字.Data Table:显示一个Series的数据表格.Fader:淡入/淡出一个Chart.Frame:显示一个包围Chart的框架(相框效果).Full Screen:将Chart全屏显示,然后用Alt+F4或者Esc返回.Legend Scrollbar:Legend的滚动条Link:在Chart里显示一个超级链接.Magnify:一个可以来回拖动的放大镜.Page Number:显示Chart的当前页/总页数(也可以提供切换页的按钮).Rectangle:一个可以拖动,可以改变大小的文字显示框.Rotate:可以360度任意角度旋转Chart.Selector:可以设置选择任何在Chart中的子组件,比如Title,Series等等.组合Hint,可以显示出选中的是什么组件.SubChart:在Chart里再内置子Chart.Text3D:显示3D的注释.Transpose Series:交换Series的行列.Video Creator:创建一段Chart图像的AVI.Video Player:在Chart里播放AVI.下面是之前提到的Demo.dfm文件:object Form1:TForm1Left=192Top=190Width=870Height=500Caption='Form1'30Color=clBtnFaceFont.Charset=DEFAULT_CHARSETFont.Color=clWindowTextFont.Height=-11='MS Sans Serif'Font.Style=[]OldCreateOrder=FalseOnCreate=FormCreatePixelsPerInch=96TextHeight=13object Button_FillData:TButtonLeft=744Top=48Width=75Height=25Caption='填充数据'TabOrder=0OnClick=Button_FillDataClickendobject CheckBox_Cursor:TCheckBoxLeft=752Top=88Width=57Height=17Caption='游标'TabOrder=1OnClick=CheckBox_CursorClickendobject CheckBox_LockY:TCheckBoxLeft=752Top=120Width=97Height=17Caption='Lock Cursor Y'TabOrder=2OnClick=CheckBox_LockYClickendobject Chart1:TChartLeft=24Top=32Width=681Height=409Title.Text.Strings=('TChart')TabOrder=3end31endpas文件:unit Unit1;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,TeEngine,Series,StdCtrls,ExtCtrls,TeeProcs,Chart,TeeTools;typeTForm1=class(TForm)Button_FillData:TButton;CheckBox_Cursor:TCheckBox;CheckBox_LockY:TCheckBox;Chart1:TChart;procedure Button_FillDataClick(Sender:TObject);procedure FormCreate(Sender:TObject);procedure CheckBox_CursorClick(Sender:TObject);private{Private declarations}FFLS1,FFLS2:TFastLineSeries;FCursorTool:TCursorTool;FAnnotationTool:TAnnotationTool;procedure CursorChange(Sender:TCursorTool;x,y:Integer;Const XValue,YValue:Double;Series:TChartSeries;ValueIndex:Integer);public{Public declarations}end;varForm1:TForm1;implementation{$R*.DFM}procedure TForm1.Button_FillDataClick(Sender:TObject);beginFFLS1.FillSampleValues(20);FFLS2.FillSampleValues(20);end;constLabelInv=10;32procedure TForm1.CursorChange(Sender:TCursorTool;x,y:Integer;const XValue,YValue:Double;Series:TChartSeries;ValueIndex:Integer);varStr:string;TmpX,TmpY:Integer;beginFAnnotationTool.Visible:=False;if not Assigned(Series)thenExit;if Series.XValues.Count<=0thenExit;Str:=Format('X Value=%.2f',[XValue])+#13#10+Format('%s YValue=%.2f',[FFLS1.Title,FFLS1.YValues[ValueIndex]])+#13#10+Format('%s YValue=%.2f',[FFLS2.Title,FFLS2.YValues[ValueIndex]]);FAnnotationTool.Text:=Str;TmpX:=x+LabelInv;if TmpX+FAnnotationTool.Width>Chart1.ChartRect.Right-LabelInv thenTmpX:=x-FAnnotationTool.Width-LabelInv;if CheckBox_LockY.Checked thenbeginTmpY:=Chart1.ChartRect.Top+LabelInv;if TmpY+FAnnotationTool.Height>Chart1.ChartRect.Bottom-LabelInv thenTmpY:=Chart1.ChartRect.Bottom-Height-LabelInv;endelsebeginTmpY:=Chart1.GetCursorPos.y+LabelInv;if TmpY+FAnnotationTool.Height>Chart1.ChartRect.Bottom-LabelInv thenTmpY:=Chart1.ChartRect.Bottom-FAnnotationTool.Height-LabelInv;end;if TmpY<Chart1.ChartRect.Top+LabelInv thenTmpY:=Chart1.ChartRect.Top+LabelInv;FAnnotationTool.Top:=TmpY;FAnnotationTool.Left:=TmpX;FAnnotationTool.Visible:=FCursorTool.Visible;end;procedure TForm1.FormCreate(Sender:TObject);begin//调整TeeChart属性Chart1.Legend.Visible:=True;Chart1.Legend.Alignment:=laTop;Chart1.View3D:=False;Chart1.Zoom.Allow:=False;Chart1.AllowPanning:=pmNone;33//创建Seriesif not Assigned(FFLS1)thenbeginFFLS1:=TFastLineSeries.Create(Self);FFLS1.ParentChart:=Chart1;FFLS1.Title:='Test Series1';end;if not Assigned(FFLS2)thenbeginFFLS2:=TFastLineSeries.Create(Self);FFLS2.ParentChart:=Chart1;FFLS2.Title:='Test Series2';end;//创建ToolsFCursorTool:=TCursorTool.Create(Chart1);FCursorTool.ParentChart:=Chart1;FCursorTool.Active:=False;FCursorTool.Pen.Color:=clRed;FCursorTool.Style:=cssVertical;FCursorTool.Series:=FFLS1;FCursorTool.Snap:=True;FCursorTool.OnChange:=CursorChange;FAnnotationTool:=TAnnotationTool.Create(Chart1);FAnnotationTool.ParentChart:=Chart1;FAnnotationTool.Active:=False;FAnnotationTool.PositionUnits:=muPixels;FAnnotationTool.Shape.CustomPosition:=True;FAnnotationTool.Shape.Gradient.Visible:=True;FAnnotationTool.Shape.Transparency:=30;end;procedure TForm1.CheckBox_CursorClick(Sender:TObject);beginFCursorTool.Visible:=CheckBox_Cursor.Checked;FAnnotationTool.Visible:=CheckBox_Cursor.Checked;end;end.34TeeChart经验总结12.Export之1.图像保存TeeChart提供比较丰富的图像保存(处理),和数据保存.先说图像保存.BMP:Flex:GIF:JPG:35MetaFile:PCX:PDF:36PostScript:SVG:SVG:37VML(HTM):XAML(WPF):38Binary://uses TeeExport;Procedure SaveTeeToFile(APanel:TCustomTeePanel;Const AName:String);Procedure SaveTeeToStream(APanel:TCustomTeePanel;AStream:TStream);//uses TeeStore;//TextFormat=False;Procedure SaveChartToFile(AChart:TCustomChart;Const AFileName:String;IncludeData:Boolean=True;TextFormat:Boolean=False);Procedure SaveChartToStream(AChart:TCustomChart;AStream:TStream;IncludeData:Boolean=True;TextFormat:Boolean=False);Text://uses TeeStore;//TextFormat=True;Procedure SaveChartToFile(AChart:TCustomChart;Const AFileName:String;IncludeData:Boolean=True;TextFormat:Boolean=False);Procedure SaveChartToStream(AChart:TCustomChart;AStream:TStream;IncludeData:Boolean=True;TextFormat:Boolean=False);XML://uses TeeStore;Procedure SaveChartToXMLFile(AChart:TCustomChart;Const AFileName:String;IncludeData:Boolean=True;XMLHeader:Boolean=True);Procedure SaveChartToXMLStream(AChart:TCustomChart;AStream:TStream;IncludeData:Boolean=True;XMLHeader:Boolean=True);39创建对象的时候,第二个参数为nil,则为全部的Series,否则为指定的Series对象.另外,除了XML以外,IncludeColors好像都没有用处.一般数据导出,我都用Cnpack的CnXlsWriter,和TeeChart的TSeriesDataXLS采用的都是直接写XLS 格式的方式,但是自由度大很多.Text://uses TeeExport;varaSeriesDataText:TSeriesDataText;beginaSeriesDataText:=TSeriesDataText.Create(Chart,nil);//nil=allaSeriesDataText.TextDePmiter:=';';//'',',',tab.....aSeriesDataText.TextQuotes:='''';//'"'.....aSeriesDataText.IncludeLabels:=True;aSeriesDataText.IncludeIndex:=True;aSeriesDataText.IncludeHeader:=True;aSeriesDataText.IncludeColors:=True;aSeriesDataText.SaveToFile('test.txt');aSeriesDataText.Free;end;XML://uses TeeExport;varaSeriesDataXML:TSeriesDataXML;beginaSeriesDataXML:=TSeriesDataXML.Create(Chart,nil);//nil=allaSeriesDataXML.IncludeLabels:=True;aSeriesDataXML.IncludeIndex:=True;aSeriesDataXML.IncludeHeader:=True;aSeriesDataXML.IncludeColors:=True;aSeriesDataXML.SaveToFile('test.xml');aSeriesDataXML.Free;end;HTML://uses TeeExport;varaSeriesDataHTML:TSeriesDataHTML;beginaSeriesDataHTML:=TSeriesDataHTML.Create(Chart,nil);//nil=allaSeriesDataHTML.IncludeLabels:=True;aSeriesDataHTML.IncludeIndex:=True;aSeriesDataHTML.IncludeHeader:=True;aSeriesDataHTML.IncludeColors:=True;aSeriesDataHTML.SaveToFile('test.html');40aSeriesDataHTML.Free;end;Excel(XLS)://uses TeeExport;varaSeriesDataXLS:TSeriesDataXLS;beginaSeriesDataXLS:=TSeriesDataXLS.Create(Chart,nil);//nil=allaSeriesDataXLS.IncludeLabels:=True;aSeriesDataXLS.IncludeIndex:=True;aSeriesDataXLS.IncludeHeader:=True;aSeriesDataXLS.IncludeColors:=True;aSeriesDataXLS.SaveToFile('test.xls');aSeriesDataXLS.Free;end;41。
“Reprint headers on new page”决定在多个页面打印时,是否在每个页面当打印输出标题栏。
“Side by side cell”:是否允许合并单元格“Join equal cells”选项,当数值相等时是否可以合并单元格。
使用对象查看器的属性设置也可以设置这些内容。
第八章FastReport允许用户插入chart制表组件到报表中,这样,在FastReport面板上的“TfrxCharObject”组件就必须应用上。
这个组件基于“TeeChart”动态库,在delphi 中需要将它包含在工程中。
我们通过以下示例先进行简单说明,连接DBDemos中的countory表,数据内容如下:在delphi环境中创建一个新的工程,添加“TTable”,“TfrxChartObject”,“TfrxDBData”,“TfrxReport”组件,并设置属性值:Table1:DatabaseName = 'DBDEMOS'TableName = ''frxDBDataSet1:DataSet = Table1UserName = 'Country'进入到报表设计器页面,并连结设置数据源。
在报表的设计页上放置一个“chart”组件,并调整其大小(18X8cm)。
双击组件,打开组件的编辑器窗口。
char编辑器区域说明:1:chart结构,一个chart包含有几个制表系统。
2:组件监视器,显示所选组件的属性。
3:连结chart的series的数据属性。
开始的界面显示如上,首先添加一个或几个series,在1区点击按钮,添加一个Pie。
有许多可用的不同的类型的series。
添加一个系列之后,3区被激活。
首先选择数据源,设置Label和pie字段。
点击确定按钮,关闭编辑器窗口,然后预览。
还如何改良以下报表呢?首先,将数据按升序方式进行排序。
再次进入编辑器,选择要设置的series,在3区设置选项。
“Reprint headers on new page〞决定在多个页面打印时,是否在每个页面当打印输出标题栏。
“Side by side cell〞:是否允许合并单元格“Join equal cells〞选项,当数值相等时是否可以合并单元格。
使用对象查看器的属性设置也可以设置这些容。
第八章FastReport允许用户插入chart制表组件到报表中,这样,在FastReport面板上的“TfrxCharObject〞组件就必须应用上。
这个组件基于“TeeChart〞动态库,在delphi中需要将它包含在工程中。
我们通过以下示例先进展简单说明,连接DBDemos中的countory表,数据容如下:在delphi环境中创建一个新的工程,添加“TTable〞,“TfrxChartObject〞,“TfrxDBData〞,“TfrxReport〞组件,并设置属性值:Table1:DatabaseName = 'DBDEMOS'TableName = 'country.db'frxDBDataSet1:DataSet = Table1UserName = 'Country'进入到报表设计器页面,并连结设置数据源。
在报表的设计页上放置一个“chart〞组件,并调整其大小〔18X8cm〕。
双击组件,打开组件的编辑器窗口。
char编辑器区域说明:1:chart结构,一个chart包含有几个制表系统。
2:组件监视器,显示所选组件的属性。
3:连结chart的series的数据属性。
开始的界面显示如上,首先添加一个或几个series,在1区点击按钮,添加一个Pie。
有许多可用的不同的类型的series。
添加一个系列之后,3区被激活。
首先选择数据源,设置Label和pie字段。
点击确定按钮,关闭编辑器窗口,然后预览。
还如何改良以下报表呢?首先,将数据按升序方式进展排序。
再次进入编辑器,选择要设置的series,在3区设置选项。
Delphi6.0 安装说明1.安装Delphi6.0主程序可以不安装Inerbase数据库和Java等组件2.安装Delphi6.0补丁程序1)安装Pack2补丁包(Delphi6\Pack2\D6_upd2_ent.exe)2)安装Rtl2补丁(delphi6\pack2\RTL ServicePack2)3)安装Rtl pack3补丁,根据安装说明文件README_D6_RTL_3.txt(Delphi6\pack2\RTL ServicePack1,2,3\d6_rtl3 \README_D6_RTL_3.txt),将d6_rtl3下的文件拷贝到相应的路径下3.安装Delphi6.0组件安装组件1)可执行文件(Exe)直接安装关闭所有Delphi程序后安装2)包文件(*.Dpk)安装打开Delphi主程序●选择[File]-[open],打开需安装的Dpk文件,在弹出窗口中点击”Install”●或者直接双击Dpk文件即可3)单元文件(*.Pas)安装打开Delphi主程序,选择[Componet]-[Install Componet],在Unit File Name选择所需的*.Pas文件,在弹出窗口中点击”Install”编译组件组件安装成功后,检查Delphi组件工具栏上是否有新增组件的页面,将页面中的控件拖到新建工程的Form中,按F9编译或运行,如果没有报错信息,则安装组件成功.如果报错。
需要添加单元文件所在路径添加方法:在Tools|Environment Options|Library ,点library path右边的按钮,弹出如下图所示的界面在Greyed items denote invalid path.输入报错package和unit 文件所在路径。
添加之后保存。
V2开发组件安装说明所有组件安装完成后进入到[Project]-[Options]-[Packages]-[Desigh packages]将所有包都选中,选中过程中会有提示信息,可不理会.组件删除选择[Project]-[options],packages页面,选中删除的组件,remove即可检查组建是否安装成功用Delphi打开delphi source\Main\VDRP.dpr检查是否有报错提示.4.Delphi6开发设置1)工程属性设置●版本号设置新建工程,[project]-[options],在Version Info页面必须设置版本号为2.0.0.0●编译环境设置[project]-[options],在Packages页面选中Build with runtime packages,添加以下包:vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;vcldbx;ibxpress;dsnap;cds;bdecds;q rpt;visualclx;visualdbclx;dsnapcrba;dsnapcon;VclSmp;vclshlctrls;vclie;xml rtl;inet;inetdbbde;inetdbxpress;inetdb;nmfast;webdsnap;websnap;soaprtl;db express;dbxcds;indy;dclOffice2k;dxMasterViewD6;dxcomnd6;dxBarD6;dxBarDBNa vD6;dxBarExtItemsD6;dxBarExtDBItemsD6;dxsbD6;dxFlowChartD6;dxInsD6;dxDBEd D6;dxEdtrD6;dxLayoutControlD6;dxmdsd6;dxPSCoreD6;dxPsPrVwAdvD6;dxPSLnksD6 ;dxPSTeeChartD6;tee;dxPSDBTeeChartD6;teedb;dxPSdxInsLnkD6;dxPSdxMVLnkD6;d xPSdxFCLnkD6;EQTLD6;ECQDBCD6;EQDBTLD6;EQGridD6;dxGrEdD6;dxExELD6;dxELibD6 ;dxPageControlD6;Rz30Ctls60;Rz30DBCtls60;SUIPackD6;VCLZipD6;RxDB6;tmsd6 5.编译调试1)设置工程输出路径程序运行时将创建Dll到输出路径,如果不设置输出的Dll直接存放于工程的同级目录.设置方法如下图所示: [project]-[options],directories/condtionsnals页面2)设置运行主应用程序[Run]-[Run Parameters],Local:Host Application设置主应用程序.如下图所示3)设置调试Dll运行工程,登录V2主界面后,在菜单栏点击[调试Dll]选择(1)中设置路径下的Dll 4)设置断点调试。
Delphi历史版本详解-从Turbo Pascal 到Delphi XE 2delphi每每升级都在继续完善扩展面向对象的特性,这是升级新版本的最重要的原因。
大略说下语言层面上的变化。
d2005开始支持记录的运算符重载特性,运算符重载在需要大量数学运算编码时尤为方便。
等等。
d2007加入了对触屏的支持,vcl内不少数据组件进行了更新。
等等。
d2009开始全面支持unicode,并开始加入泛型,新增了一些泛型容器。
有了泛型delphi终于才能说是个完整的面向对象语言。
再一个开始对vista\win7的新winapi的支持。
等等。
d2010开始继续完善上个版本中的泛型特性,并扩充和再次新增了一些泛型类。
xe变化不大,只是继续对vcl修修补补,记得新增了delphi 的原生的正则支持,加入的那个正则类叫啥名字也记不清了,反正不需要再用第三方的正则库了。
等等。
x2变动挺大,把winapi进行了重新封装。
加入了firemonkey框架、支持win64位编译,号称跨平台。
在gdi+出现的10年后终于gdi+封装进了vcl,可直接使用gdi+这个快淘汰的东东了。
等等。
xe3 继续号称跨平台,win64位编译。
继续修修补补。
等等LX补充。
个人推荐D2009和xe。
另外高版本中强化的调试功能和单元测试等等这些是d7没法比拟的,这也是升级高版本的重要原因。
我是同时装有d7、d2009和xe。
写些只需三两千或几百行的玩具应用用d7就好,编译的exe也精悍。
干活时都是d2009或xe,xe用得较多。
-------------------------------------------------------------------------------------------------------------------------------------------Delphi历史版本详解-从Turbo Pascal 到Delphi XE 2 日期:2011年9月9日在delphi XE2发布之际,满足各位D迷得要求,跟大家分享一下从Turbo Pascal 到Delphi XE 2 各个版本历史。
本文主要讲解Delphi中Chart,TeeChart的属性,方法及用法.Tchart分析报告,TeeChart使用指南,TeeChart控件介绍1.AllowZoom : Boolean是否允许鼠标拖动来缩放图表2.AnimatedZoom : Boolean拖动是否显示缩放过程3.AxisVisible : Boolean显示和隐藏4个子图表4.BufferedDisplay :BooleanTrue时图表首先画在内部画布上,可以防止图表闪烁,但耗费内存资源.5.ChartHeight : LongInt以像素为单位,运行为只读,显示图表顶轴与底轴的高度,不包含页边距,Height包含页边距,(**** 转载敬请注明-本文出处:南山古桃(nsgtao)的百度空间:/nsgtao/ ****)6.DepthAxis,LeftAxis,RightAxis,TopAxis,BottomAxisTchart共分为五个子图表,LeftAxis,RightAxis,TopAxis,BottomAxis和DepthAxis默认情况下只显示LeftAxis和BottomAxis子图表可以通过Series属性的子属性HorizAxis与VertAxis进行设置如:chart1.Series[0].HorizAxis := aBothHorizAxis;chart1.Series[0].VertAxis := aBothVertAxis;chart1.BottomAxis.Title.Caption := 'nsgtao';chart1.BottomAxis.Title.Font.Color := clRed;7.Foot : TChartTitle在图表底部定义的文本和格式,在图表底部显示一些说明文字Chart1.Foot.Text.Add('Nsgtao Foot');(**** 转载敬请注明-本文出处:南山古桃(nsgtao)的百度空间:/nsgtao/ ****)8.Gradient : TChartGradient用于设置图表背景颜色:是否显示背景色,背景色渐变的起始颜色和终止颜色,渐变方向等以下是南山古桃(nsgtao) 引用网上资源引用1.关键词:Tchart分析报告引用2.关键词: TeeChart使用指南,TeeChart控件介绍*************************************************************** *************************************************************** *********************下面是南山古桃引用并整理的文章*************************************************************** *************************************************************** *****1 Tchart分析报告(**** 转载敬请注明-本文出处:南山古桃(nsgtao)的百度空间:/nsgtao/ ****)1.1 [概述]TChart是delphi里面一个标准的图形显示控件。
它可以静态设计(at design time)也可以动态生成。
1.2 [继承关系]TObjectTPersistentTComponentTControlTCustomControlTWedgetControlTChartTCustomPanel1.3 [tips]1.3.1 Pro Version支持Bezier , Contour , Radar 和 point3D 曲线1.3.2 支持jpeg文件的导出1.3.3 Chart中的Series 可以连接到Table , Query , RemoteDataset(其他数据集)1.3.4 TChart里的series的active属性可以实现对已绘制图形的显示或者隐藏1.3.5 在TChart中, tchartSeries是所有具体series的父类,没有画出什么来的,用一个具体的series类来创建就可以了,比如用TLineSeries、 TPieSeries、 TPointSeries、 TPointSeries等等都行1.3.6 TTeeFunction Component可以实现在同一个TChart里面,一个Serries 对另一个Serries的统计1.4 [问题极其使用技巧]1.4.1 TChart中如何实现只有Y轴的放大与缩小功能?设置BottomAxis或者LeftAxis的Automatic:=false并同时设置Minimum,Maximum属性1.4.2 如何固定TChart中的坐标,不使TChart中的坐标跟随Series的变化而变化?//设置底座标with myChart.BottomAxis dobeginAutomatic:=false;Minimum:=0;LabelStyle := talText;end;//设置左坐标with myChart.LeftAxis dobeginAutomatic:=false;Minimum:=0;Title.Angle:=270;Title.Font:=Self.Font;Title.Font.Charset:=ANSI_CHARSET;:='@宋体';Grid.Visible := False;end;//设置右坐标with myChart.RightAxis dobeginAutomatic:=false;Title.Font:=Self.Font;Title.Font.Charset:=ANSI_CHARSET;:='@宋体';Title.Caption:='累计百分比(%)';Maximum:=100;Minimum:=0;end;1.4.3 如何删除一个图形中的一个点?使用Series的delete 方法1.4.4 如何修改一个点的X或者Y 值?LineSeries1.YValue[3] := 27.1 ;{In Bubble Series}BubbleSeries1.RadiusValues.Value[ 8 ] := 8.1 ;{In Pie Series}PieSeries1.PieValues.Value[ 3 ] := 111 ;1.4.5 如果横坐标是时间(日期),如何进行设置?{First, you need to set the DateTime property to True in the desired X and/or Y values list.}LineSeries1.XValues.DateTime := True ;{Second, use the same above described methods, but give the values as Date, T ime or DateTime values}LineSeries1.AddXY( EncodeDate( 1996 , 1 , 23 ) , 25.4 , 'Barcelona' , clGreen );1.4.6 如何在chart中画出的曲线某个点上标记出该点的值?Series.Marks.Visible:=true;Series.Marks.Style:=smsValue;1.4.7 如何设置横轴或者纵轴的增长率?Chart.BottomAxis.Increment := DataTimeStep[ dtOneHour ] ;Chart.RightAxis.Increment := 1000;1.4.8 如何对图象进行缩放?TChart的ZoomRect或者ZoomPercent方法(Pie图可能不支持缩放)(**** 转载敬请注明-本文出处:南山古桃(nsgtao)的百度空间:/nsgtao/ ****)1.5 [TChart可以绘制的图形]1.5.1 Line ( TLineSeries)1.5.2 FastLine (TFastLineSeries) 相对Line来说,它损耗了某些属性从而来实现快速绘制1.5.3 Bar (TBarSeries)1.5.4 Horizontal bar (THorizBarSeries)1.5.5 Area (TAreaSeries)1.5.6 Point (TPointSeries)1.5.7 Pie (TPieSeries)1.5.8 Arrow (TArrowSeries)1.5.9 Bubble (TBubbleSeries)1.5.10 Gantt (TGanttSeries)1.5.11 Sharp (TChartShape)1.6 [TChart的实时绘制]实时绘制对机器性能要求比较高,因此我们在编程的时候要注意下面几个方面:ü使用2D图形ü是Chart尽可能包含少的点ü如果需要,可以移除(remove)chart的legend(?????)和Titleü使用默认的字体和字体大小ü使用FastLineSeriesü使用实体(solid)画笔和画刷格式ü尽量避免使用圆形和环行bar样式ü不要使用背景图片和渐变效果样式ü把Chart的BevelInner和BevelOUter属性设置为bcNoneü如果需要,把TChart的AxisVisible属性设置为Falseü把BufferedDisplay设置为false可以加速chart的重绘1.7 [Scrolling]TChart有4中scroll选择(AllowPanning属性),分别是不允许Scroll ( pmNone) ; 水平Scroll (pmHorizontal) ; 垂直Scroll (pmVertical) ; 水平和垂直Scroll (pmBoth)Procedure Scroll(Const Offset:Double; CheckLimits:Boolean);例子如下:Chart1.BottomAxis.Scroll( 1000, True );这段代码也等同于With Chart1.BottomAxis doBeginAutomatic:=false;SetMinMax( Minimum+1000, Maximum+1000 );End;(**** 转载敬请注明-本文出处:南山古桃(nsgtao)的百度空间:/nsgtao/ ****)1.8 [TChart中的全局变量]ü TeeScrollMouseButton := mbRight;设置鼠标右键为TChart滚动键(默认)ü TeeScrollKeyShift := [ ssCtrl ]; 要按住Control键才可以使Scroll滚动1.9 [TChartSerries使用技巧]1.9.1 运行时候创建一个Serries, 三种方法:1.Var MySeries : TBarSeries ;MySeries := TBarSeries.Create( Self );MySeries.ParentChart := Chart1 ;2.Chart1.AddSeries( TBarSeries.Create( Self ) );3.Var MyClass : TChartSeriesClass;MyClass := TBarSeries ;Chart1.AddSeries( MyClass.Create( Self ) );1.9.2 获得TChart中的Serries数组,也有三种方法1.MySeries := Chart1.SeriesList [ 0 ]2.MySeries := Chart1.Series [ 0 ]3.MySeries := Chart1 [ 0 ]1.9.3 SerriesCount属性获得SeriesList中Series的个数1.9.4 隐藏TChart中的Series有三种方法,但是效果不等价1. Series1.Active:=False; 仅仅隐藏,当设置为true的时候还可以显示出来2. Series1.ParentChart:=nil ;隐藏,重新设置ParentChart为TChart时候可以显示3. Series1.Free; 删除了Series. 不可以恢复1.9.5 TChart中的数据排序With Series1 dobeginYValues.Order:=loAscending;YValues.Sort;Repaint;end;Ø 定位一个点(Loacate a point)Series1.XValues.Locate(123);Ø XValue和YValue都拥有的属性Total , TotalABS , MaxValue , MinValue*************************************************************** *************************************************************** *********************下面是南山古桃引用百度网友zwl232 的文章*************************************************************** *************************************************************** *****(**** 转载敬请注明-本文出处:南山古桃(nsgtao)的百度空间:/nsgtao/ ****)TeeChart使用指南TeeChart控件介绍TeeChart Pro ActiveX是西班牙Steema SL公司开发的图表类控件,主要用来生成各种复杂的图表。