轉帖|使用教程|編輯:況魚杰|2019-11-01 11:52:06.563|閱讀 695 次
概述:本教程轉自屈景輝的Teechart應用技術詳解——快速圖表制作工具一書,本文將會介紹此書的第三章圖表與序列的操作維護的第四小節:圖表的放大和滾動作。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Steema公司和慧都科技針對中國市場聯合推出中文版TeeChart for .NET圖表控件,一共漢化2000個詞條(17000個單詞),漢化文檔35000個單詞,包括控件設計時與運行時的界面漢化以及控件使用向導文檔的漢化,總漢化90%以上!
TeeChart for .NET中文版讓您在使用和學習上沒有任何語言障礙,至少可以節省30%的開發時間。TeeChart for .NET中文版具有易上手,使用方便,穩定性好,性價比高,價格優惠等優勢,并且針對Web應用提供無限制服務器分發授權方式,非常有利于產品集成。
圖表的放大和滾動
圖表的放大和滾動就是將坐標設置為希望的刻度。當滾動和放大后,序列上的所有點將在新的位置重繪。注意:TPieSeries序列不支持放大與滾動操作。
放大(Zoom)
圖表放大通常是由用戶與鼠標拖拉交互實現的。圖表的Zoom類的Zoom屬性控制用戶是否通過鼠標拖拽進行放大,默認狀態為true,即:
Chart1.Zoom. Allow: =True;
用戶可通過鼠標拖拽確定一個矩形區域,以看到圖表的細節。拖拽方向與軸方向一致為放大,相反為恢復(不放大)。可以設定使用哪個鼠標按鈕或哪個鍵按下拖拽矩形區域,默認為鼠標的左按鈕,也可以通過代碼修改拖拽的默認鍵:
Chart1. Zoom. MouseButton: = mbMiddle;
一旦用戶釋放按鈕,圖表將在放大區域重新顯示。
動畫放大( Animate Zoom)
所謂動畫放大實際是將圖表放大過程按某種要求顯示出來。下列代碼激活動畫放大:
Chart1. Zoom. Animated: =True;
設置 AnimatedZoom Steps屬性確定動畫的中間幀數:
Chart1. Zoom. AnimatedSteps: =7;
還可以使用全局變量 AnimatedZoom Factor放大因子確定如何線性動畫。因子范圍從1到n:
AnimatedZoomFactor: =2.0
使用代碼進行放大( Zoom By Code)
可以通過調用圖表方法進行圖表的放大與縮小。ZoomRect調節顯示矩形區域TRect坐標刻度,矩形區域由屏幕的像素坐標表示。矩形區域在Chart.ChartRect之內將執行放大操作,否則執行縮小操作。
Chart1. ZoomRect(Rect(100, 100, 200, 200));
ZoomPercent設定圖表放大比例,例如設放大比例為110%:
Chart1. ZoomPercent(110);
取消放大:
Chart1. ZoomPercent(100);
恢復顯示( Undoing Zoom)
Undozoom方法技序列的最大值和最小值重新設置坐標刻度,即:
Chart1. UndoZoom;
這時將顯示所有序列的點,取消以前使用鼠標或代碼進行的放大、縮小操作。
注意:如果需要在取消放大或縮小操作后按指定值設定坐標刻度,可在圖表的 OnUndoZoom事件中進行。根據圖表的四個坐標軸是否自動Zoomed屬性返回一個邏輯值,如:
If not Chart1. Zoomed then Chart1. ZoamPercent(150 ); //如果Chart1. Zoomed是 //False,則放大
放大事件( Zoom Events)
當手動或程序方式放大圖表時就觸發 OnZoom事件:
procedure TForm1. Chart1Zoom(Sender: TObject); begin Button1.Visible:=True;//使不放大按鈕可見, Button1.Caption:=‘不放大'; end;
當由鼠標或代碼取消放大時便觸發OnUndoZoom事件。
滾動( Scrolling)
滾動與放大很類似,當坐標刻度增加或減少時整個圖表被重新繪制,在新的位置顯示序列的點。圖表的AllowPanning屬性控制拖拽鼠標使圖表滾動,它的取值范圍如下:
pmNoneNo:允許滾動。
pmHorizontal:允許水平方向滾動。
pmVertical:允許垂直方向滾動。
pmBoth:允許垂直、水平方向滾動。
例如:
Chart1. AllowPanning :=pmNone; //不允許滾動 同放大一樣,下面的代碼設定使用鼠標右鍵進行滾動: Chart1. ScrollMouseButton := mbRight; //使用鼠標右鍵按鈕滾動 TeeScrollKeyShift:[ ssCtrl ];//全局變量,按下Ctr1鍵開始滾動
也可使用代碼滾動圖表
Procedure Scroll(Const Offset: Double; CheckLimits: Boolean);
例如:
Chart1. BottomAxis Scroll( 1000, True );
上述代碼使BottomAxis刻度按1000增加,與下列代碼是等效的:
with Chart1. BottomAxis do SetMinMax(Minimum + 1000, Maximum+1000);
并且設置BottomAxis軸的自動屬性Automatic為 false。這時,圖表重新繪制,而且水平軸滾動到左邊刻度為1000的位置。
滾動事件( Scroll Event)
圖表的OnScroll事件在用戶每次手動滾動圖表時觸發。例如:
procedure TForm1. Chart1Scroll(Sender: Tobject); begin Label1.Caption:=?個圖表被滾動!'; end;
控制滾動( Controlling Scroll)
OnAllowScroll事件可以被用來接受或拒絕圖表滾動。例如:
procedure TForm1. Chart1AllowScroll(Sender: TChartAxis; var AMin, AMax: Double; var AllowScroll: Boolean); begin if Sender= Chart1. BottomAxis then if AMax >1000 then AllowScroll : =False; end;
以上代碼是當用戶設定BottomAxis軸的最大值大于1000時拒絕滾動。同理,對于時間軸也可采用下述方法進行:
if Sender=Chart1.BottomAxis then if Amax>EncodeDate(2000,12,31)then AllowScroll:=False;
鍵盤滾動(Keyboard Scrolling)
當設置窗體的可以KeyPreview屬性為true,可以使用方向鍵滾動。在Keydown事件中根據按下的鍵調用軸的Scroll方法進行滾動。
下一節我們將會介紹第三章圖表與序列的操作維護:如何在圖表上自行繪制。如果有對Teechart圖表感興趣的朋友,可以多多關注本教程,并且歡迎在評論區留言。
相關資料推薦:
上一章:函數的操作
現TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在線訂購,現在搶購可立享優惠!
關注慧聚IT微信公眾號???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: