已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Delphi Tchart 控件使用!(转帖) 收藏 这样就会生成一个简单的折线图表,要生成其它类型的数据图表,可以添加不同的数据序列(各种图表的序列类型可以参考帮助文档)。2.如何设置图表的标题?TChart组件提供了Title属性可以这是图表的标题,包括标题的内容、字体、对齐方式等都可以通过Title属性设置。最简单的设置方式:Chart1.Title.Text.Text := '图表的标题'3.如何修改图表的背景颜色和整个图表的颜色?TChart是一个窗体控件,可以通过修改Color属性设置图表颜色,这是一种最简单的方式:Chart1.Color := clWhite;修改图表部分的背景色可以通过BackColor属性来实现:Chart1.BackColor := clGreen;此外,TChart还提供了渐变的背景支持,通过Gradient控制:Chart1.Gradient.Visible := True;Chart1.Gradient.Direction := gdFromTopLeft;Chart1.Gradient.StartColor := clGreen;Chart1.Gradient.EndColor := clYellow;4.TChart的3D效果如何控制?TChart提供了View3D属性,控制是否使用3D效果,View3dWalls属性控制是否显示左侧的3D墙效果5.如何不显示图表控件生成图表?很遗憾,TChart是一个Windows窗体控件,必须依附一个窗体或Windows控件才能使用。如果要不显示TChart的话,可以将TChart的Visible属性设为False来使用。下面的例子创建了一个隐藏的TChart来生成图表:varChart: TChart;S: TChartSeries;TmpFile: string;beginChart := TChart.Create(nil);try Chart.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, 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);finally Chart.Free;end;end; 分析报告1.1 概述 TChart是delphi里面一个标准的图形显示控件。它可以静态设计(at design time)也可以动态生成。1.2 继承关系 Tobject TPersistent TComponent TControl TCustomControl TWedgetControl TChart TCustomPanel 1.3 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、 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 do begin Automatic:=false; Minimum:=0; LabelStyle := talText; end; /设置左坐标 with myChart.LeftAxis do begin Automatic:=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 do begin Automatic:=false; Title.Font:=Self.Font; Title.Font.Charset:=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 如果横坐标是时间(日期),如何进行设置?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, Time or DateTime valuesLineSeries1.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图可能不支持缩放) 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 doBegin Automatic:=false; SetMinMax( Minimum+1000, Maximum+1000 ); End;1.8 TChart中的全局变量 TeeScrollMouseButton := mbRight;设置鼠标右键为TChart滚动键(默认) TeeScrollKeyShift := ssCtrl ; 要按住Control键才可以使Scroll滚动1.9 TChartSerries使用技巧1.9.1 运行时候创建一个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数组,也有三种方法1MySeries := 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. 不可以恢复1.9.5 TChart中的数据排序 With Series1 dobegin YValues.Order:=loAscending; YValues.Sort; Repaint;e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年守合同重信用工作总结(3篇)
- 借款合同(范本)
- 房产转让合同范本
- 房屋出租合同 (14篇)
- 家具零售合同协议
- 配送回单系统使用合同
- 2025曲靖中考爨文化冲刺卷(语文+历史)
- 科技企业面试实战技巧
- 庆祝99周年党课方案
- 2025重庆长寿区晏家街道办事处公益岗招聘5人备考题库附答案详解(巩固)
- 2025年中式烹调师(技师)理论考试笔试试题附答案
- 《红岩》名著导读好书
- 机械制图-同济版习题答案
- 比亚迪员工级别晋升表
- 2025北京中邮资产管理有限公司招聘1人笔试历年常考点试题专练附带答案详解试卷2套
- 小班健康课件《人们怎样过冬》
- 老年人记忆力评估
- 钢结构施工安全协议书
- 2025陕西建工投资集团有限公司招聘笔试参考题库附带答案详解
- 2024-2025学年安徽省芜湖市无为市上学期九年级期中考试数学试卷
- 2025年水利报社笔试面试题及答案
评论
0/150
提交评论