Как я могу реализовать эффектный эффект прокрутки like this one (прокрутка с помощью мыши) в списке с использованием стандартного компонента TListBox
в Delphi XE2 FireMonkey?TListBox bouncy scroll effect
ответ
Одним из таких решений может быть использование TListBox.ChildrenCount-1
и проверка его Position.Y
составляет менее TListBox.Parent.Height + TListBoxItem.height
. Кроме того, создайте глобальную переменную boolean
, такую как «MouseIsDown».
Поскольку каждый элемент внутри TListBox на самом деле является дочерним объектом, с которым вы можете работать и изменять напрямую, просто создайте большой пустой TListBoxItem
и убедитесь, что он установлен как последний объект в списке.
В OnMouseDown
, установите MouseIsDown
в значение True, а в OnMouseUp
установите значение false.
Добавить TFloatAnimation
в TListBox с интерполяционным свойством, установленным на itElastic
, или itBounce
. Если для параметра MouseIsDown
установлено значение false, отключите этот эффект, и если для параметра MouseIsDown
установлено значение true, включите эффект. Вам нужно будет выполнить некоторую работу, чтобы сбросить позицию списка до последнего действительного объекта. Возможно, сделайте это в событии OnFinish
самой анимации.
Более подходящим было бы рассчитать положение этого последнего объекта и установитьанимации на это значение.
По существу, вы должны проверить, если координаты конечного действительного объекта (то есть не большой пустой объект) в списке соответствует высоте списка. Если они это сделают, а мышь не будет выключена, анимация будет включена, и прокрутка будет отскакивать. Если они совпадают, а мышь не работает, анимация отключается, и поэтому OnFinish
даже не будет запущен, и поэтому прокрутка не сбросит ее положение.
Возможно, вам понадобится выполнить итеративную вложенную процедуру, чтобы проверить, что каждое значение истинно.
Это не будет так гладко, как реализация iOS, но это должно дать вам кое-что для работы.
- 1. Auto scroll text effect
- 2. Onepage scroll effect
- 3. jquery scroll effect с завихрением
- 4. панель навигации меню Scroll Effect
- 5. Отменить WinRT ComboBox infinte scroll effect
- 6. Воспроизведение среднего изображения Fade Scroll Effect
- 7. jquery background image scroll effect speed issue
- 8. JavaScript в WordPress, чтобы сделать Smooth Scroll effect
- 9. Bootstrap 3 image autosize full screen и scroll effect
- 10. Fade on scroll effect не работает в IE11
- 11. TListBox Multiselect Style
- 12. Delphi TListBox OnClick/OnChange?
- 13. Delphi - Clean TListBox Items
- 14. Glass Effect - Artistic Effect
- 15. JavaScript smooth scroll - iphone
- 16. Создание прозрачной TListBox в Delphi
- 17. код функции TListBox и TCheckListbox
- 18. Сортировка TListbox - максимумы и минимумы
- 19. Imitate Parallax Effect
- 20. Jquery scroll - wait - scroll
- 21. Bouncy Castle as provider v/s Bouncy Castle API
- 22. Есть ли простой способ сделать ScrollViewer "bouncy"?
- 23. Legion of Bouncy Castle
- 24. Bouncy Castle ECIES совместим?
- 25. Bouncy Castle Encryption
- 26. Bouncy Castle PKCS7 padding
- 27. SceneKit bouncy floor
- 28. ECDH с Bouncy Castle
- 29. Что означает `effect` означает в` scalaz-effect`
- 30. Image Styling Effect
"bouncy scroll", что это? – Kromster
@KromStern. Это прокрутка «touch style», где, если вы попытаетесь прокрутить больше, это позволит вам нажимать содержимое (т. Е. Прокручивать вниз), но когда вы отпускаете его, он возвращается в правильное положение. –
Я не знаю nuthin о FireMonkey. Но если это «стандартный» Win32 'ListBox', то вы не можете получить такое поведение - элемент управления Windows не предоставляет его. Я попытался получить тот же эффект от некоторых пользовательских элементов управления, но это намного сложнее, чем я мог бы подумать. –