Delphi 有没有办法限制鼠标滚轮的范围

Delphi 有没有办法限制鼠标滚轮的范围,delphi,Delphi,该项目位于Delphi5 我有一个表单,它将显示可变数量的面板,足够大,表单将比屏幕一次显示的大得多 我使用了以下方法来允许鼠标滚轮上下滚动 ScrollBy(0, WheelDelta); 它工作正常,但您可以滚动表单的顶部或底部 有没有办法限制卷轴的范围 提前感谢您的帮助 Don由于您可以看到垂直滚动条,因此最好在该滚动条上执行操作,而不是调用ScrollBy procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftSta

该项目位于Delphi5

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

我使用了以下方法来允许鼠标滚轮上下滚动

ScrollBy(0, WheelDelta);
它工作正常,但您可以滚动表单的顶部或底部

有没有办法限制卷轴的范围

提前感谢您的帮助


Don

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

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

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

在代码中计算并限制滚动,没有自动限制滚动的方法。
滚动(0,Min(ClientHeight-(BottomMostPanel.top+BottomMostPanel.Height),WheelDelta)@SertacAkyuz,这不是答案吗?谢谢。一开始看起来不错,打得太快了。那个密码确实改变了方向盘。但是,在最后一个面板之后,我可以向下滚动任意距离。然后,当我滚动回到顶部时,我从表单顶部返回大约500-600(估计)。我再也到不了上面的面板了。另外,垂直滚动条在第一次使用滚轮时就开始工作,然后消失。这非常有效!非常感谢。我之前看到一条评论,说没有回应某人的建议,我道歉。我有时会发一个问题,然后忘记我在哪里做的。这一次,我收到一封电子邮件,上面说有回复。@dcboje在这里,所以(事实上,所有StackExchange网站)我们对我们认为有用的问题和答案进行了投票(/投票失败)。此外(或单独)提问者可以通过单击左侧投票按钮下方的勾号将答案标记为正确答案。这些操作在“教程”和“帮助”的其他地方有描述,您可以通过顶部的“帮助”按钮访问这些“帮助”。