弾力のあるスクロール効果を実装するにはどうすればいいですか?デルファイXE2 FireMonkeyの標準TListBox
コンポーネントを使用してリスト上でlike this one(マウスドラッグでスクロール)するにはどうすればよいですか?TListBox弾みスクロール効果
答えて
TListBox.ChildrenCount-1
を使用して、Position.Y
がTListBox.Parent.Height + TListBoxItem.height
未満であるかどうかを確認することがあります。さらに、「MouseIsDown」などのグローバルboolean
変数を作成します。
TListBox内のすべての項目は、実際に作業して直接変更できる子オブジェクトなので、大きな空のTListBoxItem
を簡単に作成し、リストの最後のオブジェクトとして設定されていることを確認します。
OnMouseDown
には、MouseIsDown
をTrueに、OnMouseUp
にはfalseを設定します。
補間プロパティをitElastic
またはitBounce
に設定して、TListBoxにTFloatAnimation
を追加します。 MouseIsDown
がfalseに設定されている場合、このエフェクトを無効にし、MouseIsDown
がtrueに設定されている場合はエフェクトを有効にします。リストの位置を最後の有効なオブジェクトにリセットするには、いくつかの作業を行う必要があります。おそらくアニメーション自体のOnFinish
イベントでこれを行うでしょう。
さらに適切なのは、その最後のオブジェクトの位置を計算し、アニメーションのStopValue
をその値に設定することです。
基本的に、あなたはリストの最後の有効なオブジェクト(すなわちない大きな空白オブジェクト)の座標は、リストボックスの高さを一致させるかどうかを確認する必要があります。もしそうで、マウスが押されていなければ、アニメーションが有効になり、スクロールボックスがバウンスします。それらが一致し、マウスがダウンしている場合、アニメーションは無効になるので、OnFinish
も起動されないので、スクロールボックスはその位置をリセットしません。
それぞれの値が真であることを確認するには、繰り返しネストされたプロシージャを実行する必要があります。
これはiOSの実装ほど滑らかではありませんが、それはあなたに何かを与える必要があります。
- 1. 視差効果 - 縦スクロールのみ
- 2. スクロール(Page)トランジション効果
- 3. animate.cssのスクロール効果
- 4. ナビゲーションドロワーメニューをスクロール効果
- 5. スクロール効果をフェードアウト
- 6. iPhone上でのUISliderの弾力効果
- 7. 弾性検索:フィルターでマルチマッチ無効果
- 8. 円周上の弾性ゴムバンド効果
- 9. AngularJsスクロール:スクロール効果を「見る」方法
- 10. 遷移のスクロール効果
- 11. スムーズなスクロール効果>高さ(視差効果)
- 12. 弾性スクロールを無効にするChrome/Safari
- 13. リストビュー内の弾性スクロールを無効にする
- 14. 天気アプリ時間別スクロール効果
- 15. スクロール可能なdivの効果
- 16. 1ページのウェブサイトへのスクロール効果
- 17. 固定タイムラインの視差効果スクロール
- 18. スクロール効果(速くて遅い)
- 19. CSSの背景のスクロール効果
- 20. スクロール時のスクロール効果を修正しました。
- 21. divで長いテキストの読み取り専用のテキスト入力スクロール効果
- 22. 弾性検索スクロールの動作
- 23. 弾性検索スクロール制限件数
- 24. Firemonkey TListboxのIsCheckedプロパティが正しい結果を返していませんか?
- 25. スクロール中にテーブルビューの再読み込みを無効にする
- 26. tListBoxで改行した単一項目
- 27. openlayerで追加されたマーカに弾丸効果を追加する方法
- 28. WPF/Silverlightの水平スクロール効果とは何ですか?
- 29. 私の活動にスクロールの効果をもたらす方法
- 30. tumblrのようなjqueryのスクロール効果を作るには?
「バウンススクロール」とは何ですか? – Kromster
@KromSternそれは「タッチスタイル」のスクロールで、スクロールするとコンテンツを上にスクロールできますが、スクロールすると正しい位置に戻ります。 –
FireMonkeyについてnuthinは分かりません。しかし、それが "標準の" Win32の 'ListBox'の場合、その動作を取得することはできません.Windowsのコントロールはそれを提供しません。私はいくつかのカスタムコントロールで同じ効果を得ようとしましたが、思ったよりもずっと難しいです。 –