後で復元するために画面の領域 (テキストおよび属性) を保存します。
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 値になります。 |
サイズを問わず、画面全体を保存する場合は、次のようになります。
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.
説明:
3 つのパラメーターは、BY VALUE、つまり値で渡されるため、数値リテラルとして指定することもできます(「BY VALUE 12 SIZE 4」など)。
CBL_SCR_SAVE は、画面の領域を直接読み取るよりも次の点で優れています。
後で handle を CBL_SCR_RESTORE ルーチンに渡さなかった場合、画面情報を保存するために割り当てられたコア メモリが失われます。そのため、返されたハンドルを使用した CBL_SCR_RESTORE の呼び出しに繰り返し失敗すると、メモリ リークが発生します。
CBL_SCR_RESTORE 以外のルーチンに handle を渡すことはできません。