TeeChart Pro VCL/FMX教程(九): 络应用

TeeChart Pro功能是一个系列,几乎可以是任何系列类型,可以是应用代数函数,也可以是数据源。所有函数都派生自TTeeFunction组件并继承TeeFunction的Period属性。

    TeeChart Pro VCL/FMX是一款主流的图表制作工具。提供了数百种用于可视化的2D、3D图形样式、56种数学、统计和金融函数,以及不限数量的坐标轴和30种调色板组件。TeeChart Pro VCL/FMX教程将会以连载的形式持续为大家带来TeeChart Pro VCL/FMX的使用方法。 

TeeChart Pro VCL/FMX最新试用版 


  本篇教程为大家带来的是TeeChart Pro VCL/FMX中 络应用的这一节,主要分为以下几个部分: 

  1.  介绍 

  2.  图表格式 

     静态图像格式 

     输出数据格式 

     输入数据格式    

        HTML表格    

        TChartWebSource    

        TSeriesTextSource 

    将TeeChart放入Delphi的ActiveForm> 

  3. Web服务器应用程序

    编写ISAPI应用程序 


介绍    

TeeChart Pro VCL/FMX版本提供了可简化Internet / Intranet Charting应用程序的设计。 

图表格式 

静态格式 

    TeeChart为 页,JPEG,GIF,PNG和WMF提供多种静态图像导出格式(仅适用于IE)。        

    TeeChart可以导出为JPEG图像,可以链接到 页,也可以通过标准图像链接在 页上访问该图表。 

 例:

<img src="http://www.myserver.here/tempCharts/myJPEGChart.jpg">

    JPEG图表不提供live图表的优势,例如鼠标点击,实时动画,滚动等,但它们几乎适用于任何浏览器 

输出数据格式    

    图表数据可以导出为文本,XML,Excel电子表格或HTML表格。 

输入数据格式 

  • HTML表格。 

  • TChartWebSource-使用TChart WebSource将基于服务器的URL tee文件路径导到客户端图表的应用程序,这样可以在服务器上创建或存储Tee文件,并通过URL直接访问,这是LoadChartFromURL方法的替代方法。 

  • TSeriesTextSource-SeriesTextSource组件允许将CSV文件数据直接加载到Series,CSV文件可以以不同的方式分隔,也可以是托管在URL地址的本地文件或服务器文件。    

例:

Text source file, csv delimited:  Fruit,Qty,Price/Kilo  Apples,1,76  Pears,2,45  Bananas,3,66  Oranges,4,41  Kiwis,5,55

    TSeriesTextSource组件识别关联的TeeChart系列的Series类型,并为源的定义提供相关的字段结构,以下是BarSeries: 

seriestxtsrc.png

    将标题列设置为您不希望SeriesTextSource从中获取数据的标题文本行数。 将TSeriesTextSource Active设置为True会加载Series数据。 以上数据的结果如下图: 

seriestxtsrcChart.png

    以上方法可以通过以下方式实现:

procedure TForm1.BitBtn1Click(Sender: TObject);begin With SeriesTextSource1 do Begin   Series:=Series1;   Filename:='http://www.steema.com/test.txt';   Headerlines:=1;   SeriesTextSource1.AddField('Bar',3);   {Use the keyword 'Text' to select the Label field}   SeriesTextSource1.AddField('Text',1);   Active:=True; end;

    对于上面的Bar Series示例,单词Bar用于定义Y值。 当仅为BarSeries添加一个数据变量时,名称并不重要,因为TeeChart将假定它是Y值。 对于Label字段,它必须使用标题Text(常量Teemsg_Text)来标识它。 添加多个值时(如AddXY或具有Date,Open,High,Low,Close的Candle Series),您可以通过Series ValueList名称获取正确的名称。    

例:

请考虑以下数据文件: 

日期     开盘价  最高价   最低价  收市价
 1/1/2000      15   76       7 40 
 2/1/2000       40   55    35 37 
 3/1/2000      37   61      29   43 
{The following code extracts the data and adds it to the Series}procedure TForm1.Button1Click(Sender: TObject);var colcount: integer;begin With SeriesTextSource1 do Begin   Series:=Series1;   Filename:='c:tempdatatestcandledata.txt';   Headerlines:=1;   For colcount:=0 to Series1.ValuesList.Count-1 do   begin     SeriesTextSource1.AddField(Series1.ValuesList[colcount].Name,colcount+1);   end;   Active:=True; end;end;

将TeeChart放入Delphi的ActiveForm中    

    要创建新的ActiveForm应用程序,请从Delphi IDE的文件菜单中选择New>Activex>ActiveForm。 可以在表单上放置TChart,并且可以将属性添加到表单内以执行TeeChart操作。

    想要插入在Internet Explorer或其他ActiveX感知浏览器中,您应该记下新ActiveXForm的CLSID编 ,并将其插入页面,语法类似于以下示例:

<OBJECT    id="TeeVCLAX1"    type="application/x-oleobject"   hspace="0"   vspace="0"   codebase="TeeChartAXFormExample.ocx#version=1,0,0,1""    CLASSID="CLSID:6C03C4DE-C883-4B1E-AA11-996319F91A8F">

    您可以向Activeform对象添加属性和方法,以便为图表在运行时提供便利。 例如,对于上面的图表,我们添加了Gradient.Visible,属性来启用/禁用图表后面的Panel Gradient。

    例:如何使用Delphi将TeeChart属性添加到ActiveForm

    按照以下步骤将Chart属性添加到ActiveForm项目: 

  1. 在这种情况下,我们将属性定义为Property Gradient:WordBool;

  2. 使用类型库刷新按钮更新项目的实施单元。

  3. Delphi将在项目的实现单元中为新属性创建一个空的Get函数和Set过程。 您可以通过填充函数和过程来添加对所需TeeChart属性的访问,如下所示: 

function TTeeVCLAX.Get_Gradient: WordBool;begin  result:=Chart1.Gradient.Visible;end;procedure TTeeVCLAX.Set_Gradient(Value: WordBool);begin  Chart1.Gradient.Visible:=Value;end;

      现在编译修改后的项目可以使用浏览器脚本语言(如VBScript)访问此属性。 下面列出的VBScript代码用于此示例中的按钮:


    对于这种类型的Charting应用程序,您可能会发现LoadChartFromURL方法很有用,因为它允许分发集中修改的图表,可以在ActiveForm应用程序上放置一个计时器,以调用定期更新的基于服务器的图表,从而保证浏览器图表数据是最新的。

Web服务器应用程序

编写ISAPI应用程序    

    Delphi使编写ISAPI应用程序非常容易。 下面是一部分代码,以显示图表如何以Stream格式发送到页面。

{ This event is created at design-time, double-clicking the WebModule  form and adding an action... }procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);Var Stream:TMemoryStream;begin  With TForm2.Create(Self) do { create the Form where is the Chart1... }  try    //See the ISAPI demo for a full listing of the code that creates the Chart    //taking parameters from a Web Form as input.    With ChartToJPEG(Request) do { convert Chart1 to JPEG Function in UnitChart Unit}    try      Stream:=TMemoryStream.Create;  { create a temporary stream in memory... }      try        SaveToStream(Stream); { save the jpeg to the stream... }        Stream.Position := 0;        Response.ContentType:='image/jpeg';   { send the stream... }        Response.ContentStream:=Stream;        Response.SendResponse;      finally        Stream.Free;  { release the temporary stream... }      end;    finally      Free;  {

    本篇教程就介绍到这里,对以上内容有任何疑惑或者建议都可以在下方评论留言,TeeChart Pro VCL/FMX教程会持续更新,可以多多关注。


   如果对于TeeChart Pro VCL/FMX有任何的问题或者想要咨询的都可以在评论下方留言。

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年6月9日
下一篇 2019年6月9日

相关推荐

发表回复

登录后才能评论