PF-Create-Panel-With-Shadow (値 19)

陰影効果をもったパネルを作成します。

パラメーター:

パネルのウィンドウは、作成されるだけで、使用不能です。つまり、表示されません。

PPB-Fill-Attribute pic x
PPB-Fill-Character pic x
PPB-First-Visible-Col pic 9(4) comp-x
PPB-First-Visible-Row pic 9(4) comp-x
PPB-Panel-Height pic 9(4) comp-x
PPB-Panel-ID pic 9(4) comp
PPB-Panel-Start-Column pic 9(4) comp-x
PPB-Panel-Start-Row pic 9(4) comp-x
PPB-Panel-Width pic 9(4) comp-x
PPB-Update-Mask pic x
PPB-Visible-Height pic 9(4) comp-x
PPB-Visible-Width pic 9(4) comp-x

入力パラメーター:

PPB-Fill-Attribute 陰影に使用される属性。
PPB-Fill-Character 陰影に使用される文字。
PPB-First-Visible-Col パネル内でのウィンドウの水平位置を指定します。値 0 は、ウィンドウの左端がパネルの左端に位置することを示します。
PPB-First-Visible-Row パネル内でのウィンドウの垂直位置を指定します。値 0 は、ウィンドウの上端がパネルの上端に位置することを示します。
PPB-Panel-Height 作成されるパネルのテキストの行数。
PPB-Panel-Start-Column 画面上でのパネルの水平位置を指定します。値 0 は、パネルの左端が画面の左端に位置することを示します。
PPB-Panel-Start-Row 画面上でのパネルの垂直位置を指定します。値 0 は、パネルの上端が画面の上端に位置することを示します。
PPB-Panel-Width 作成されるパネルのテキストの列数。
PPB-Update-Mask 陰影の幅。0 は 1 文字幅を示し、それ以外は 2 文字幅を示します。
PPB-Visible-Height 表示するウィンドウのテキストの行数。
PPB-Visible-Width 表示するウィンドウのテキストの列数。

出力パラメーター:

PPB-Panel-ID 作成されたパネルの識別ハンドル。プログラムの作業場所節内のデータ項目にこの値をコピーし、このパネルに対する機能を使用する場合に指定します。

説明:

Panels は、新しいパネルに対し、そのサイズに基づいて、メモリ領域を割り当てます。陰影をもつパネルに使用されるメモリのバイト数は、次のように決定されます。

4 × PPB-Panel-Height × PPB-Panel-Width

新しいパネルのサイズは、画面よりも大きくできますが、次のような制限があります。

  • PPB-Panel-Width を 2000 以下にする。
  • PPB-Panel-Height × PPB-Panel-Width を 65535 以下にする。

これらの制限のどちらかに違反すると、エラー コード 6 が返されます。

陰影をもつパネルを作成した後、幅、高さ、および陰影の詳細を除く任意の変数を変更できます。PF-Shift-Panel を使用します。新しく作成されたパネルは、現在の背景文字および属性で埋められます。陰影をもつパネルでの陰影効果は透過ではありません。

例:

次の例は、25 文字の幅で 8 行の高さのパネルを作成します。このパネルは、画面上の 1 行目、1 列目から始まります。このパネルのウィンドウは、パネルの最初の行、最初の列から始まります。このウィンドウは、25 文字幅で 6 行の高さです。

パネルの陰影は、1 文字幅で、グレーの帯状に見えます。

* Panel size is 20 characters wide by 15 lines
       move 25 to ppb-panel-width.
       move  8 to ppb-panel-height.
* The window starts on screen line 1, col 1. Remember that
* PPB-Panel-Start-Column and PPB-Panel-Start-Row specify a
* screen position, where 0,0 is the top left corner of the
* screen.
       move 0 to ppb-panel-start-row.
       move 0 to ppb-panel-start-column.
* The window into the panel is 20 char wide by 10 lines.
       move 25 to ppb-visible-width.
       move  6 to ppb-visible-height.
* The window starts on the first line and column of the panel
* Remember that 0,0 is the top left corner of the panel.
       move 0 to ppb-first-visible-row.
       move 0 to ppb-first-visible-col.
* Specify the shadowing for the panel
       move 0 to ppb-update-mask
       move space to ppb-fill-character
       move gray  to ppb-fill-attribute
* Create the panel. It is initially disabled (invisible).
       move pf-create-panel to ppb-function.
       call "PANELS" using panels-parameter-block.
       if ppb-status not = zero
*         (code to abort)
            ...
* Save the panel identifier.
       move ppb-panel-id to ws-save-panel-id.