在 Delphi 中,我在表单的右侧添加了一个滚动条组件(垂直方向)。
我添加了一个 Scrollbar OnChange 事件,因此当用户用鼠标单击 UpArrow 或 DownArrow 按钮时,我可以更改表单的 View 和滚动条拇指的位置,并且效果很好。
但是 OnChange 事件似乎仅在最初在箭头上按下鼠标按钮时才会触发。
我注意到所有滚动条控件都重复该命令并继续滚动,而鼠标仍然按下箭头,我想实现这种行为。
那么如何轻松检测用户是否没有移动鼠标并在鼠标停留在箭头上方时继续按下鼠标按钮?
结论。不知何故,我项目中滚动条中的某些内容已损坏。在我删除 ScrollBar 并再次添加后,问题就消失了。
这是我花了很多时间解决的棘手问题之一。谢谢你的帮助。我要结束这个问题。
最佳答案
使用 OnScroll 事件。
只要鼠标按住滚动条箭头按钮,以下代码就会将“xxx”添加到备忘录中。用德尔福 6 测试。
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
begin
Memo1.Lines.Add( 'xxx' );
end;
关于delphi - 如何检测鼠标未移动且按钮仍被按下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/692976/