1、本文主要讲解Delphi中Chart,TeeChart 的属性,方法及用法.Tchart分析报告,TeeChart使用指南,TeeChart控件介绍1.AllowZoom : Boolean是否允许鼠标拖动来缩放图表2.AnimatedZoom : Boolean拖动是否显示缩放过程3.AxisVisible : Boolean显示和隐藏4个子图表4.BufferedDisplay :BooleanTrue时图表首先画在内部画布上 ,可以防止图表闪烁 ,但耗费内存资源.5.ChartHeight : LongInt以像素为单位,运行为只读,显示图表顶轴与底轴的高度,不包含页边距,Height包
2、含页边距,(* 转载敬请注明本文出处:南山古桃(nsgtao) 的百度空间:http:/ *)6.DepthAxis,LeftAxis,RightAxis,TopAxis,BottomAxisTchart共分为五个子图表,LeftAxis,RightAxis,TopAxis,BottomAxis和DepthAxis默认情况下只显示LeftAxis和BottomAxis子图表可以通过Series 属性的子属性 HorizAxis与VertAxis进行设置如:chart1.Series0.HorizAxis := aBothHorizAxis;chart1.Series0.VertAxis :=
3、aBothVertAxis;chart1.BottomAxis.Title.Caption := nsgtao;chart1.BottomAxis.Title.Font.Color := clRed;7.Foot : TChartTitle在图表底部定义的文本和格式,在图表底部显示一些说明文字Chart1.Foot.Text.Add(Nsgtao Foot);(* 转载敬请注明本文出处:南山古桃(nsgtao) 的百度空间:http:/ *)8.Gradient : TChartGradient用于设置图表背景颜色:是否显示背景色,背景色渐变的起始颜色和终止颜色,渐变方向等以下是 南山古桃(n
4、sgtao) 引用网上资源引用1.关键词:Tchart分析报告引用2.关键词: TeeChart使用指南,TeeChart 控件介绍*下面是 南山古桃 引用 并整理的文章*1 Tchart分析报告(* 转载敬请注明本文出处:南山古桃(nsgtao) 的百度空间:http:/ *)1.1 概述 TChart是delphi里面一个标准的图形显示控件。它可以静态设计(at design time)也可以动态生成。1.2 继承关系 TObjectTPersistentTComponentTControlTCustomControlTWedgetControlTChartTCustomPanel1.3
5、tips1.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、
6、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;
7、LabelStyle := talText;end;/设置左坐标with myChart.LeftAxis dobeginAutomatic:=false;Minimum:=0;Title.Angle:=270;Title.Font:=Self.Font;Title.Font.Charset:=ANSI_CHARSET;Title.Font.Name:=宋体;Grid.Visible := False;end;/设置右坐标with myChart.RightAxis dobeginAutomatic:=false;Title.Font:=Self.Font;Title.Font.Charset
8、:=ANSI_CHARSET;Title.Font.Name:=宋体;Title.Caption:=累计百分比( %);Maximum:=100;Minimum:=0;end;1.4.3 如何删除一个图形中的一个点?使用Series的 delete 方法1.4.4 如何修改一个点的X或者Y 值?LineSeries1.YValue3 := 27.1 ;In Bubble SeriesBubbleSeries1.RadiusValues.Value 8 := 8.1 ;In Pie SeriesPieSeries1.PieValues.Value 3 := 111 ;1.4.5 如果横坐标是时间
9、(日期),如何进行设置?First, you need to set the DateTime property to True in the desired X and/or Yvalues list.LineSeries1.XValues.DateTime := True ;Second, use the same above described methods, but give the values as Date, Time or DateTime valuesLineSeries1.AddXY( EncodeDate( 1996 , 1 , 23 ) , 25.4 , Barcel
10、ona , 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)
11、的百度空间:http:/ *)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 (TBubbleSeri
12、es)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 如果需要,把TCh
13、art的AxisVisible属性设置为False 把BufferedDisplay设置为false 可以加速chart的重绘1.7 ScrollingTChart有4中scroll选择(AllowPanning属性) ,分别是 不允许Scroll ( pmNone) ;水平Scroll (pmHorizontal) ; 垂直Scroll (pmVertical) ; 水平和垂直Scroll (pmBoth)Procedure Scroll(Const Offset:Double; CheckLimits:Boolean);例子如下:Chart1.BottomAxis.Scroll( 1000
14、, True );这段代码也等同于With Chart1.BottomAxis doBeginAutomatic:=false;SetMinMax( Minimum+1000, Maximum+1000 );End;(* 转载敬请注明本文出处:南山古桃(nsgtao) 的百度空间:http:/ *)1.8 TChart中的全局变量 TeeScrollMouseButton := mbRight;设置鼠标右键为TChart滚动键(默认) TeeScrollKeyShift := ssCtrl ; 要按住Control键才可以使Scroll滚动1.9 TChartSerries使用技巧1.9.1
15、运行时候创建一个Serries, 三种方法:1Var MySeries : TBarSeries ;MySeries := TBarSeries.Create( Self );MySeries.ParentChart := Chart1 ;2Chart1.AddSeries( TBarSeries.Create( Self ) );3Var MyClass : TChartSeriesClass;MyClass := TBarSeries ;Chart1.AddSeries( MyClass.Create( Self ) );1.9.2 获得TChart中的Serries数组,也有三种方法1M
16、ySeries := Chart1.SeriesList 0 2MySeries := Chart1.Series 0 3MySeries := 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. 不可以恢
17、复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) 的百度空间:http:/ *)TeeChart使用指南 TeeChart控件介绍 TeeC
18、hart Pro ActiveX是西班牙Steema SL公司开发的图表类控件,主要用来生成各种复杂的图表。熟悉Delphi和C Builder的编程人员对它不会陌生,因为在Delphi和C Builder里包括了TeeChart的VCL版本。 TeeChart使用目的 如果你需要在程序中制作曲线图、条状图、饼状图等等,使用这个控件都将是你的明智选择。它因为是已经被封装好的产品,所以使用方便,可控性强,不过有的时候会有点小BUG。最好能找到源码,并自己打几个补丁。 TeeChart名词解释 Series Axis Scales Line Bar Pie TeeChart配置说明 ChartSe
19、ries(序列) : 在一个图表中可以有一个或多个序列,每个序列可以有不同的显示类型,如Line、Bar、Pie 等等。 Add 添加新的序列 Fast Line(TFastLineSeries简单曲线图) 、 Line(TLineSeries 3D曲线图)、 Bar(TBarSeries竖条状图)、 Horiz. Bar(THorizBarSeries横条状图) Area(TAreaSeries 区域图) 、 Point(TPointSeries 点状图 )、 Pie(TPieSeries 饼状图)、 Shape(TChartShape 实体图)、 Gantt(TGanttSeries 甘特
20、图)、 Arrow(TArrowSeries 箭头图) 、 Bubble(TBubbleSeries 泡泡图) SeriesFormat:修改序列的格式 SeriesPoint:修改序列中点的样子 SeriesGeneral:对序列的配置,包括Axis,Legend ,Formats ,Cursor。 SeriesMarks:是否显示序列中每个点的值。 SeriesData Source:数据源。可以采用No Data,Random Values,Function。 Title 修改序列的名称。 Change 修改序列的类型,可以从Line改变成Bar或者Pie。 ChartGeneral:一
21、些基本的参数设置。 Print Priview:打印及打印预览 Export:输出 Margins:页边空白 Allow Zoom:允许缩放 Animated Zoom:缩放过程是否是动态的,还是一次成功。 (如果图的点太多时,可以打开这个功能) Allow Scroll:滚动条 ChartAxis : 控制图表坐标轴 (上、下、左、右、深 )的属性 Show Axis:是否显示坐标轴 ChartAxisScales:调整坐标轴的比例 Automatic:可以自动处理最大与最小值,也可以手工设置。 Change:可以自动处理增量,也可以手工设置。 Logarithmic:对数的 Inverte
22、d:反向的 ChartAxisTitle:设置坐标轴的标题 Title:标题 Angle:标题的角度 Size:标题的宽度 Font:标题的字体 ChartAxisLabels:设置坐标轴的标签 Titles : ChartLegend(图例):图表中的一个长方形的用来显示图例标注的区域。可以标注Series的名称或者Series 中的项目和数值。 Visible Back Color Font Frame Position Margin Legend Style Text Style Resize Chart Inverted %Top Pos %Color Width Dividing L
23、ines Shadow ChartPanel (面板 ):Panel 可以设置图表的背景。可以使用渐变的颜色或者图像文件作为整个图表的背景 Bevel Inner (Bevel Innner ) Width Bevel Outer (Bevel Outer) Width Back Image:图表的背景图 Style:(Stretch伸展, Tile瓦片, Center 居中) Inside:只显示在背后壁上 Panel Color:Panel 的Inner的颜色 Border:给控件加边界 Gradient(梯度):梯度显示颜色 Visible、Start Color、End Color、
24、Direction(方向):上下、左右、从中间 ChartPaging :图表有几页组成 Points Per Page(每页显示几个点 ):0为所有的点显示在一页,其他按数字处理。 Scale Last Page:最后一页按比例显示,使之充满整个图表。 (* 转载敬请注明本文出处:南山古桃(nsgtao) 的百度空间:http:/ *) ChartWalls(壁) Left Walls:Y轴的平面 Bottom Walls:X轴的平面 Back Walls:背后的平面 Pattern(模式):=(Solid实心,None无,Horizontal竖条纹,Vertical横条纹, Diagona
25、l对角线,Back.Diagonal反向对角线,Cross十字线,DiagonalCross 对角十字线); Border(边线):=(Solid实线, Dash划线, Dot点, Dash Dot线点 , Dash Dot Dot线点点, Small Dots小点) Transparent (透明) Chart3D 3Dimensions(维) :是否 3维显示 Orthogonal(直角的):3维显示为直角显示,则 Elevation,Rotaion,Perspective被屏蔽 ZoomText:坐标数字与图形一起缩放 Zoom:图形的缩放 Rotaion(旋转) :关闭Orthogon
26、al后,可以在Y轴上旋转 Elevation(正视图 ) :关闭Orthogonal后,可以在X轴上旋 Horiz. Offset:在X轴移动图形 Vert. Offset:在Y轴移动图形 Perspective(透视) :关闭Orthogonal后,将焦点沿 Z轴移动。 (* 转载敬请注明本文出处:南山古桃(nsgtao) 的百度空间:http:/ *) TeeChart使用实例 / AddPages NewTabSheet := TTabSheet.Create(pgMain); with NewTabSheet do begin Parent := pgMain; PageControl
27、 := pgMain; Tag := Ord(CountTypeIndex); Caption := arrCountTypeCountTypeIndex; end; / AddCharts NewChart := TChart.Create(NewTabSheet); with NewChart do begin Parent := NewTabSheet; Title.Text.Add(网间结算 + arrCountTypeCountTypeIndex + /天分布图); LeftAxis.Title.Caption := arrCountTypeCountTypeIndex; Botto
28、mAxis.Title.Caption := 话单日期; Legend.Visible := sbLegend.Down; Legend.Alignment := laBottom; Legend.LegendStyle := lsSeries; View3D := sb3D.Down; Width := NewTabSheet.Width; Height := NewTabSheet.Height; end; / ClearSeries AChart.SeriesSeriesIndex.Free; / AddSeries NewSeries := TLineSeries.Create(ACh
29、art); NewSeries.Title := ANameList.StringsSeriesIndex; NewSeries.Marks.Visible :=True; AChart.AddSeries(NewSeries); / AddNameForSeries AChart.SeriesListSeriesIndex.Title:= NewName; / ShowSeries AChart.SeriesSeriesIndex.Active := True; / EmptySeries AChart.SeriesSeriesIndex.Clear; / FillSeries AChart
30、.SeriesSeriesIndex.AddXY();南山古桃(nsgtao)转自 cooltown内容如下 :(* 转载敬请注明本文出处:南山古桃(nsgtao) 的百度空间:http:/ *) 最近开发要使 用图表,Delphi里提供了图表开发的控件 TChart,可惜帮助里没有DEMO代码,上网搜索了一下,竟然发现文章也少的可怜。没办法,自己丰衣足 食,写代码试用,看帮助,读代码,搞了半天大概弄明白了TChart的使用方式,下面写一下几个常见问题的解决。1.如何写一个TChart的Hello World?放一个控件到窗体上,然后写代码加入一个折线数据序列:varSeries: TLine
31、Series;beginSeries := TLineSeries.Create(Chart1);Series.Add(100, aaa, clRed);Series.Add(200, AAA, clGreen);Chart1.AddSeries(Series);end;这样就会生成一个简单的折线图表,要生成其它类型的数据图表,可以添加不同的数据序列(各种图表的序列类型可以参考帮助文档)。2.如何设置图表的标题?TChart组件提供了Title 属性可以这是图表的标题,包括标题的内容、字体、对齐方式等都可以通过Title属性设置。最简单的设置方式:Chart1.Title.Text.Text
32、:= 图表的标题;3.如何修改图表的背景颜色和整个图表的颜色?TChart是一个窗体控件,可以通过修改Color属性设置图表颜色,这是一种最简单的方式:Chart1.Color := clWhite;修改图表部分的背景色可以通过BackColor属性来实现:Chart1.BackColor := clGreen;此外,TChart还提供了渐变的背景支持,通过Gradient控制:Chart1.Gradient.Visible := True;Chart1.Gradient.Direction := gdFromTopLeft;Chart1.Gradient.StartColor := clGr
33、een;Chart1.Gradient.EndColor := clYellow;4.TChart的3D效果如何控制?TChart提供了View3D属性,控制是否使用3D效果, View3dWalls属性控制是否显示左侧的3D墙效果(* 转载敬请注明本文出处:南山古桃(nsgtao) 的百度空间:http:/ *)5.如何不显示图表控件生成图表?很遗憾,TChart是一个Windows窗体控件,必须依附一个窗体或 Windows控件才能使用。如果要不显示TChart的话,可以将TChart的Visible属性设为False来使用。下面的例子创建了一个隐藏的TChart来生成图表:varChar
34、t: TChart;S: TChartSeries;TmpFile: string;beginChart := TChart.Create(nil);tryChart.Parent := Application.MainForm;Chart.Visible := False;Chart.Title.Text.Text := 测试图表;S := TBarSeries.Create(Chart);Chart.AddSeries(S);S.Title := 嘿嘿 ;S.AddXY(1, 56, 一月, clGreen);S.AddXY(2, 67, 二月, clYellow);S.AddXY(3,
35、34, 三月, clBlue);S.AddXY(4, 78, 四月, clRed);Chart.View3D := False;Chart.BackColor := clWhite;Chart.Gradient.StartColor := clWhite;Chart.Gradient.EndColor := clWhite;Chart.Gradient.Visible := True;TmpFile := Application.ExeName + .bmp;Chart.SaveToBitmapFile(TmpFile);Image1.Picture.LoadFromFile(TmpFile);finallyChart.Free;end;end;