在Delphi 10.2.3中,TFramedVertScrollBox组件使用Touch自动支持垂直动态滚动(在Android中测试)。
但是,默认情况下,使用鼠标滚动的唯一方法是滚动条(我隐藏它)。
有没有办法让鼠标事件挂钩到触摸的动态滚动码? 如果没有,我唯一的选择是手动编码我自己的动力学滚动算法吗?
答案 0 :(得分:1)
documentation确认您对Android
和其他移动目标上的自动手势响应的观察结果:
在iOS,Mac OS和Android下,滚动视图会响应速度 和手势的方向,以一种感觉的方式揭示内容 对人来说很自然。 FireMonkey提供InertialMovement单元 在Windows下模拟滚动视图的这种平滑惯性移动。
在Windows上,通过设置FramedVertScrollBox1.AniCalculations
的属性来实现相同的效果非常简单。由于AniCalculations
未发布,因此无法在Object Inspector
中进行设置,而是在f.ex.在OnCreate
形式的事件中:
procedure TForm1.FormCreate(Sender: TObject);
begin
// Enable scrolling by mouse or gesture
FramedVertScrollBox1.AniCalculations.TouchTracking := [ttVertical];
// Enable inertial movement
FramedVertScrollBox1.AniCalculations.Animation := True;
// Set deceleration rate
FramedVertScrollBox1.AniCalculations.DecelerationRate := DecelerationRateNormal;
end;
ShowScrollbars
属性可以设置为False
,FramedVertScrollBox1
的内容在使用鼠标垂直拖动时会“惯性”移动。