以前の4Dのバージョンでは、ピクチャー変数またはフィールドのスクロールはOn Picture Scroll フォームイベント(値59)を通して管理することができました。
4D v15では、この種のイベントの管理がリストボックスオブジェクトまで拡張されました(以下参照)。その結果として、On Picture Scroll フォームイベントはOn Scroll と改名され、リストボックスおよびプロパティリストに対しても使用できるようになりました。ピクチャーに対するこのイベントの動作は変わりません。
互換性に関する注意:
以前のバージョンの4DでのOn Picture Scroll フォームイベントの実装と、新しいのOn Scroll 実装について二つの小さな変更点があります:
- On Picture Scroll はオブジェクトメソッドとフォームメソッドにおいて生成されました(フォームプロパティレベルでのチェック、あるいはチェックを外すことはできませんでした)。統一性のために、4D v15以降、On Scroll イベントはオブジェクトメソッドにおいてのみ生成されます。フォームメソッドでピクチャースクロールイベントを管理しているアプリケーションを変換した場合、そのコードを適切なオブジェクトメソッドへと移す必要があります。
- イベントスタックにおいては、On Picture Scroll を他のユーザーイベント(例えばOn Click等)の前に呼び出すことは可能です。On Scroll は常に他のユーザーイベントの後に生成されます。
4D v15On Scroll イベントは二つのスクロール可能なオブジェクトに対して使用可能です:
- "トランケート(中央合わせなし)"フォーマットのピクチャーフィールドまたは変数(既に以前の4DのバージョンからOn Picture Scroll という名前で使用可能)。
- リストボックス(4D v15から)
デフォルトでは、オブジェクトに対してのイベントはプロパティリスト内ではチェックされていません。
On Scroll フォームイベントはユーザーがフォームオブジェクトを、それが含まれるエリア内にてスクロールした瞬間に生成されます。イベントはスクロールがユーザーのアクション(スクロールバー、またはマウスホイールやキーボードの使用)の結果である場合においてのみ生成されます。オブジェクトがOBJECT SET SCROLL POSITION コマンドの実行の結果スクロールされた場合には生成されません。
このイベントはスクロールにアクションに関連する他の全てのイベント(On Clicked、On After Keystroke、等)のあとにトリガーされます。
このイベントはオブジェクトメソッドないにおいてのみ生成されます(フォームメソッド内では生成されません)。
リストボックスで選択されたセルの周りに赤い長方形を描画し、リストボックスがユーザーによって垂直方向にスクロールされた場合には、その長方形を一緒に移動させたい場合を考えます。その場合、リストボックスのオブジェクトメソッドに対して以下のように書きます:
結果として、赤い長方形はリストボックスのスクロールに沿って移動します:
