Teechart圖表應(yīng)用技術(shù)詳解—第一章之Teechart的組成
Steema是全球領(lǐng)先的圖表類控件公司,總部設(shè)在西班牙的巴塞羅那附近,Steema公司的VCL圖表報表控件在全球擁有極高知名度。Steema公司和慧都科技針對中國市場聯(lián)合推出中文版TeeChart for .NET圖表控件,一經(jīng)推出,就在市場上大受歡迎,如果有感興趣的用戶,可以下載試用版體驗一下。
Teechart的組成
圖1是TChart組成示意圖,為便于與組件的屬性、方法和事件對應(yīng),圖中的標(biāo)示采用英文字符方式。TChart的父類是 TCustom Chart,由TCUstom Chart派生了 TChart、 TDBChart、TQRDBChart和 TDecisionGraph四個功能基本類似而各有特點的圖表組件。其相互關(guān)系如圖2所示。
圖1
當(dāng)在Delphi IDE中安裝了TeeChart Pro v7.0后,在DE的 Additional、Data Controls和QReport選項卡上有 TChart、TDBChart和TQRDBChart三個圖表組件。
TChart是一個通用的圖表組件,TDBChart提供了對數(shù)據(jù)庫技術(shù)的支持,TQRDBChart提供了在報表模式中繪制圖表的功能。在QReport選項卡中的組件TQRChart是一個接口型組件,它利用屬性Chart關(guān)聯(lián)一個TChart或TQRChart將TChart或TDBChart與報表對象Quick Reports對象連接起來,從而使報表中能夠具有圖表功能,其關(guān)系如圖3所示。
圖2
圖3
TeeChart的組成元素
TChart由坐標(biāo)軸、序列、圖例、標(biāo)題和墻壁等主要元素組成,分述如下
坐標(biāo)軸( TChartAxis)。TChart的坐標(biāo)軸有左( LeftAxis)右( RightAxis)、上( TopAxis)下( BottomAxis)、頂部深度( DepthTopAxis:TChartDepthAxis)、右邊深度( DepthRightAxis:TChart DepthAxis)和用戶自定義軸( Custom axes:TChartCustomAxes07個類型。由于用戶可隨意定義若干個坐標(biāo)軸,所以圖表組件中的坐標(biāo)軸是無限制的。與深度有關(guān)的坐標(biāo)軸是用于三維圖表繪制的。坐標(biāo)軸的刻度既可由程序設(shè)定,也可由圖表自動設(shè)置( Chart1. BottomAxisAutomatic:= true)。
序列( TChartSeries)。是圖表中繪制的各種幾何形狀,其類型將在第4章中詳細介紹。一個圖表中可以繪制的序列也是不受限制的(與計算機內(nèi)存有關(guān)),同一個圖表中的每個序列的類型可以不同,不同序列的坐標(biāo)刻度和類型也可以不同利用圖表的 Serieslist[i]、Series[i]和Chart[i]屬性可以列出圖表中包含的序列。
標(biāo)題和腳注( TChart title)。圖表的標(biāo)題(Title)與腳注(Foot)是一個 TChartitle對象,如圖1中標(biāo)示的 Title、 SubTitle、Foot和 SubFoot區(qū)域,這些對象的顏色、位置、字體等都是可以改變的
圖例( TChartLegend)。是圖表中的一個矩形區(qū)域,用于對圖表中的序列進行說明,圖例中顯示內(nèi)容、方式、外觀等參數(shù)都可以改變,還可設(shè)定某一個序列不在圖例中顯示等。
畫布( TCanvas3D)。圖表組件的畫布是一個三維畫布對象,可以繪制各種幾何形狀和輸出文字字符,為程序員在圖表上增加新的圖形內(nèi)容提供了方便
墻壁(Wall)。為體現(xiàn)圖表的三維效果,圖表組件提供了左面墻( LeftWall:Chart Wall)地面( Bottom wall)、后墻( Back Wall:TChart Back Wal)和右面墻( TChartRight Wall)共四個方向的墻壁以增加二維效果,墻的顏色、厚度、透明程度都是可定義的
工具( Tools)。與圖表組件起還有27個工具對象,可以對序列、坐標(biāo)軸以及其他對象進行控制和操作。當(dāng)打開圖表編輯器選擇Tools頁面單擊Add按鈕后就可在工具庫中選擇需要使用的工具。
圖表元素之間的關(guān)聯(lián)
TChart關(guān)聯(lián)的對象。與 TChart關(guān)聯(lián)的對象有序列( TChartSeries)、坐標(biāo)軸( TChartAxes)、墻( TChart Wall)、圖例( TChartlegend)和標(biāo)題等。除畫布對象TCanvas3D外,其他幾個對象與TChart的關(guān)聯(lián)是由其具有的 Parentchart屬性確定的,其關(guān)系示意如圖4所示。
圖4
序列TChartSeries與坐標(biāo)軸TChartAxis的關(guān)聯(lián)。序列對象的兩個枚舉類型屬性TChartTitle Thorizaxis和 TVertAxis指出序列在水平和垂直方向所關(guān)聯(lián)的坐標(biāo)軸在圖表中的位置,從而使得序列通過這兩個屬性與坐標(biāo)軸建立關(guān)聯(lián)后也就建立了與 TChart的間接關(guān)聯(lián)。也就是說,通過這個屬性可以訪問序列所在的坐標(biāo)軸。屬性THorizAxis和 TVertAxis的定義為:
THorizAxis=(aTopAxis,aBottomAxis,aBothHorizAxis,acustomHorizAxis);
TVertAxis=(aLeftAxis,aRightAxis,aBothVertAxis,aCustomvertAxis);
誠然,也可以通過坐標(biāo)軸獲取與坐標(biāo)軸所關(guān)聯(lián)的序列。TChart中的 GetAxisSeries(Axis:TChartAxis): TChartSeries方法就可以獲得與坐標(biāo)軸關(guān)聯(lián)的序列。
圖表組件的主要屬性
外觀控制。圖表組件的外觀控制包括邊框( Border)、邊緣( Chart bounds,由Left、Iop、Width、Height表示)、邊距( MarginLeft、Margin Right、MarginTop、MarginBottom)圖表區(qū)( ChartRect)、背景等(可參照圖1)。
縮放與滾動控制。屬性 AllowZoom確定是否隨鼠標(biāo)右鍵拖動而縮放, AnimatedZoom設(shè)定縮放過程是否具有動感效果,而 AnimatedZoomSteps是設(shè)定分幾步可達到最后的縮放效果;屬性 AllowPanning用于設(shè)定是否允許在水平或垂直方向上滾動,另外 TChart的Tools還提供了有關(guān)滾動控制的工具,如坐標(biāo)箭頭工具TAxisArrowTool。和坐標(biāo)滾動工具 TAxisScrollTool都可以進行滾動控制。
頁面控制。圖表組件可以設(shè)定每頁的最大點數(shù) MaxPointsPerPage和最后一頁的顯示方式屬性ScaleLastPage使圖表可多頁顯示,組件群中的 TChartScrollBar與TChartPageNavigator 組件就是用于控制多頁顯示的。
輸出控制。圖表組件的輸出包括打印和導(dǎo)出兩種形式,打印是直接送往打印機,可以設(shè)置打印邊距( Chart1.PrintMargins、 Printer.PageWidth/PageHeight)、打印分辨率( Printer.Resolution)、打印方向( Printer.Orientation)等,而且TeeChart組件群中還提供了單頁面多圖表打印的組件,使圖表打印更方便。另外圖表組件還提伏Export導(dǎo)出頁面用于輸為指定格式文件,并且還有一些方法支持輸出控制
圖表組件的方法
TChart提供了許多方法用于圖表組件的操作,如序列的增加( AddSeries)、刪除
( RemoveSeries、RemoveAllSeries)、數(shù)據(jù)源設(shè)定及檢查刷新( DataSource, CheckDataSource)、縮放( ZoomPercent),打印圖表( Print、PrintPartial)和文件操作( SaveToBitmapFile、SaveToMetafile)等。
圖表組件的事件
Tchart不但具備一般可視組件具有的事件,并且提供了具有自己特點的時間,如在序列單擊OnClickSeries和雙擊OnDblClick、在圖表組件上單擊OnClick,這些均會在后續(xù)章節(jié)中介紹,希望感興趣的朋友可以持續(xù)關(guān)注本教程。
相關(guān)資料推薦:
上一章:Teechart的安裝
現(xiàn)TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在線訂購,現(xiàn)在搶購可立享優(yōu)惠!
關(guān)注慧聚IT微信公眾號???,了解產(chǎn)品的最新動態(tài)及最新資訊。