TeeChart Pro VCL/FMX教程之网络应用

本文是TeeChart Pro VCL/FMX中网络应用的教程,介绍了其可简化Internet/Intranet Charting应用程序设计。涵盖图表格式,包括静态图像、输出和输入数据格式;还讲述将其放入Delphi的ActiveForm及编写Web服务器ISAPI应用程序等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   TeeChart Pro VCL/FMX是一款主流的图表制作工具。提供了数百种用于可视化的2D、3D图形样式、56种数学、统计和金融函数,以及不限数量的坐标轴和30种调色板组件。


    本篇教程为大家带来的是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:\tempdata\testcandledata.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. 使用Delphi类型库编辑器向ActiveForm项目添加属性 

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

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

  4. 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代码用于此示例中的按钮:

    <SCRIPT LANGUAGE="VBScript">
    SUB ToggleGradient
            if TeeVCLAX1.Gradient = 0 then
              TeeVCLAX1.Gradient = 1   'replace TRUE/FALSE with numeric equivalents
            else
              TeeVCLAX1.Gradient = 0
            end if
    END SUB
    </SCRIPT>
    <INPUT TYPE=BUTTON VALUE="Example: Toggle Back Panel Gradient using VBScript" NAME="cdmChartColor" onClick="ToggleGradient">

     

            对于这种类型的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教程会持续更新,

    可以多多关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值