処理フロー: マウスのスクロール機能を止める
dbMAGICのときは、マウスのスクロール機能は使えませんでしたが、Magic eDeveloperになってからは使えるようになりました。
開発時などは非常に重宝するのですが、実行時には使われると困るという場合もあります。
スクリーンモードの入力画面が、その困る代表例かと思います。
入力途中に、ついスクロールさせてしまうと、レコード後処理を通ってデータを書き込もうとします。
入力チェックでエラーになれば、そこで止まるのですが、いずれにせよユーザとしては戸惑ってしまうでしょう。
フリーソフト(WinHook.dll等)を使ってスクロール機能を一時停止するということも可能ですが、
ここでは、Magicの機能を使った制御方法を載せておきます。
V9Plusで説明しますが、V10でも同様です。
スクロール機能を使いたくないタスクにハンドラを作ります。
イベントタイプを「I=内部」、イベントを「次行」とします。
コントロールは指定しません(カーソルがどこにあっても有効という意味です)。
スコープは「T=タスク」としておきます。
(サブタスクがラインモード画面のときには、スクロール機能が使えた方が良いので。)
その他の設定は、デフォルトのままにしておきます。
※伝播は「No」でなければなりません。
ハンドラ内のコマンドは何も記述しません。
同様に、「前行」イベントのハンドラも作成します。
これで、マウスのスクロール機能は、このタスク内では動作しなくなります。
この状態でも、キーボードのPgUp、PgDnでレコード移動することはできますし、
修正モードであれば、F4を押して行作成アクションによるレコード追加(登録モード)も可能です。