DelphiChartTeeChart.docx
《DelphiChartTeeChart.docx》由会员分享,可在线阅读,更多相关《DelphiChartTeeChart.docx(14页珍藏版)》请在冰豆网上搜索。
DelphiChartTeeChart
键词:
Delphi,Chart,TeeChart,属性,用法--南山古桃原创--更新中(鉴于引用中较为详细,此后不再更新,20071129定稿)
(****转载敬请注明-本文出处:
南山古桃(nsgtao)的XX空间:
****)
南山古桃(nsgtao)正在做个需要绘制实时曲线的程序,在网上找Chart资料没找到,只好自己摸索了……
本文主要讲解Delphi中Chart,TeeChart的属性,方法及用法.Tchart分析报告,TeeChart使用指南,TeeChart控件介绍
1.AllowZoom:
Boolean
是否允许鼠标拖动来缩放图表
2.AnimatedZoom:
Boolean
拖动是否显示缩放过程
3.AxisVisible:
Boolean
显示和隐藏4个子图表
4.BufferedDisplay:
Boolean
True时图表首先画在内部画布上,可以防止图表闪烁,但耗费内存资源.
5.ChartHeight:
LongInt
以像素为单位,运行为只读,显示图表顶轴与底轴的高度,不包含页边距,Height包含页边距,
(****转载敬请注明-本文出处:
南山古桃(nsgtao)的XX空间:
****)
6.DepthAxis,LeftAxis,RightAxis,TopAxis,BottomAxis
Tchart共分为五个子图表,
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('NsgtaoFoot');
(****转载敬请注明-本文出处:
南山古桃(nsgtao)的XX空间:
****)
8.Gradient:
TChartGradient
用于设置图表背景颜色:
是否显示背景色,背景色渐变的起始颜色和终止颜色,渐变方向等
以下是南山古桃(nsgtao)引用网上资源
引用1.关键词:
Tchart分析报告
引用2.关键词:
TeeChart使用指南,TeeChart控件介绍
***********************************************************************************************************************************
****************下面是南山古桃引用并整理的文章
***********************************************************************************************************************************
1 Tchart分析报告
(****转载敬请注明-本文出处:
南山古桃(nsgtao)的XX空间:
****)
1.1 [概述]
TChart是delphi里面一个标准的图形显示控件。
它可以静态设计(atdesigntime)也可以动态生成。
1.2 [继承关系]
TObject
TPersistent
TComponent
TControl
TCustomControl
TWedgetControl
TChart
TCustomPanel
1.3 [tips]
1.3.1 ProVersion支持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 TTeeFunctionComponent可以实现在同一个TChart里面,一个Serries对另一个Serries的统计
1.4 [问题极其使用技巧]
1.4.1 TChart中如何实现只有Y轴的放大与缩小功能?
设置BottomAxis或者LeftAxis的Automatic:
=false并同时设置Minimum,Maximum属性
1.4.2 如何固定TChart中的坐标,不使TChart中的坐标跟随Series的变化而变化?
//设置底座标
withmyChart.BottomAxisdo
begin
Automatic:
=false;
Minimum:
=0;
LabelStyle:
=talText;
end;
//设置左坐标
withmyChart.LeftAxisdo
begin
Automatic:
=false;
Minimum:
=0;
Title.Angle:
=270;
Title.Font:
=Self.Font;
Title.Font.Charset:
=ANSI_CHARSET;
Title.Font.Name:
='@宋体';
Grid.Visible:
=False;
end;
//设置右坐标
withmyChart.RightAxisdo
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.YValue[3]:
=27.1;
{InBubbleSeries}
BubbleSeries1.RadiusValues.Value[8]:
=8.1;
{InPieSeries}
PieSeries1.PieValues.Value[3]:
=111;
1.4.5 如果横坐标是时间(日期),如何进行设置?
{First,youneedtosettheDateTimepropertytoTrueinthedesiredXand/orYvalueslist.}
LineSeries1.XValues.DateTime:
=True;
{Second,usethesameabovedescribedmethods,butgivethevaluesasDate,TimeorDateTimevalues}
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)的XX空间:
****)
1.5 [TChart可以绘制的图形]
1.5.1 Line(TLineSeries)
1.5.2 FastLine(TFastLineSeries)相对Line来说,它损耗了某些属性从而来实现快速绘制
1.5.3 Bar(TBarSeries)
1.5.4 Horizontalbar(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)
ProcedureScroll(ConstOffset:
Double;CheckLimits:
Boolean);
例子如下:
Chart1.BottomAxis.Scroll(1000,True);这段代码也等同于
WithChart1.BottomAxisdo
Begin
Automatic:
=false;
SetMinMax(Minimum+1000,Maximum+1000);
End;
(****转载敬请注明-本文出处:
南山古桃(nsgtao)的XX空间:
****)
1.8 [TChart中的全局变量]
ü TeeScrollMouseButton:
=mbRight;设置鼠标右键为TChart滚动键(默认)
ü TeeScrollKeyShift :
=[ssCtrl];要按住Control键才可以使Scroll滚动
1.9 [TChartSerries使用技巧]
1.9.1 运行时候创建一个Serries,三种方法:
1.VarMySeries:
TBarSeries;
MySeries:
=TBarSeries.Create(Self);
MySeries.ParentChart:
=Chart1;
2.Chart1.AddSeries(TBarSeries.Create(Self));
3.VarMyClass:
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中的数据排序
WithSeries1do
begin
YValues.Order:
=loAscending;
YValues.Sort;
Repaint;
end;
Ø 定位一个点(Loacateapoint)
Series1.XValues.Locate(123);
Ø XValue和YValue都拥有的属性Total,TotalABS,MaxValue,MinValue
***********************************************************************************************************************************
****************下面是南山古桃引用XX网友zwl232的文章
***********************************************************************************************************************************
(****转载敬请注明-本文出处:
南山古桃(nsgtao)的XX空间:
****)
TeeChart使用指南
TeeChart控件介绍
TeeChart Pro ActiveX是西班牙Steema SL公司开发的图表类控件,主要用来生成各种复杂的图表。
熟悉Delphi和C++ Builder的编程人员对它不会陌生,因为在Delphi和C++ Builder里包括了TeeChart的VCL版本。
TeeChart使用目的
如果你需要在程序中制作曲线图、条状图、饼状图等等,使用这个控件都将是你的明智选择。
它因为是已经被封装好的产品,所以使用方便,可控性强,不过有的时候会有点小BUG。
最好能找到源码,并自己打几个补丁。
TeeChart名词解释
Series
Axis
Scales
Line
Bar
Pie
TeeChart配置说明
ChartSeries(序列) :
在一个图表中可以有一个或多个序列,每个序列可以有不同的显示类型,如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 甘特图)、
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:
一些基本的参数设置。
Print Priview…:
打印及打印预览
Export…:
输出
Margins:
页边空白
Allow Zoom:
允许缩放
Animated Zoom:
缩放过程是否是动态的,还是一次成功。
(如果图的点太多时,可以打开这个功能)
Allow Scroll:
滚动条
ChartAxis :
控制图表坐标轴(上、下、左、右、深)的属性
Show Axis:
是否显示坐标轴
ChartAxisScales:
调整坐标轴的比例
Automatic:
可以自动处理最大与最小值,也可以手工设置。
Change…:
可以自动处理增量,也可以手工设置。
Logarithmic:
对数的
Inverted:
反向的
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 Lines…
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…、
Direction(方向):
上下、左右、从中间
ChartPaging :
图表有几页组成
Points Per Page(每页显示几个点):
0为所有的点显示在一页,其他按数字处理。
Scale Last Page:
最后一页按比例显示,使之充满整个图表。
(****转载敬请注明-本文出处:
南山古桃(nsgtao)的XX空间:
****)
ChartWalls(壁)
Left Walls:
Y轴的平面
Bottom Walls:
X轴的平面
Back Walls:
背后的平面
Pattern…(模式):
=(Solid实心,None无,Horizontal竖条纹,Vertical横条纹,
Diagonal对角线,Back.Diagonal反向对角线,Cross十字线,DiagonalCross对角十字线);
Border…(边线):
=(Solid实线, Dash划线, Dot点,
Dash Dot线点, Dash