logo Teechart应用技术详解——快速图表制作工具 我也要发布文档

第三章之图表的放大和滚动


    Steema公司和慧都科技针对中国市场联合推出中文版TeeChart for .NET图表控件,一共汉化2000个词条(17000个单词),汉化文档35000个单词,包括控件设计时与运行时的界面汉化以及控件使用向导文档的汉化,总汉化90%以上!

    TeeChart for .NET中文版让您在使用和学习上没有任何语言障碍,至少可以节省30%的开发时间。TeeChart for .NET中文版具有易上手,使用方便,稳定性好,性价比高,价格优惠等优势,并且针对Web应用提供无限制服务器分发授权方式,非常有利于产品集成。

点击下载TeeChart for .NET最新试用版    


图表的放大和滚动

    图表的放大和滚动就是将坐标设置为希望的刻度。当滚动和放大后,序列上的所有点将在新的位置重绘。注意: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 2019资源合集


    现TeeChart for .NETTeeChart for JavaScript/HTML5TeeChart for Xamarin.Android等均已加入在线订购,现在抢购可立享优惠!

    关注慧聚IT微信公众号???,了解产品的最新动态及最新资讯。

dd2629f30d553d56ccaf7164fdcb784e-sz_28327.webp.jpg