大多数开发人员在使用TeeChart进行开发的时候,都须要访问包含在文本文档中的一些数据,本次教程将详细讲解如何去实现这一步骤。web
文本文件一般包含使用空格键或者是TAB键分隔开的数字和文字:c#
TeeChart官方最新版免费下载地址编辑器
好比下面的文本,包含两个字段,使用空格做为字段分隔:this
0.1 24spa
0.5 143code
0.2 321orm
0.1 100教程
从一个文本文件读取数据(若是列分隔符是正确的),开发者能够使用TSeriesTextSource组件,能够根据自身的数据设置ileName、Fields和FieldSeparator属性。而后只需经过设置TSeriesTextSource.Series或Series.DataSource属性将系列文本源组件链接到一个图表系列。ci
1 建立一个新的应用程序。 (File->New->Application)开发
2 从"Additional"面板选项卡中拖放TChart组件。
3 双击Chart1组件显示TeeChart编辑对话框。(或右键单击Chart1并单击"Edit...")
4 单击"Add..." 按钮,选择"Line"系列风格,单击OK按钮。(或双击"Line"图表)
5 关闭编辑器对话框(或按Esc键关闭它)。
6 找到“TeeChart”组件面板选项卡并拖放SeriesTextSource组件。
7 双击SeriesTextSource1组件显示编辑器对话框,填写如下属性:
VCL代码:
unit UImportData; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, TeEngine, Series, TeeURL, TeeSeriesTextEd, ExtCtrls, TeeProcs, Chart, StdCtrls, Buttons; type TForm1 = class(TForm) Chart1: TChart; Series1: TLineSeries; SeriesTextSource1: TSeriesTextSource; Panel1: TPanel; BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); begin with SeriesTextSource1 do begin // Setup fields (columns in text file) Fields.Clear; AddField('X',1); AddField('Y',2); // Set separators FieldSeparator := ' '; DecimalSeparator := '.'; // Set file name containing text data FileName := 'test.dat'; // Series to add data Series := Series1; // Load data from file into Series Active := True; end; // Example of setting axes scales. // Not necessary is axes already have Automatic:=True. Series1.GetVertAxis.SetMinMax(0,1); Series1.GetHorizAxis.SetMinMax(3864.90,3865.50); end; end. Displaying the SeriesTextSource editor dialog If you wish to show the SeriesTextSource editor dialog at runtime, simply drop a button and type this code at Button1Click event: procedure TForm1.Button1Click(Sender: TObject); begin // This procedure is located at TeeSeriesTextEd.pas unit: TeeEditSeriesTextSource(SeriesTextSource1); end;