RM/Panels は、ウィンドウ形式のアプリケーションをサポートするように設計されており、画面上のさまざまな場所にパネルを表示 (または「ポップアップ」) できます。このタイプのアプリケーションは簡単に作成できますが、考慮すべき特別な事項がいくつかあります。ポップアップ アプリケーションを作成するための 3 つの手順を次に示します。
ポップアップ パネルの要求を検出する。ウィンドウ形式のアプリケーションをコーディングする際の最初のステップは、ポップアップ パネルを表示する必要性を示す条件を検出することです。これはどのような条件でも構いませんが、一般的には、特別なキーボード操作、プッシュ ボタン、またはメニュー コマンドです。検出は、通常、EXECUTE EVENT 標準ランタイム関数に基づくイベント ループ内のテストになります。これを次のコード フラグメントで示します。
DEMONSTRATE-FUNCTION. PERFORM RMP--EE-PANEL5. IF F3-KEY AND (RMP--LAST-FIELD = "CUST-SHIP-CODE") PERFORM SHIP-CODE-DETAILS
CUST-SHIP-CODE フィールドへの入力時に F3 キーを押すと、ポップアップ パネルを制御する SHIP-CODE-DETAILS プロシージャが実行されます。
ポップアップ パネルを表示、使用、および削除する。ポップアップ パネルは他のパネルと同様に使用されますが、重要な違いが 1 つあります。「パネルをウィンドウにする」パラメーターを選択するか、ランタイム実行時に、パネルが表示される前に RMP--WINDOW を TRUE に設定する必要があります。これらのいずれも行わなかった場合、表示からパネルを正常に削除できなくなります。
次のコード フラグメントは、ポップアップ パネルを表示、使用、および削除する方法を示しています。
SHIP-CODE-DETAILS. PERFORM RMP--DP-PANEL6. SET RMP--FIRST-FIELD TO TRUE. PERFORM RMP--EE-PANEL6 WITH TEST AFTER UNTIL ESCAPE-KEY. PERFORM RMP--RP-PANEL6.
このパネルはウィンドウ化オプションを選択して作成されているため、コードは通常のパネルを使用する場合と変わりません。パネルが表示され、ユーザー入力のためにイベント ループが使用された後、パネルが削除され、画面の内容が復元されます。
RMP--REPEAT-EVENT を TRUE に設定する
これにより、キーボード フォーカスが、パネル上で最後にフォーカスが当たっていたフィールド/コントロールに戻ります。
これにより、キーボード フォーカスが、パネル上の最初の有効なフィールド/コントロールに設定されます。
これにより、キーボード フォーカスが、指定したフィールド/コントロールに移動されます。
また、内側のループの終了条件によって元のループが終了されないように注意する必要もあります。次のプログラムでは、この問題を防ぐために、ゼロを RMP--EXCEPTION-NUMBER に指定して、元のループの再開時に Esc キーの条件が false になるようにしています。次のコードは、最初のステップで示したサンプルの後に続きます。
SET RMP--REPEAT-EVENT TO TRUE MOVE 0 TO RMP--EXCEPTION-NUMBER.