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

8.3.2 CallFormメソッドを使用する

CallFormメソッドを使用しても、PowerCOBOLで作成した別のフォームを開くことができます。

CallFormメソッドの書き方

CallFormメソッドは、以下のように記述します。

  INVOKE  POW-SELF  ”CallForm”
                USING  ”フォーム名”
                          [”DLL名”]
                          [フォーム識別ID]
                RETURNING  復帰値
POW-SELF

これから子フォームを開こうとしている親フォーム自身を表しています。POW-SELFの代わりに、親フォーム自身のフォーム名を使うこともできます。

フォーム名については、「4.7 プロジェクト構成要素の命名規則」を参照してください。

フォーム名

これから開こうとしている子フォームの名前を指定します。

DLL名

開こうとしている子フォームが別のDLL(モジュール)に含まれている場合、そのDLLファイル名を指定します。

フォーム識別ID

複数の子フォームを開き、それらのどれかが閉じられた場合に、親フォームのCloseChildイベントで閉じられた子フォームを識別するために使用するIDです。

復帰値

子フォームが閉じられるときに、CloseFormメソッドで指定されたResultパラメタの値です。省略またはCloseFormメソッド以外の方法でクローズされた場合は、0が設定されます。それ以外の場合は、-1が設定されます。

CloseFormメソッドについての詳細は、『リファレンス』を参照してください。

CallFormメソッドとOpenFormメソッドの違い

OpenFormメソッドでフォームを開いた場合と異なるのは、CallFormメソッドで開いたフォームは、ダイアログボックスのように、開かれたフォームが閉じられるまで、呼び出し元のフォームの操作ができなくなることです。

たとえば、前項のOpenFormの説明で使用したサンプルプログラムTable2.ppjでは、[商品の追加]ウィンドウをCallFormメソッドで開いた場合、[商品の追加]ウィンドウを閉じるまで、[購入商品の入力画面]ウィンドウの操作ができなくなります。

つまり、OpenFormメソッドを呼び出すと、フォームが開かれていても、続いて次の処理が実行されますが、CallFormメソッドでは、フォームが閉じられるまで、呼び出し元の処理は停止しています。

また、CallFormメソッドは、復帰値を通して、開いたフォームから情報を受け取ることができます。復帰値を利用することにより、たとえば、ダイアログボックス形式でフォームを開いた場合、OKボタンがクリックされたか、キャンセルボタンがクリックされたかを簡単に判定することができます。使用例は、サンプルプログラム"SimpleForm\ReturnCheck.ppj"で、参照できます。CallFormメソッドについての詳細は、『リファレンス』を参照してください。