TFramedVertScrollBox кинетическая прокрутка с помощью мыши (не сенсорная) - PullRequest
0 голосов
/ 12 июня 2018

В Delphi 10.2.3 компонент TFramedVertScrollBox автоматически поддерживает вертикальную кинетическую прокрутку с помощью Touch (протестировано в Android).

Однако по умолчанию единственным способом прокрутки с помощью мыши является полоса прокрутки (которой я являюсь).скрывается).

Есть ли способ привязать события мыши к кинетическому коду прокрутки касания?
Если нет, могу ли я только вручную написать собственный алгоритм кинетической прокрутки?

1 Ответ

0 голосов
/ 12 июня 2018

Документация подтверждает ваши наблюдения относительно автоматического ответа жестом на 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 перемещается «по инерции» при перетаскивании мышью по вертикали.

...