CBL_SCR_SAVE

後で復元するために画面の領域 (テキストおよび属性) を保存します。

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

構文:

call "CBL_SCR_SAVE" using by value       flags
                                         top-line
                                         bottom-line
                               returning handle.

パラメーター:

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

入力パラメーター:

flags 現在は常にゼロにする必要があります。
top-line 保存する領域の画面の一番上に最も近い行。1 行目が先頭行です。
bottom-line 保存する領域の画面の一番下に最も近い行。1 行目が先頭行です。

top-line と bottom-line の間の領域 (top-line および bottom-line の各行を含む) が保存されます。したがって、top-line と bottom-line が同じである場合は、その 1 行だけが保存されます。

top-line または bottom-line にゼロを指定すると、画面上の最後の行と見なされます。これにより、画面全体を保存する場合などに、画面のサイズを確認する必要がなくなります。

top-line の論理値は、bottom-line の論理値以下である必要があります。

出力パラメーター:

handle 後で CBL_SCR_RESTORE 名前呼び出しルーチンに渡すことができる「保存ハンドル」が格納されています。または、保存操作を実行できなかった (無効なパラメーターやメモリ不足のため) 場合には NULL 値になります。

説明:

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

CBL_SCR_SAVE は、画面の領域を直接読み取るよりも次の点で優れています。

  • プログラムの作業場所節に無駄なバッファー スペースを割り当てる必要がありません。
  • 1 バイト属性メソッドを使用した画面の書き込み (CBL_READ_SCR_ATTRS など) では、汎用属性システムを介した間接的な処理が必要となるため、現在のパレットにない属性について最も一致するものを推測する必要があります。
  • この呼び出しは非常に高速です。

後で handle を CBL_SCR_RESTORE ルーチンに渡さなかった場合、画面情報を保存するために割り当てられたコア メモリが失われます。そのため、返されたハンドルを使用した CBL_SCR_RESTORE の呼び出しに繰り返し失敗すると、メモリ リークが発生します。

CBL_SCR_RESTORE 以外のルーチンに handle を渡すことはできません。

例:

サイズを問わず、画面全体を保存する場合は、次のようになります。

call "CBL_SCR_SAVE" using by value 0 size 4 
                                   1 size 4 
                                   0 size 4 
                         returning handle.

画面の最後の行だけを保存する場合は、次のようになります。

call "CBL_SCR_SAVE" using by value 0 size 4
                                   0 size 4
                                   0 size 4
                         returning handle.

画面の一番上から 3 行を保存する場合は、次のようになります。

call "CBL_SCR_SAVE" using by value 0 size 4
                                   1 size 4
                                   3 size 4
                         returning handle.