後で復元するために画面の領域 (テキストおよび属性) を保存します。
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 を渡すことはできません。