PF-Read-Panel (値 12)

パネルからテキストおよび属性を読み取り、呼び出し元のプログラムで指定されているバッファーに格納します。

パラメーター:

attribute-buffer pic x(n)
PPB-Buffer-Offset pic 9(4) comp-x
PPB-Panel-ID pic 9(4) comp-x
PPB-Rectangle-Offset pic 9(4) comp-x
PPB-Update-Count pic 9(4) comp-x
PPB-Update-Height pic 9(4) comp-x
PPB-Update-Mask pic x
PPB-Update-Start-Col pic 9(4) comp-x
PPB-Update-Start-Row pic 9(4) comp-x
PPB-Update-Width pic 9(4) comp-x
PPB-Vertical-Stride pic 9(4) comp-x
text-buffer pic x(n)

入力パラメーター:

attribute-buffer PPB-Update-Mask のビット 1 が設定されている場合は、パネルから読み取った属性を保持するバッファーを指定します。
PPB-Buffer-Offset 更新領域から読み取った最初の文字は、テキスト バッファーに置かれます。
PPB-Panel-ID 読み取り元となるパネルの識別ハンドル。
PPB-Rectangle-Offset 更新領域から読み取らない文字数。
PPB-Update-Count 更新領域から読み取る文字数。
PPB-Update-Height 読み取り元となる更新領域の高さ。
PPB-Update-Mask ビット 0 が設定されている場合は、パネルから読み取ったテキストがテキスト バッファーに保存されます。ビット 1 が設定されている場合は、パネルから読み取った属性が属性バッファーに保存されます。
PPB-Update-Start-Col 読み取り元となる指定パネルの最初の列。
PPB-Update-Start-Row 読み取り元となる指定パネルの最初の行。
PPB-Update-Width 読み取り元となる更新領域の幅。
PPB-Vertical-Stride テキスト バッファーの行幅。
text-buffer PPB-Update-Mask のビット 0 が設定されている場合は、パネルから読み取ったテキストを保持するバッファーを指定します。

出力パラメーター:

なし

説明:

PF-Read-Panel は ACCEPT 文のようには動作しません。つまり、ユーザーはパネルに情報を入力できません。ユーザーからの情報を取得するには、ACCEPT 文を使用する必要があります。

Panels が格納するデータを収容するのに十分なバッファーであることを確認します。バッファーが十分でない場合は、Panels はプログラムの作業場所節にあるバッファーの次の項目にも情報を上書きします。

例:

この例は、10 文字の幅で 30 行の高さのパネルを仮定しています。パネルのハンドルは、ws-save-panel-id に保存されています。

この例は、7 行目の最初の列からパネルの末尾までの部分を読み取ります。テキストのみ (属性を含まず) が、プログラムの作業場所節に定義されている text-buffer に読み込まれます。

* Define an update rectangle to read from. In this case, 
* define the rectangle from line 7 through line 30 of the 
* panel. This is a total of 24 lines and each line is 10 
* characters wide.
       move 10 to ppb-update-width.
       move 24 to ppb-update-height.

* Start reading beginning with the 7th line and first column
* of the panel. (0,0 is the top left-hand corner of the 
* panel.)
       move 6 to ppb-update-start-row.
       move 0 to ppb-update-start col.

* Within the rectangle, read beginning with the first 
* character (where 0 is the top left-hand corner of the 
* rectangle).
       move 0 to ppb-rectangle-offset.
* Read 240 characters into the buffers (24 lines times 10
* characters per line).
       move 240 to ppb-update-count.
* Read updates beginning with the first character of the 
* buffer.
       move 1 to ppb-buffer-offset.
* One row of the update rectangle is 10 characters wide.
       move 10 to ppb-vertical-stride.
* Read text only, not attributes (set bit 0 of 
* PPB-Update-Mask).
       move x"01" to ppb-update-mask.
* The panel identifier was saved in ws-save-panel-id.
       move ws-save-panel-id to ppb-panel-id.
* Read text from the panel into text-buffer, defined
* as PIC X(240).
       move pf-read-panel to ppb-function.
       call "PANELS" using panels-parameter-block
       text-buffer.
       if ppb-status not = zero
*          (code to abort)