# 日本語 OpenVMS
日本語画面管理ライブラリ
利用者の手引き

前へ | 次へ | 目次 | 索引

# SMG$END_DISPLAY_UPDATE

> End Display Update ルーチンは，仮想ディスプレイに対するバッチ更新処理を終了します。

## 形式

> SMG$END_DISPLAY_UPDATE display-id

## 戻り値

> VMS 用法: | cond_value
> データ型: | longword (unsigned)
> アクセス: | write only
> 受け渡し方: | by value

## 引数

> ### display-id

> OpenVMS 用法 | identifier
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 影響を受ける仮想ディスプレイを指定します。display-id 引数は，ディスプレイ識別子を格納した符号なしロングワードのアドレスです。

> display-id 引数は SMG$CREATE_VIRTUAL_DISPLAY ルーチンから戻されます。

## 説明

> SMG$END_DISPLAY_UPDATE は SMG$BEGIN_DISPLAY_UPDATE と組み合わせて使用し，特定の仮想ディスプレイに対する出力のバッチ処理を制御します。SMG$BEGIN_DISPLAY_UPDATE を呼び出すたびに，"バッチ・カウント" が増分され，それに対し， SMG$END_DISPLAY_UPDATE を呼び出すと，そのたびにこのカウントは減分されます。バッチ・カウントが 0 になると，仮想ディスプレイはバッチ処理中に実行されたすべての操作によって更新され，仮想ディスプレイがペーストされている場合には，ペーストボードに書き込まれます。

> バッチ・カウントが 0 のときに SMG$END_DISPLAY_UPDATE を呼び出す操作は正しい操作です。したがって，正常終了状態が戻されます。

## 戻される状態値

> SS$_NORMAL | 正常終了。
> SMG$_BATSTIPRO | 正常終了。バッチ処理はまだ実行中です。
> SMG$_BATWASOFF | 正常終了。バッチ処理はすでに終了しています。
> SMG$_INVDIS_ID | display-id 引数に誤りがあります。
> SMG$_WRONUMARG | 引数の数が誤っています。

# SMG$END_PASTEBOARD_UPDATE

> End Pasteboard Update ルーチンは，ペーストボードに対するバッチ更新処理を終了します。

## 形式

> SMG$END_PASTEBOARD_UPDATE pasteboard-id

## 戻り値

> ###

> OpenVMS 用法 | cond_value
> データ型 | longword (unsigned)
> アクセス | write only
> 受け渡し方 | by value

## 引数

> ### pasteboard-id

> OpenVMS 用法 | identifier
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> バッチ・カウントを減分させるペーストボードを指定します。 pasteboard-id 引数は，ペーストボード識別子を格納した符号なしロングワードのアドレスです。

> この引数は SMG$CREATE_PASTEBOARD ルーチンによって与えられます。バッチ・カウントが 0 になると，バッファに格納されていた指定されたペーストボードに対するすべての出力がペーストボードに書き込まれます。

## 説明

> SMG$END_PASTEBOARD_UPDATE ルーチンは SMG$BEGIN_PASTEBOARD_UPDATE ルーチンと組み合わせて使用し，特定のペーストボードに対する出力バッチ処理を制御します。 SMG$BEGIN_PASTEBOARD_UPDATE ルーチンを呼び出すと，そのたびに "バッチ・カウント" が増分されます。それに対し， SMG$END_PASTEBOARD_UPDATE ルーチンを呼び出すと，そのたびにこのカウントは減分されます。バッチ・カウントが 0 になると，ペーストボードは画面に出力されます。

> バッチ・カウントが 0 のときに SMG$END_PASTEBOARD_UPDATE ルーチンを呼び出すのは有効な操作です。このときは，正常終了の状態値が戻されます。

## 戻される状態値

> SS$_NORMAL | 正常終了。
> SMG$_BATSTIPRO | 正常終了。バッチ処理はまだ実行中です。
> SMG$_BATWASOFF | 正常終了。バッチ処理はすでに終了しています。
> SMG$_INVDIS_ID | display-id 引数に誤りがあります。
> SMG$_WRONUMARG | 引数の数が誤っています。

# SMG$ERASE_CHARS

> Erase Characters ルーチンは，仮想ディスプレイ内のカラムを消去してそれらを空白と置き換えます。

## 形式

> SMG$ERASE_CHARS display-id ,number-of-columns ,start-row ,start-column

## 戻り値

> ###

> OpenVMS 用法 | cond_value
> データ型 | longword (unsigned)
> アクセス | write only
> 受け渡し方 | by value

## 引数

> ### display-id

> OpenVMS 用法 | identifier
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> カラムが消去される仮想ディスプレイの識別子。 display-id 引数は，仮想ディスプレイの識別子を格納した符号なしロングワードのアドレスです。

> この引数は SMG$CREATE_VIRTUAL_DISPLAY ルーチンによって与えられます。

> ### number-of-columns

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 消去するカラム数。 number-of-columns 引数は，消去するカラム数を格納した符号付きロングワードのアドレスです。

> ### start-row

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> カラム消去開始行。 start-row 引数は，消去操作を開始する行の位置を格納した符号付きロングワードのアドレスです。

> ### start-column

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> カラム消去操作の開始カラム。 start-column 引数は，消去操作を開始するカラム位置を格納した符号付きロングワードのアドレスです。

> 指定カラムが全角文字の右半分である場合は，その文字の右半分は空白になり，左半分は未定義文字になります。

## 説明

> SMG$ERASE_CHARS ルーチンは，仮想ディスプレイのカラムを空白に置換することにより，それらのカラムを消去します。消去操作では指定された行だけが変更されます。 number-of-columns 引数の値がその行のカラム数より大きい場合は，指定された開始位置からその行の最後までのカラムが消去されます。このルーチンを終了した後，仮想カーソルは消去された最初のカラム位置に移動します。

> DEC漢字または Super DEC 漢字文字集合を使用している際に，全角文字の右半分から消去操作が始まる場合は，その文字の右半分は空白になり，左半分は未定義文字になります。また，全角文字の左半分で消去操作が終了する場合は，その文字の右半分は未定義文字になります。

## 戻される状態値

> SS$_NORMAL | 正常終了。
> SMG$_INVCOL | カラム位置が誤っています。指定されたカラムは仮想ディスプレイの内部に含まれていません。
> SMG$_INVDIS_ID | display-id 引数が誤っています。
> SMG$_INVROW | 行の位置が誤っています。
> SMG$_WRONUMARG | 引数の数が誤っています。

## 例

#1
    C+
    C This FORTRAN example demonstrates the use of SMG$ERASE_CHARS.
    C
    C Include the SMG definitions. In particular, we want SMG$M_BORDER.
    C-

            IMPLICIT INTEGER (A-Z)
            INCLUDE '($SMGDEF)'

    C+
    C Create a virtual display with a border by calling
    C SMG$CREATE_VIRTUAL_DISPLAY.
    C-

            ROWS = 7
            COLUMNS = 50

            STATUS = SMG$CREATE_VIRTUAL_DISPLAY
         1          (ROWS, COLUMNS, DISPLAY1, SMG$M_BORDER)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

    C+
    C Call SMG$CREATE_PASTEBOARD to create the pasteboard.
    C-

            STATUS = SMG$CREATE_PASTEBOARD (PASTE1)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

    C+
    C Using SMG$PUT_CHARS, put data in the virtual display.
    C-

            STATUS = SMG$PUT_CHARS ( DISPLAY1,
         1  ' This virtual display has 7 rows and 50 columns.', 2, 1)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

            STATUS = SMG$PUT_CHARS ( DISPLAY1,
         1          ' This is a bordered virtual display.', 4, 1)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

            STATUS = SMG$PUT_CHARS ( DISPLAY1,
         1  ' SMG$PUT_CHARS puts data in this virtual display.', 6, 1)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

    C+
    C Call SMG$PASTE_VIRTUAL_DISPLAY to paste the virtual display.
    C-

            STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 4, 15)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

    C+
    C Erase 4 characters on row 4 starting from character (column) 14 by
    C calling SMG$ERASE_CHARS.  This will remove the characters "rder"
    C from the word "bordered".
    C-

            STATUS = SMG$ERASE_CHARS ( DISPLAY1, 4, 4, 14)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

            END

> この FORTRAN プログラムによって生成される最初の出力は 図 8-17 に示すとおりです。

> 図 8-17 SMG$ERASE_CHARS ルーチンを呼び出す前に生成される出力

SMG$ERASE_CHARS ルーチンを呼び出した後に生成される出力は 図 8-18 に示すとおりです。

図 8-18 SMG$ERASE_CHARS ルーチンを呼び出した後に生成される出力

# SMG$ERASE_COLUMN

> Erase Column From Display ルーチンは，仮想ディスプレイの指定された部分を，指定された位置からカラムの最後まで消去します。

## 形式

> SMG$ERASE_COLUMN display-id [,start-row] [,column-number] [,end-row]

## 戻り値

> ###

> OpenVMS 用法 | cond_value
> データ型 | longword (unsigned)
> アクセス | write only
> 受け渡し方 | by value

## 引数

> ### display-id

> OpenVMS 用法 | identifier
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 影響を受ける仮想ディスプレイの識別子。display-id 引数は，この仮想ディスプレイ識別子を格納した符号なしロングワードのアドレスです。

> ### start-row

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 消去操作を開始する行番号(省略可能)。start-row 引数は，行番号を格納した符号付きロングワードのアドレスです。この引数を省略した場合には， column-number 引数は無視され，消去操作はその仮想ディスプレイの仮想カーソルの現在の位置から開始されます。

> ### column-number

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 消去操作が開始されるカラム番号(省略可能)。 column-number 引数は，カラム番号を格納した符号付きロングワードのアドレスです。この引数を省略した場合には， start-row 引数は無視され，消去操作はその仮想ディスプレイの仮想カーソルの現在の位置から開始されます。 column-number 引数が，全角文字の右半分である場合には，その文字の左半分は未定義文字になります。また，column-number 引数が，全角文字の左半分である場合には，その文字の右半分は未定義文字になります。

> ### end-row

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 消去操作を終了する行番号(省略可能)。end-row 引数は，行番号を格納した符号付きロングワードのアドレスです。

## 説明

> SMG$ERASE_COLUMNルーチンを使用すれば，仮想ディスプレイのカラムを，指定した位置からそのカラムの最後まで消去できます。位置を指定しなかった場合には，消去操作は指定された仮想ディスプレイの仮想カーソルの現在の位置から開始されます。消去操作が正常終了した後，このルーチンは消去した最初の文字位置に仮想カーソルを移動します。

> DEC漢字または Super DEC 漢字文字集合が使用され，削除操作が全角文字の右半分で行われる場合，文字の左半分は未定義文字になります。また，削除操作が全角文字の左半分で行われる場合，文字の右半分は未定義文字になります。

## 戻される状態値

> SS$_NORMAL | 正常終了。
> SMG$_INVCOL | カラム番号が誤っています。指定されたカラムは仮想ディスプレイの外部です。
> SMG$_INVDIS_ID | display-id 引数に誤りがあります。
> SMG$_INVROW | 行番号が誤っています。指定された行は仮想ディスプレイの外部です。
> SMG$_WRONUMARG | 引数の数が誤っています。

# SMG$ERASE_DISPLAY

> Erase Virtual Display ルーチンは，仮想ディスプレイ全体または一部を消去しテキスト文字を空白で置き換えます。

## 形式

> SMG$ERASE_DISPLAY display-id [,start-row] [,start-column] [,end-row] [,end-column]

## 戻り値

> ###

> OpenVMS 用法 | cond_value
> データ型 | longword (unsigned)
> アクセス | write only
> 受け渡し方 | by value

## 引数

> ### display-id

> OpenVMS 用法 | identifier
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 消去される仮想ディスプレイの識別子。 display-id 引数は，仮想ディスプレイの識別子を格納した符号なしロングワードのアドレスです。

> この引数は SMG$CREATE_VIRTUAL_DISPLAY ルーチンによって与えられます。

> ### start-row

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 消去操作を始める行。 start-row 引数は，消去操作が開始される行の位置を格納した符号付きロングワードのアドレスです。

> start-row 引数を省略した場合は，start-column 引数も無視されて仮想ディスプレイ全体が消去されます。start-row 引数と start-column 引数を指定しなかった場合は，end-row 引数と end-column 引数は無視されて，仮想ディスプレイ全体が消去されます。

> ### start-column

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 消去操作を始めるカラム。 start-column 引数は，消去操作が開始されるカラム位置を格納した符号付きロングワードのアドレスです。

> start-column 引数を省略した場合は，start-row 引数も無視されて仮想ディスプレイ全体が消去されます。start-row 引数と start-column 引数を省略した場合は，end-row 引数と end-column 引数は無視されて仮想ディスプレイ全体が消去されます。

> 全角文字の右半分から消去操作が始まる場合は，その文字の左半分は未定義文字になります。

> ### end-row

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 消去操作を終了する行。 end-row 引数は，最後に消去する行の位置を格納した符号付きロングワードのアドレスです。最後に消去する行を指定します。

> end-row 引数を省略した場合は，end-column 引数も無視されて仮想ディスプレイ内の残りのすべての行が消去されます。

> ### end-column

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 消去操作を終了するカラム。 end-column 引数は，最後に消去するカラム位置を格納した符号付きロングワードのアドレスです。最後に消去するカラムを指定します。

> end-column 引数を省略した場合は， end-row 引数は無視されて仮想ディスプレイ内の残りのすべてのカラムが消去されます。

> 全角文字の左半分で消去操作が終了する場合は，その文字の右半分は未定義文字になります。

## 説明

> SMG$ERASE_DISPLAY ルーチンを実行すると，仮想ディスプレイ全体またはその一部が消去され，テキスト文字は空白に置換されます。開始位置を省略した場合は1行目，1カラム目に設定されます。終了位置を省略した場合は，仮想ディスプレイの最後の行または最後のカラムになります。したがって，display-id 引数だけを指定すれば，仮想ディスプレイ全体を消去できます。この操作を実行した後，カーソルは，消去した部分の最初の位置に設定されます。仮想ディスプレイ全体を消去した場合は，仮想カーソルは1行目，1カラム目に設定されます。

> DEC漢字または Super DEC 漢字文字集合を使用している際に，全角文字の右半分から消去操作が始まる場合には，その文字の左半分は未定義文字になります。また，全角文字の左半分で消去操作が終了する場合は，その文字の右半分は未定義文字になります。

## 戻される状態値

> SS$_NORMAL | 正常終了。
> SMG$_INVCOL | カラム位置が誤っています。指定されたカラムは仮想ディスプレイの内部に含まれていません。
> SMG$_INVDIS_ID | display-id 引数が誤っています。
> SMG$_INVROW | 行の位置が誤っています。指定された行は仮想ディスプレイの内部に含まれていません。
> SMG$_WRONUMARG | 引数の数が誤っています。

## 例

#1
    C+
    C This FORTRAN example program demonstrates the use of SMG$ERASE_DISPLAY.
    C-

            IMPLICIT INTEGER (A-Z)

    C+
    C Call SMG$CREATE_VIRTUAL_DISPLAY to create the virtual
    C display. To give it a border, set BORDER = 1.
    C No border would be BORDER = 0.
    C-

            ROWS = 7
            COLUMNS = 50
            BORDER = 1

            STATUS = SMG$CREATE_VIRTUAL_DISPLAY
         1                        (ROWS, COLUMNS, DISPLAY1, BORDER)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

    C+
    C Using SMG$CREATE_PASTEBOARD, create the pasteboard.
    C-

            STATUS = SMG$CREATE_PASTEBOARD (PASTE1)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

    C+
    C Call SMG$PUT_CHARS to put data in the virtual display.
    C-
            STATUS = SMG$PUT_CHARS ( DISPLAY1,
         1        ' This virtual display has 7 rows and 50 columns.', 2, 1)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

            STATUS = SMG$PUT_CHARS ( DISPLAY1,
         1        ' This is a bordered virtual display.', 4, 1)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

            STATUS = SMG$PUT_CHARS ( DISPLAY1,
         1        ' SMG$PUT_CHARS puts data in this virtual display.', 6, 1)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

    C+
    C Paste the virtual display by calling SMG$PASTE_VIRTUAL_DISPLAY.
    C-

            STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 4, 15)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

    C+
    C Call SMG$ERASE_DISPLAY to erase the display from row 2,
    C column 6, through row 4, column 28.
    C-

            STATUS = SMG$ERASE_DISPLAY ( DISPLAY1, 2, 6, 4, 28)
            IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS))

            END

> 前へ | 次へ | 目次 | 索引