`

TChart和TDBChart的用法与区别

 
阅读更多

在网上转了转,找了一些资料抄下来.

数据图表DBChart的使用
一、显示数据柱

数据图表DBChart对象用于在报表中插入图表。双击数据图表对象,可以调出图表编辑器:

Chart选项:

(1)Series类型页

可以选择十一种类型的图表以及下列选项,按Add就可以选择图表的类型(3D :显示3维图表);按Title..就可以修改图表的名称。

(2)General页(图表的普通设置)

其中'Print Preview'按钮是用于打印图表。'Zoom'为缩放设置。'Margins(%)'是设置整个图表的位置。

(3)Axis页(轴的相关设置)
'Title'页用于设置竖轴的相关属性,Title设置要显示的竖轴的名称
'Labels'页中的'Font'按钮用于设置左边刻度的字体大小,Size用于设置各轴的距离,Angle用于设置刻度的宽度,Min.Separation%用于设置刻度的比例。Valuse Format用于设置格式(一般不用改)
'Position'页用于位置的设置,Position%是设置刻度位置,Start是设置刻度高度,

(4)Titles页(图表标题的设置)

'Font'按钮用于设置字体大小,Back Color设置颜色,Alignment用于设置标题的位置。

(5)Legend页(右上角说明的设置)

Visible选项是否显示说明;Back Color设置说明背景的颜色;Font设置说明的字体大小;Frame设置说明的边线;Resize Chart选项用于设置是否让图表覆盖说明;Inverted选项用于设置从左或从右显示字段颜色;Position选项用于设置说明在图表组件中的显示的位置;Margin设置图表的大小;Legend Style设置说明的风格;Text Style设置说明的内容(Plain字段内容、Left Value值+字段、Right Value字段+值、Left Percent百分率+字段、Right Percent字段+百分率、X Value从0开始);Dividing Lines设置说明中是否显示分格线;Shadow设置说明的背景属性;

(6)Panel页(面板的设置)

Bevel Inner、Bevel Outer设置图表边框属性;Width设置高度;Back Image设置是否在图表组件上显示图像;Panel Color设置面板的颜色;Gradiend用于设置在面板中显示特效颜色(Direction用于设置特效位置);

(7)Walls页(设置刻度的其它属性)

(8)3D页(3D效果的设置)

Series选项:

(1)Format页(数据柱的风格)

在Color Each中打勾,就可使用多种颜色显示,color按钮用于设置颜色,Style用于设置图表的风格(Rectangle长方体,Pyramid三角体,Invert.PyramId倒三角体,Cylinder圆柱体,Ellipse圆形,Arrow箭头,Rect.Gradient立体长方体[推荐],Cone不显示),Border按钮设置数据柱的边线属性,Pattern按钮设置数据柱的显示类型,Bar Width设置数据柱间的距离,Bar Offset设置数据柱与纵刻度的距离,

(2)General页(数据柱的一般设置)

Show in Legend选项是否显示右上角的数据说明,Horizontal Axis设置横刻度的位置,Vertical Axis设置纵刻度的位置,Formats设置数据柱的格式,

(3)Marks页(标记,数据内容显示设置)

数据内容显示设置:在Style中选相关的选项,标记的类型:Value值、Percent百分率、Label字段内容、Label and Percet字段内容+百分率、Label and Value字段内容+值、Legend与右上角的数据说明一样、Percent Total百分率+值、Label&Percent Total字段内容+百分率+值。
Visible选项是否显示标记;Transparent选项是否显示标记的颜色;Clipped选项是否让标记超过刻度;Arrows用于设置标记下垂线的属性。
Back Color设置标记的颜色;Font设置标记的字体大小;Border设置标记的边线;

(4)Data Source页:(数据连接)

要连接图表到数据字段,通过SQL语句查询,取得两个字段的数据(如:品种名,吨数(各品种的合计数))。
例:{ADOQuery1组件的SQL语句}
select a.kindName,sum((0.01*0.001)*(b.MZ-b.PZ)) as KZ form KindInfo a inner join Weighinfo b on a.kindName=b.kName1 Group by a.kindName

这些数据字段的内容将用于设置图表的变量和图例。图例通常显示在X轴上,变量在图表的Y轴上。当生成报表时,选择的Text对象的内容将保存到图表对象的备注中。双击DBChart对象,在Editing DBChart对话框下的'Series'页进行设置,在下拉列表框中选择Series对象,在Data Source页的下拉框中选择'DataSet',再在dataset中选对应的查询组件(ADOQuery1),在Labels中选择'品种'字段对应的字段名,再在Bar中选择'吨数'字段对应的字段名,注意X轴项不用写。

X轴不能选择字符型字段。冥思苦想不得其法。后来硬着头皮看英文帮助,终于有所收获。

dbchart1.Series[0].XLabelsSource:='mc';

-------------
Series[0]代表我的一个图表,mc代表我的一个字符型字段。在打开dbchart1.Series[0]所对应的AdoQuery后,用上面这个语句,就可以实现在Dbchart中显示字符型字段。
别看就一条语句。你要是不知道就是没办法。

例:在程序中设置:
begin
with DBChart1 do
begin
with Series[0} do
begin
DataSource:=ADOQuery1;
XValuse.ValueSource:='字段';
YValuse.ValueSource:='字段';
end;
end;
end;

TChart使用问答
最近开发要使 用图表,Delphi里提供了图表开发的控件TChart,可惜帮助里没有DEMO代码,上网搜索了一下,竟然发现文章也少的可怜。没办法,自己丰衣足 食,写代码试用,看帮助,读代码,搞了半天大概弄明白了TChart的使用方式,下面写一下几个常见问题的解决。
1.如何写一个TChart的Hello World?放一个控件到窗体上,然后写代码加入一个折线数据序列:

var

Series: TLineSeries;

begin

Series := 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 := '图表的标题';

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来生成图表:var

Chart: TChart;

S: TChartSeries;

Tmpfile&: string;

begin

Chart := 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;

Tchart简单教程delphi用 1.1 [概述] TChart是delphi里面一个标准的图形显示控件。它可以静态设计(at design time)也可以动态生成。 1.2 [继承关系]    TObject TPersistent TComponent TControl TCustomControl TWedgetControl TChart TCustomPanel 1.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 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.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, Time 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图可能不支持缩放) 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 do Begin 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, 三种方法: 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 do begin YValues.Order:=loAscending; YValues.Sort; Repaint; end; Ø 定位一个点(Loacate a point) Series1.XValues.Locate(123); Ø XValue和YValue都拥有的属性Total , TotalABS , MaxValue , MinValue

分享到:
评论

相关推荐

    TChart和TDBChart组件在地质绘图中的应用

    与TChart相比,使用TDBChart时需确保系统中已安装Borland Database Engine (BDE),这是其与TChart之间最显著的区别之一。 #### 三、TChart和TDBChart组件在地质绘图中的应用 **1. 地质等值线图** 等值线图是地质...

    Delphi TDBChart实现统计

    要将TDBChart与数据库连接,首先需要创建一个TDataSource组件,并将其DataField属性设置为包含统计数据的数据库字段。接着,将TDBChart的DataSource属性设置为这个TDataSource,这样TDBChart就会根据数据库中的数据...

    TCHART初级应用实例

    TChart是一款强大的图表控件,广泛应用于数据分析、可视化和报告制作等场景。对于初级学习者来说,理解并掌握TChart的基本用法是至关重要的。以下我们将通过实例来探讨TChart的一些核心功能和操作步骤。 1. **安装...

    tchart和chart折线图实时显示

    tchart和chart图实时显示,x轴为时间,显示格式为MM-dd mm:ss.fff。 chart图设置为2条曲线,数据时间差为0.5s。曲线时间间隔为0.5s,最大刻度5s。 tchart图为一条曲线,曲线时间间隔为10s,最大刻度1min。 基于VS...

    delphi D10 TChart 曲线图

    3. 数据绑定:TChart系列通常与数据源绑定,可以是数组、数据库字段或动态生成的数据。通过设置Series的DataSource和DataField属性,将数据绑定到特定的字段。 4. 设置X轴和Y轴:TChart的XAxis和YAxis组件分别代表...

    c++ builder中用tchart实时显示波形

    你可以创建一个数据结构(如数组或动态数组)来存储这些数据,然后将这个数据结构与TChart的Series绑定。每次有新的数据点时,只需更新数据结构,TChart会自动刷新显示。 4. **OnBeforeDrawSeries事件**:为了在...

    bcb中TChart组件的简单应用_岁月沉淀,积累财富-CSDN博客1

    此外,TChart还支持数据库绑定(TDBChart),能方便地将数据库中的数据可视化。 总结来说,TChart是C++Builder中绘制图形的强大工具,通过简单的步骤和编程,就能实现复杂的数据可视化。对于初学者,这是一个很好的...

    VC++ tchart工具快速画图

    在VC++环境中,TChart工具是一个非常强大的图形绘制库,尤其适用于快速开发2D和3D图表。TChart由Steema Software公司开发,为Visual C++程序员提供了丰富的图表类型和自定义选项,使得数据可视化变得既高效又简单。...

    delphi TChart

    通过分析这些文件,你可以更深入地理解TChart的用法和内部工作原理。 总的来说,Delphi的TChart组件提供了一套全面的图表解决方案,使得在Delphi应用中实现专业级的数据可视化变得简单易行。通过掌握TChart的使用,...

    delphi D10 TChart 曲线图 示例

    此外,还可以通过调整`TChart.Series[0].Brush.Color`和`TChart.Series[0].Pen.Color`改变线条颜色,或者通过`TChart.Series[0].Smooth`属性控制线条平滑度。 如果你有多个数据集,只需重复以上步骤,为每个数据集...

    控件TChart(delphi经典例子)

    总结起来,"控件TChart(delphi经典例子)"是一个关于如何在Delphi项目中高效使用TChart控件的实例,它通过封装和简化代码,使得开发者能快速集成和配置图表功能,从而提升开发效率。通过学习这个例子,开发者可以更...

    自己收集的Tchart资料

    TChart是一款强大的图表组件,广泛应用于编程开发中,特别是在数据可视化和分析领域。它提供了丰富的图表类型,如折线图、柱状图、饼图、散点图等,可以帮助开发者轻松创建出美观且功能强大的图形界面。下面将详细...

    TChart806修改版

    综上所述,TChart806修改版是一个针对原版TChart组件进行优化和增强的版本,重点解决了背景色与指针工具颜色问题,并增加了单击事件功能。通过提供的压缩包文件,用户可以进行升级、重新编译和安装,以在他们的应用...

    delphi tchart 透明背景

    - `UTranspChart.dfm`: 这是Form 文件,包含了TChart 组件以及与透明背景相关的属性和事件处理。 - `PTranpChart.dpr`: 这是项目文件,定义了项目的入口点,可能包含项目的初始化和结束代码。 - `UTranspChart.pas`:...

    Tchar.zip_TChart_Tchar控件_delphi tchart

    在Delphi编程环境中,TChart控件是一种强大的图表绘制工具,广泛用于数据分析和可视化。TChart控件由Steema Software公司开发,它提供了丰富的图表类型和自定义选项,使得开发者可以轻松创建各种复杂的图表,包括...

    tchart的一个演示程序

    通过分析和学习这个演示程序,开发者不仅可以掌握TChart的基本使用,还能了解如何在Delphi中实现实时数据更新和动态显示。这对于提升数据可视化技能,以及构建自己的数据监控或分析应用程序大有裨益。记住,实践是...

    图表控件Tchart 帮助文件

    TChart是一款强大的图表控件,广泛应用于数据分析、可视化和报告制作等场景。它提供了一套完整的解决方案,帮助开发者轻松创建各种类型的图表,如折线图、柱状图、饼图、散点图等,使得数据以直观、美观的方式呈现...

    TChart用时间做横坐标

    【标题】"TChart用时间做横坐标"的实践与详解 在开发数据可视化应用时,图表是一种常用且直观的数据展示工具。TChart是 embarcadero Delphi 和 C++Builder 中的一个组件,它允许开发者创建各种类型的图表,包括折线...

    delphi Tchart控件的使用例程

    在Delphi编程环境中,TChart控件是一种强大的图表绘制工具,常用于数据分析、可视化和报告制作。本教程将深入探讨如何使用TChart控件来创建数据的历史曲线和实时曲线。 一、TChart控件简介 TChart是Steema Software...

    Delphi中TChart的使用示例

    3. **数据绑定**:TChart支持动态数据,可以与数据库或其他数据源进行绑定。你可以将字段映射到X轴和Y轴,例如`LineSeries1.XValues.DateTime := True;`设置X轴为日期时间,`LineSeries1.YValues.Map := 0;`将第一列...

Global site tag (gtag.js) - Google Analytics