TeeChart For VCL/FMX V2017使用教程:第十一章 缩放和移动


缩放和滚动是一种有用的辅助工具,用于在被密集填充的图表中聚焦特定的数据。在文件夹的“Animated Zoom”和“Scrolling”中,可以看到Visual Basic示例代码。

 

目录

11.1 如何使用鼠标缩放和滚动

(1). 缩放

(2). 滚动

11.2 如何通过代码缩放和滚动

(1). 缩放

(2). 动态缩放

(3). 缩放事件

(4).    滚动


11.1如何使用鼠标缩放和滚动

11.1.1 缩放

        为了缩放图表,在你想要缩放的区域的左上角按右边的鼠标按钮,保持鼠标按下的按钮,将矩形拖到缩放区域的右下方。释放鼠标按钮将强制该图表重新绘制所选区域。

        要取消缩放,在图表区域的任何地方按下鼠标左按钮并保持,然后向左上方拖拽。释放这个按钮将会迫使图表重新绘制到最初定义的图表区域。

11.1.2 滚动

        要滚动一个图表,按下鼠标左按钮并保持,将鼠标拖动到你想要滚动图表的方向。当您释放鼠标按钮时,图表将保持在新的位置。

        要撤销滚动,在图表区域的任何地方按下鼠标左按钮并保持,然后向左上方拖拽鼠标按钮。释放按钮,图表将重新绘制到最初定义的图表区域。

11.2 如何通过代码缩放和滚动

11.2.1 缩放

With Chart1 do
begin
  ZoomRect(Rect(Axes.Bottom.CalcXPosValue(2),                       
              	Axes.Bottom.CalcXPosValue(5),
              	Axes.Left.CalcYPosValue(MaxYValue(Axes.Left)), 
              	Axes.Left.CalcYPosValue(MinYValue(Axes.Left))));
end;

        默认情况下,缩放是启用的。使用AllowZoom属性来禁用缩放。另一种“怎么做”缩放的指南,参见ChartZooming。为了定义一个矩形区域来缩放要使用ZoomRect方法:

示例

Rect.Left  := LineSeries1.CalcXPosValue( 22.5  ) ;
Rect.Top   := LineSeries1.CalcYPosValue( 5000 ) ;
Rect.Right := LineSeries1.CalcXPosValue( 57.6 ) ;
Rect.Bottom:= LineSeries1.CalcYPosValue( 15000 ) ;
Chart1.ZoomRect( Rect );

        ZoomRect的坐标是在屏幕像素中定义的,其中0,0是图表面板的左上角。下面的代码将放大x轴的第25点之间的区域,将y轴设置为整个图表的最大和最小点的数值范围:

        使用“Undo(撤销)”来使缩放退出。

Chart1.UndoZoom;

11.2.2 动态缩放

        动态缩放提供了动画式逐步缩放。而不是一步就从“缩放外”跳到“缩放中”,你可以设置AnimatedZoom来启用并为缩放定义交错的步骤。一旦AnimatedZoom被启用,你可以通过鼠标或代码来手动缩放。

        示例

With Chart1 do
begin
  AnimatedZoom := True;
  AnimatedZoomSteps := 10;
  ZoomRect(Rect(Axes.Bottom.CalcXPosValue(2), 
Axes.Left.CalcYPosValue(MaxYValue(Axes.Left)),
              Axes.Bottom.CalcXPosValue(5),
              Axes.Left.CalcYPosValue(MinYValue(Axes.Left))));
end;

11.2.3 缩放事件

        手动或通过代码进行缩放,将触发Chart.OnZoom事件。缩放退出触发Chart.UndoZoom事件。

11.2.4 滚动

        默认滚动是为所有方向启用的。使用AllowPanning属性来禁用滚动或将滚动限制为一个方向。您需要通过代码定义轴的最大值和最小值来滚动。

示例

With Chart1 do
  AllowPanning := pmHorizontal; //只允许手动水平滚动
  Axes.Bottom.Automatic := False;
  //在屏幕上限制显示为5个点
  ChartScrollBar1.Chart := Chart1;
  ChartScrollBar1.Kind := sbHorizontal;
  ChartScrollBar1.Min := 0;
  ChartScrollBar1.Max := 20;
End With



十一章完
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值