有没有办法以大的形式限制鼠标滚轮的范围

时间:2016-04-21 16:52:49

标签: delphi

该项目在Delphi5中

我有一个表单,它将显示可变数量的面板,大到足以使表单变得比屏幕一次显示的大得多。

我使用以下内容让鼠标滚轮上下滚动

ScrollBy(0, WheelDelta);

它工作正常,但您可以滚动浏览表单的顶部或底部。

有没有办法限制滚动的范围?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

由于您可以看到垂直滚动条,因此最好对其执行操作,而不是调用ScrollBy

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
  VertScrollBar.Position := VertScrollBar.Position-WheelDelta;
  Handled := True;
end;

滚动条限制更改为其顶部位置和最大滚动位置