TFramedVertScrollBox用鼠标动态滚动(不触摸)

时间:2018-06-12 14:54:31

标签: delphi firemonkey

在Delphi 10.2.3中,TFramedVertScrollBox组件使用Touch自动支持垂直动态滚动(在Android中测试)。

但是,默认情况下,使用鼠标滚动的唯一方法是滚动条(我隐藏它)。

有没有办法让鼠标事件挂钩到触摸的动态滚动码? 如果没有,我唯一的选择是手动编码我自己的动力学滚动算法吗?

1 个答案:

答案 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属性可以设置为FalseFramedVertScrollBox1的内容在使用鼠标垂直拖动时会“惯性”移动。