処理フロー: コントロールイベント

イベント種類Magic eDeveloperという名称のバージョンでは、dbMAGIC時代のフロー型プログラムだけでなく、イベントドリブンのプログラムも作成できるようになりました。

ここでは、その中のコントロールイベントの動作を確認しておきたいと思います。

コントロールイベントには、次の4つがあります。

前処理 カーソルがコントロールにパークする前に実行される。
後処理 カーソルがコントロールから離れるときに実行される。
検証 カーソルがコントロールから離れるときと通過するときに実行される。
変更 項目に入力した後、カーソルが離れるときに実行される。
項目更新やコールコマンドのパラメータによって項目の値が変更されたときには実行されない。
(V10では、コマンドでも実行されるようにパラメータが追加された。)

コントロール一覧コントロールイベントでは、必ずコントロールを指定します。
コントロールとは、画面(フォーム)に表示されている項目です。
従って、ここでズームして選択できる「コントロール一覧」は、レコードメインでのセレクト項目とは異なります。
セレクトコマンドによって宣言された項目でも、フォームに無ければ選択できません。
逆に、変数を割り当てられていないプッシュボタンでも、コントロール名を付けておけば「コントロール一覧」から選択することができます。

イベントのミニサンプルプログラムがあります。
こちらのページからダウンロードしてください。

説明を読んだだけでは、後処理と検証の違いがよく分からないというときは、このサンプルの「コントロール処理」というプログラムを実行して、項目1から項目5へマウスで移動してください。
すると、項目3に設定されているコントロール検証が動作します。
フローモードの「C=両用(ステップモードでも高速モードでも)」の動作に近いのが検証です。

次に知っておきたいのは、後処理、検証、変更の動作順です。
同じコントロールに、この3つのイベントが設定されていた場合は、変更→検証→後処理の順に実行されます。

サンプルプログラムでは、項目3に全てのコントロールイベントを設定しています。
入力したり、更新ボタンを押す等、いくつかのパターンを試しながら動作を把握しておくと良いと思います。