コントロールがもつ、各イベント手続きは、フォーム内でそれぞれ1つの内部プログラムとして扱われます。したがって、データ部で宣言したデータ項目は、そのイベント手続き内だけで有効となります。また、イベント手続きには、さらに内部プログラムを記述することもできます。
編集するイベントを選択し、手続き編集ウィンドウを開くと、あらかじめ環境部、データ部および手続き部を記述するための定型の手続きが自動的に生成されます。
たとえば、コマンドボタンコントロールのClickイベントを選択すると、以下のような手続きが表示されます。ここに必要な手続きを追加していきます。
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. PROCEDURE DIVISION.
また、イベントの種類により、引数をもつ場合があります。
たとえば、コマンドボタンコントロールのMouseDownイベントでは、以下のように、マウスのどのボタンをクリックしたか、同時に押されたキーは何か、クリックしたときのマウスポインタの位置はどこであったかという情報が、イベントの引数として渡されます。
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. LINKAGE SECTION. 01 POW-BUTTON PIC S9(4) COMP-5. 01 POW-SHIFT PIC S9(4) COMP-5. 01 POW-X PIC S9(9) COMP-5. 01 POW-Y PIC S9(9) COMP-5. PROCEDURE DIVISION USING POW-BUTTON POW-SHIFT POW-X POW-Y.
さらに、コントロールが配列化されている場合は、イベントが発生したコントロールのインデックス値を引数として受け取ることができます。
たとえば、コマンドボタンが配列化されている場合、そのMouseDownイベントは、以下のようになります。
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. LINKAGE SECTION. 01 POW-INDEX PIC S9(9) COMP-5. 01 POW-BUTTON PIC S9(4) COMP-5. 01 POW-SHIFT PIC S9(4) COMP-5. 01 POW-X PIC S9(9) COMP-5. 01 POW-Y PIC S9(9) COMP-5. PROCEDURE DIVISION USING POW-INDEX POW-BUTTON POW-SHIFT POW-X POW-Y.
配列化したコントロールの利用方法については、「8.1 配列化したコントロールを使ったアプリケーションを作成する」を参照してください。
また、個々のコントロールがもつイベントについては、『リファレンス』を参照してください。