OpenActiveX.ppjおよびCallActiveX.ppjはメインフォームからサブフォームを開く方法を示したサンプルプログラムです。CallActiveX.ppjではサブフォームを同期的に開きます。つまり、サブフォームを閉じるまでメインフォームに制御が戻りません。これに対し、OpenActiveX.ppjではサブフォームを非同期的に開きます。この場合、メインフォームとサブフォームは並行して実行されます。OpenActiveX.ppjおよびCallActiveX.ppjは、ActiveX.ppjによって作成されるActiveXコントロールを使用しています。したがって、このサンプルプログラムを編集および実行するには、あらかじめActiveXコントロールをシステムに登録しておく必要があります。ActiveXコントロールを登録する手順については、「C.3.1 ActiveX.ppjの補足説明」を参照してください。
メインフォームからサブフォームを同期的に開くには、CallFormメソッドを使う方法に加え、以下の2つの方法があります。
サブフォームをオートメーションサーバとして開く方法
配置してあるサブフォームをアクティベートする方法
CallActiveX.ppjでは、これら2つの方法を説明しています。
サブフォームをオートメーションサーバとして開く方法
オートメーションサーバとして作成したサブフォームを、NetCOBOLのCOM連携機能を用いて開きます。この場合、一般にサブフォームがメインフォームを知る方法はありません。メインフォームが一方的にサブフォームを作成し、操作し、破棄します。
配置してあるサブフォームをアクティベートする方法
ActiveXコントロールとして作成したサブフォームを、メインフォームに配置します。初期状態として、サブフォームの属性を非可視にしておき、必要なときにActivateメソッドおよびDeactivateメソッドを用いて別ウィンドウに表示しています。この場合、サブフォームはメインフォームが作成されたときにロードされ、メインフォームが破棄されるまでアンロードされません。また、サブフォームからメインフォームへイベントを使って情報を通知することができます。