缩放和滚动是一种有用的辅助工具,用于在被密集填充的图表中聚焦特定的数据。在文件夹的“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轴的第2到5点之间的区域,将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