CBL_SCR_RESTORE

CBL_SCR_SAVE 名前呼び出しルーチンの呼び出しで以前に保存された文字表示モード画面の領域を復元します。

注: このルーチンはネイティブ COBOL でのみサポートされます。

構文:

call NoReturnCode "CBL_SCR_RESTORE" using by value     flags
                                                       handle

パラメーター:

  呼び出しプロトタイプ使用時 (「説明の読み方」を参照) PIC
flags cblt-x4-comp5 pic x(4) comp-5
handle cblt-pointer USAGE POINTER

入力パラメーター:

flags 現在は常にゼロにする必要があります。
handle CBL_SCR_SAVE 名前呼び出しルーチンの呼び出しで以前に返された「保存ハンドル」。このハンドルは NULL にすることができます。その場合、呼び出しても何も実行されません。

出力パラメーター:

handle 変更されませんが、無効です。CBL_SCR_SAVE ルーチンをさらに呼び出して有効な「保存ハンドル」を後で再割り当てしていない限り、CBL_SCR_RESTORE に再度渡すことはできません。CBL_SCR_RESTORE から戻った時点で直ちにこのポインターを NULL に設定することをお勧めします。handle を返した CBL_SCR_SAVE の呼び出しが行われた際に保存された画面の領域が、同じ位置で画面に書き込まれます。

説明:

flags パラメーターは、BY VALUE、つまり値で渡されるため、数値リテラルとして指定することもできます(「BY VALUE 0 SIZE 4」など)。

この呼び出しでは、状態値は返されません。したがって、特殊名節で定義した適切な呼び出し規約 (構文の説明で提示) を使用して呼び出す必要があります。この目的に適した規約は 4 です。

CBL_SCR_RESTORE は、画面の領域を直接書き込むよりも次の点で優れています。

  • プログラムの作業場所節に無駄なバッファー スペースを割り当てる必要がありません。
  • 1 バイト属性メソッドを使用した画面の書き込み (CBL_READ_SCR_ATTRS など) では、汎用属性システムを介した間接的な処理が必要となるため、現在のパレットにない属性について最も一致するものを推測する必要があります。特定のシステム (デフォルトのパレットはモノクロだが ADIS によるカラー表示が可能な UNIX など) では、この属性を画面に書き戻すと、非常に不正確な結果になる場合があります。このような影響を最小限に抑えるために、この呼び出しでは、画面内容の内部表現を実際に保存して、情報損失の可能性を排除します。
  • この呼び出しは非常に高速です。

CBL_SCR_RESTORE を呼び出す前にモードが以前の設定に復元される場合は、CBL_SCR_SAVE によって画面の領域を保存した後、画面のモードを変更する (たとえば、画面を 132 列モードに切り替える) ことが可能です。それ以外の場合、結果は不定になります。