TeeChart Pro VCL/FMX教程(九):網(wǎng)絡(luò)應(yīng)用
TeeChart Pro VCL/FMX是一款主流的圖表制作工具。提供了數(shù)百種用于可視化的2D、3D圖形樣式、56種數(shù)學(xué)、統(tǒng)計(jì)和金融函數(shù),以及不限數(shù)量的坐標(biāo)軸和30種調(diào)色板組件。TeeChart Pro VCL/FMX教程將會(huì)以連載的形式持續(xù)為大家?guī)鞹eeChart Pro VCL/FMX的使用方法。
點(diǎn)擊下載TeeChart Pro VCL/FMX最新試用版
本篇教程為大家?guī)淼氖?a href="http://www.xiangyinys.com/product/608/download" target="_self" style="white-space: normal; color: rgb(31, 73, 125);">TeeChart Pro VCL/FMX中網(wǎng)絡(luò)應(yīng)用的這一節(jié),主要分為以下幾個(gè)部分:
介紹
圖表格式
靜態(tài)圖像格式
輸出數(shù)據(jù)格式
輸入數(shù)據(jù)格式
HTML表格
TChartWebSource
TSeriesTextSource
將TeeChart放入Delphi的ActiveForm>
Web服務(wù)器應(yīng)用程序
編寫ISAPI應(yīng)用程序
介紹
TeeChart Pro VCL/FMX版本提供了可簡(jiǎn)化Internet / Intranet Charting應(yīng)用程序的設(shè)計(jì)。
圖表格式
靜態(tài)格式
TeeChart為網(wǎng)頁,JPEG,GIF,PNG和WMF提供多種靜態(tài)圖像導(dǎo)出格式(僅適用于IE)。
TeeChart可以導(dǎo)出為JPEG圖像,可以鏈接到網(wǎng)頁,也可以通過標(biāo)準(zhǔn)圖像鏈接在網(wǎng)頁上訪問該圖表。
例:
<img src="http://www.myserver.here/tempCharts/myJPEGChart.jpg">
JPEG圖表不提供live圖表的優(yōu)勢(shì),例如鼠標(biāo)點(diǎn)擊,實(shí)時(shí)動(dòng)畫,滾動(dòng)等,但它們幾乎適用于任何瀏覽器
輸出數(shù)據(jù)格式
圖表數(shù)據(jù)可以導(dǎo)出為文本,XML,Excel電子表格或HTML表格。
輸入數(shù)據(jù)格式
HTML表格。
TChartWebSource-使用TChart WebSource將基于服務(wù)器的URL tee文件路徑導(dǎo)到客戶端圖表的應(yīng)用程序,這樣可以在服務(wù)器上創(chuàng)建或存儲(chǔ)Tee文件,并通過URL直接訪問,這是LoadChartFromURL方法的替代方法。
TSeriesTextSource-SeriesTextSource組件允許將CSV文件數(shù)據(jù)直接加載到Series,CSV文件可以以不同的方式分隔,也可以是托管在URL地址的本地文件或服務(wù)器文件。
例:
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組件識(shí)別關(guān)聯(lián)的TeeChart系列的Series類型,并為源的定義提供相關(guān)的字段結(jié)構(gòu),以下是BarSeries:
將標(biāo)題列設(shè)置為您不希望SeriesTextSource從中獲取數(shù)據(jù)的標(biāo)題文本行數(shù)。 將TSeriesTextSource Active設(shè)置為True會(huì)加載Series數(shù)據(jù)。 以上數(shù)據(jù)的結(jié)果如下圖:
以上方法可以通過以下方式實(shí)現(xiàn):
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;
對(duì)于上面的Bar Series示例,單詞Bar用于定義Y值。 當(dāng)僅為BarSeries添加一個(gè)數(shù)據(jù)變量時(shí),名稱并不重要,因?yàn)門eeChart將假定它是Y值。 對(duì)于Label字段,它必須使用標(biāo)題Text(常量Teemsg_Text)來標(biāo)識(shí)它。 添加多個(gè)值時(shí)(如AddXY或具有Date,Open,High,Low,Close的Candle Series),您可以通過Series ValueList名稱獲取正確的名稱。
例:
請(qǐng)考慮以下數(shù)據(jù)文件:
日期 | 開盤價(jià) | 最高價(jià) | 最低價(jià) | 收市價(jià) |
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中
要?jiǎng)?chuàng)建新的ActiveForm應(yīng)用程序,請(qǐng)從Delphi IDE的文件菜單中選擇New>Activex>ActiveForm。 可以在表單上放置TChart,并且可以將屬性添加到表單內(nèi)以執(zhí)行TeeChart操作。
想要插入在Internet Explorer或其他ActiveX感知瀏覽器中,您應(yīng)該記下新ActiveXForm的CLSID編號(hào),并將其插入頁面,語法類似于以下示例:
<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對(duì)象添加屬性和方法,以便為圖表在運(yùn)行時(shí)提供便利。 例如,對(duì)于上面的圖表,我們添加了Gradient.Visible,屬性來啟用/禁用圖表后面的Panel Gradient。
例: 如何使用Delphi將TeeChart屬性添加到ActiveForm
按照以下步驟將Chart屬性添加到ActiveForm項(xiàng)目:
使用Delphi類型庫(kù)編輯器向ActiveForm項(xiàng)目添加屬性
在這種情況下,我們將屬性定義為Property Gradient:WordBool;
使用類型庫(kù)刷新按鈕更新項(xiàng)目的實(shí)施單元。
Delphi將在項(xiàng)目的實(shí)現(xiàn)單元中為新屬性創(chuàng)建一個(gè)空的Get函數(shù)和Set過程。 您可以通過填充函數(shù)和過程來添加對(duì)所需TeeChart屬性的訪問,如下所示:
function TTeeVCLAX.Get_Gradient: WordBool; begin result:=Chart1.Gradient.Visible; end; procedure TTeeVCLAX.Set_Gradient(Value: WordBool); begin Chart1.Gradient.Visible:=Value; end;
現(xiàn)在編譯修改后的項(xiàng)目可以使用瀏覽器腳本語言(如VBScript)訪問此屬性。 下面列出的VBScript代碼用于此示例中的按鈕:
對(duì)于這種類型的Charting應(yīng)用程序,您可能會(huì)發(fā)現(xiàn)LoadChartFromURL方法很有用,因?yàn)樗试S分發(fā)集中修改的圖表,可以在ActiveForm應(yīng)用程序上放置一個(gè)計(jì)時(shí)器,以調(diào)用定期更新的基于服務(wù)器的圖表,從而保證瀏覽器圖表數(shù)據(jù)是最新的。
Web服務(wù)器應(yīng)用程序
編寫ISAPI應(yīng)用程序
Delphi使編寫ISAPI應(yīng)用程序非常容易。 下面是一部分代碼,以顯示圖表如何以Stream格式發(fā)送到頁面。
{ 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; {
本篇教程就介紹到這里,對(duì)以上內(nèi)容有任何疑惑或者建議都可以在下方評(píng)論留言,TeeChart Pro VCL/FMX教程會(huì)持續(xù)更新,可以多多關(guān)注。
如果對(duì)于TeeChart Pro VCL/FMX有任何的問題或者想要咨詢的都可以在評(píng)論下方留言。
關(guān)注慧聚IT微信公眾號(hào) ???,了解產(chǎn)品的最新動(dòng)態(tài)及最新資訊。