ページの先頭行へ戻る
NetCOBOL V12.2 PowerCOBOL ユーザーズガイド
FUJITSU Software

9.2.4 手続きを編集する

手続きは、以下のように記述します。

カスタムメソッドが呼び出されたときの手続き

カスタムメソッドが呼び出されたときの手続きは、カスタムメソッド"SelectColor"のInvokedイベントに、以下のように記述します。

SelectColor-Invoked
    ENVIRONMENT     DIVISION.
    DATA            DIVISION.
    WORKING-STORAGE SECTION.
    LINKAGE         SECTION.
    01  POW-COLOR   PIC S9(9) COMP-5.
    01  RETURN-VALUE PIC S9(4) COMP-5.
    PROCEDURE       DIVISION USING POW-COLOR RETURN-VALUE.
   *    復帰値を初期化します。
        MOVE POW-TRUE TO RETURN-VALUE
   *    選択されている色を変更します。
        EVALUATE POW-COLOR
        WHEN POW-COLOR-RED
          MOVE POW-TRUE TO "Value" OF OP-COLOR(1)
        WHEN POW-COLOR-GREEN
          MOVE POW-TRUE TO "Value" OF OP-COLOR(2)
        WHEN POW-COLOR-BLUE
          MOVE POW-TRUE TO "Value" OF OP-COLOR(3)
        WHEN OTHER
   *      赤、緑、青以外の場合、復帰値をFALSEにします。
          MOVE POW-FALSE TO RETURN-VALUE
        END-EVALUATE
        MOVE POW-COLOR TO "SelectedColor" OF POW-SELF

ポイント

連絡節のPOW-COLORは、カスタムメソッドのパラメタに定義したColorを意味し、その項類は、Colorパラメタの型(VT_I4)に対応してします。また、RETURN-VALUEは、カスタムメソッドの復帰値で、その項類は、カスタムメソッド自身の型(VT_BOOL)に対応しています。

型とCOBOLの項類との対応については、『リファレンス』を参照してください。

カスタムイベントの発生方法

カスタムイベントは、以下の記述形式で発生させることができます。

  INVOKE  カスタムイベント名  ”Invoke”
                USING  [パラメタ・・・]
カスタムイベント名

カスタムイベントの名前です。

パラメタ

カスタムイベントのパラメタです。指定するパラメタ数およびその型は、カスタムイベントのパラメタの定義と一致していなければなりません。

復帰値

ありません。

色が変更されたときの手続き

色が変更された場合、オプションボタンコントロールのClickイベントが発生します。したがって、選択中の色を示すカスタムプロパティ"SelectedColor"は、オプションボタンコントロールのClickイベント内で更新します。また、色が変更されたときに利用者へ通知するカスタムイベント"OnSelect"を、オプションボタンコントロールのClickイベント内で発生させます。

OP-COLOR-Click
    ENVIRONMENT     DIVISION.
    DATA            DIVISION.
    WORKING-STORAGE SECTION.
    01 WK-COLOR-NEW PIC S9(9) COMP-5.
    01 WK-COLOR-OLD PIC S9(9) COMP-5.
    LINKAGE         SECTION.
    01  POW-INDEX   PIC S9(9) COMP-5.
    PROCEDURE       DIVISION USING POW-INDEX.
   *    選択されている色を保存しておきます。
        MOVE "SelectedColor" OF POW-SELF TO WK-COLOR-OLD
   *    新しく選択された色を求めます。
        EVALUATE POW-INDEX
        WHEN 1
          MOVE POW-COLOR-RED   TO WK-COLOR-NEW
        WHEN 2
          MOVE POW-COLOR-GREEN TO WK-COLOR-NEW
        WHEN 3
          MOVE POW-COLOR-BLUE  TO WK-COLOR-NEW
        END-EVALUATE
   *    色が変更されていれば、カスタムイベントを発生させます。
        IF WK-COLOR-NEW NOT = WK-COLOR-OLD THEN
          INVOKE OnSelect "Invoke" USING WK-COLOR-NEW
        END-IF
   *    カスタムプロパティに色を設定します。
        MOVE WK-COLOR-NEW TO "SelectedColor" OF POW-SELF