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


前へ 次へ 目次 索引



SMG$PASTE_VIRTUAL_DISPLAY

Paste Virtual Display ルーチンは,仮想ディスプレイをペーストボードにペーストします。

形式

SMG$PASTE_VIRTUAL_DISPLAY


戻り値

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 ルーチンによって与えられます。

pasteboard-id

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


仮想ディスプレイがペーストされるペーストボードの識別子。 pasteboard-id 引数は,ペーストボード識別子を格納した符号なしロングワードのアドレスです。

pasteboard-row

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


指定された仮想ディスプレイの1行目が置かれるペーストボードの行。 pasteboard-row 引数は,行の位置を格納した符号付きロングワードのアドレスです。

pasteboard-row 引数が省略された場合,仮想ディスプレイがペーストされた最後の行が用いられます。pasteboard-row 引数が省略され,かつ仮想ディスプレイが1度もペーストされなかったことがない場合には1行目が用いられます。

pasteboard-column

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


指定された仮想ディスプレイの1カラム目が置かれるペーストボードのカラム。 pasteboard-column 引数は,カラム位置を格納した符号付きロングワードのアドレスです。

pasteboard-columm 引数が省略された場合,仮想ディスプレイがペーストされた最後のカラムが用いられます。pasteboard-columm 引数が省略され,かつ仮想ディスプレイが1度もペーストされなかったことがない場合には,1カラム目が用いられます。

top-display-id

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


display-id 引数で指定された仮想ディスプレイをその下にペーストする仮想ディスプレイの識別子。 top-display-id 引数は省略可能で,この識別子を格納した符号なしロングワードのアドレスです。この引数で指定された仮想ディスプレイはすでにペーストされていなくてはいけません。


説明

top-display-id 引数が指定されていない場合, SMG$PASTE_VIRTUAL_DISPLAY はペーストボードに仮想ディスプレイを置き,仮想ディスプレイを表示可能にします。top-display-id 引数が指定されている場合は,SMG$PASTE_VIRTUAL_DISPLAY は top-display-id 引数で指定された仮想ディスプレイの下に display-id 引数で指定された仮想ディスプレイをペーストします。この場合,top-display-id 引数で指定された仮想ディスプレイはすでにペーストされていなくてはなりません。

仮想ディスプレイがバッチ処理されている場合はこのルーチンを使用してはいけません。


戻される状態値

SS$_NORMAL 正常終了。
SMG$_ILLBATFNC 仮想ディスプレイはバッチ処理されています。誤操作です。
SMG$_INVDIS_ID display-id 引数が誤っています。
SMG$_INVPAS_ID pasteboard-id 引数が誤っています。
SMG$_WRONUMARG 引数の数が誤っています。


SMG$POP_VIRTUAL_DISPLAY

Delete a Series of Virtual Displays ルーチンは,指定された仮想ディスプレイを削除し,さらに指定されたペーストボード上の指定された仮想ディスプレイの上にペーストされているすべてのディスプレイを削除します。

形式

SMG$POP_VIRTUAL_DISPLAY display-id ,pasteboard-id


戻り値

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 ルーチンによって与えられます。

pasteboard-id

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


ディスプレイの削除操作が実行されるペーストボードを指定します。 pasteboard-id 引数は,ペーストボード識別子を格納した符号なしロングワードのアドレスです。


説明

SMG$POP_VIRTUAL_DISPLAY ルーチンは,指定されたペーストボードから 1 つ以上のディスプレイを削除します(単にペーストを取り消すだけではありません)。この場合,指定されたディスプレイから削除を開始し,その後,そのディスプレイよりペースト順序が上にあるすべてのディスプレイも削除します(つまり,指定されたディスプレイの後でペーストされたすべてのディスプレイを削除します)。

戻される状態値

SS$_NORMAL 正常終了。
SMG$_INVDIS_ID display-id 引数に誤りがあります。
SMG$_INVPAS_ID pasteboard-id 引数に誤りがあります。
SMG$_WRONUMARG 引数の数が誤っています。


SMG$PUT_CHARS

Write Characters to a Virtual Display ルーチンは,仮想ディスプレイ内に指定されたテキストを書き込みます。

形式

SMG$PUT_CHARS display-id ,text [,start-row] [,start-column] [,flags] [,rendition-set] [,rendition-complement] [,character-set]


戻り値

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 ルーチンによって与えられます。

text


VMS 用法: char_string
データ型: character string
アクセス: read only
受け渡し方: by descriptor


仮想ディスプレイへ書き込まれる文字。 text 引数は,文字列を示すディスクリプタのアドレスです。

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 引数は,カラム位置を格納した符号付きロングワードのアドレスです。この引数を省略した場合は,出力は現在のカラムから開始されます。
全角文字の右半分からカラムが始まる場合は,その文字の左半分は未定義文字になります。

flags

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


文字書き込み前の動作を指定する省略可能なビット・マスク。 flags 引数は,フラグを格納した符号なしロングワードのアドレスです。この引数に対して指定できる値は次のとおりです。

0 行を消去しないことを指定します(省略時の設定値)。
SMG$M_ERASE_LINE 行全体を消去します。
SMG$M_ERASE_TO_EOL 行の残りの部分を消去します。

rendition-set

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


属性指定子。 rendition-set 引数は省略可能で,ロングワード・ビット・マスクのアドレスです。この引数で指定する属性が仮想ディスプレイ上に設定されます。この引数に対して指定できる値は次のとおりです。

SMG$M_BLINK 点滅する文字を表示します。
SMG$M_BOLD 通常の輝度より高い輝度で文字を表示します。
SMG$M_INVISIBLE 表示されない文字を指定します。つまり,仮想ディスプレイに存在していても,ペーストボードに表示されない文字を指定します。
SMG$M_REVERSE 文字を反転表示します。つまり,仮想表示の現在のシステム設定値の属性とは逆の状態で表示します。
SMG$M_UNDERLINE 下線を付けた文字を表示します。
SMG$M_USER1 から SMG$M_USER8 ユーザ定義属性を表示します。

rendition-complement

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


属性補足指定子。 rendition-complement 引数は省略可能で,ロングワード・ビット・マスクのアドレスです。この引数で指定する補足的な属性が仮想ディスプレイ上に設定されます。rendition-set 引数で指定できる引数はすべて, rendition-complement 引数で補足指定することができます。

rendition-set 引数と rendition-complement 引数は省略可能で,これらの引数を使用して仮想ディスプレイの各属性を制御することができます。 rendition-set 引数は仮想ディスプレイの特定の属性を設定するのに対し,rendition-complement 引数はこれらの属性を補足します。 rendition-set 引数と rendition-complement 引数の両方に同じビットを指定した場合は,最初に rendition-set 引数が評価され,その後,rendition-complement 引数が評価されます。これら 2 つの引数を組み合わせて使用することにより,ユーザは 1 回のプロシージャ呼び出しで仮想ディスプレイの各属性を制御できます。各属性で次の変換が可能です。

設定 補足 動作
0 0 属性を省略時の状態に設定する。
1 0 属性を有効にする。
0 1 属性を省略時の逆の状態に設定する。
1 1 属性を無効にする。

character-set

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


挿入されるテキストの文字集合。 character-set 引数は,文字集合コードを格納した符号なしロングワードのアドレスです。この引数を省略した場合は,SMG$CREATE_VIRTUAL_DISPLAY ルーチンまたは SMG$CHANGE_VIRTUAL_DISPLAY ルーチンで設定された値が使用されます。

文字集合 (コードセット)
SMG$C_ASCII ASCII文字集合
SMG$C_SPEC_GRAPHICS DEC特殊文字集合
SMG$C_SUPPLEMENTAL 補助文字集合 1
SMG$C_KANJI DEC漢字文字集合
SMG$C_JIS_KANA JISカタカナ文字集合
SMG$C_SDK Super DEC 漢字コードセット


1DEC 補助文字集合または Latin-1 文字集合のいずれか。


説明

SMG$PUT_CHARS ルーチンはテキストを指定された仮想ディスプレイに書き込み,既存のテキストを置換します。このルーチンは 1 行だけを書き込みます。既存のテキストを保存して,新しいテキストを書き込む場合は,SMG$INSERT_CHARS ルーチンを使用します。

flags 引数を省略した場合は,SMG$PUT_CHARS ルーチンは,新しいテキストが書き込まれる文字位置だけを変更します。しかし,flags 引数に対して SMG$M_ERASE_LINE を指定することにより,新しいテキストを書き込む前に行を消去することができます。また,flags 引数に SMG$M_ERASE_TO_EOL を指定することにより,テキストを書き込んだ後で残りの行を消去することも可能です。カーソルは,最後に書き込まれたテキストのすぐ後の文字位置に設定されます。仮想ディスプレイからあふれた分の文字は切り捨てられますが,仮想ディスプレイに対して SMG$M_TRUNC_ICON 属性が設定されている場合には,SMG$PUT_CHARS ルーチンが行の一部を切り捨てたことを示すアイコンを出力します。

オリジナルの SMG ルーチンは,ASCII文字集合と DEC特殊文字集合のみをサポートします。日本語 SMG ではこの他に SMG$C_SUPPLEMENTAL,SMG$C_KANJI,SMG$C_JIS_KANA, SMG$C_SDK が指定できます。

DEC漢字または Super DEC 漢字文字集合を使用する際に,全角文字の右半分から書き込み操作が始まる場合は,その文字の左半分は未定義文字になります。また,全角文字の左半分で書き込み操作が終了する場合は,その文字の右半分は未定義文字になります。さらに,行の一部が切り捨てられる際に,全角文字の右半分から切り捨てられる場合は,その文字の左半分は未定義文字になります。


戻される状態値

SS$_NORMAL 正常終了。
LIB$_INVSTRDES 文字列ディスクリプタが誤っています。
SMG$_INVCOL カラム位置が誤っています。
SMG$_INVDIS_ID display-id 引数が誤っています。
SMG$_INVROW 行の位置が誤っています。
SMG$_WILUSERMS ペーストボードがビデオ・ターミナルでありません。
SMG$_WRONUMARG 引数の数が誤っています。


#1

C+ 
C This FORTRAN example program demonstrates the use of 
C SMG$PUT_CHARS. 
C- 
 
        INTEGER SMG$CREATE_VIRTUAL_DISPLAY, SMG$CREATE_PASTEBOARD 
        INTEGER SMG$PASTE_VIRTUAL_DISPLAY,  SMG$PUT_CHARS 
        INTEGER DISPLAY1, PASTE1, ROWS, COLUMNS, BORDER, STATUS 
C+ 
C Create the virtual 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 Create the pasteboard. 
C- 
 
        STATUS = SMG$CREATE_PASTEBOARD (PASTE1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C 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. 
C- 
 
        STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 4, 15 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        END 
 

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

図 8-30 SMG$PUT_CHARS ルーチンを呼ぶ FORTRAN プログラムによって生成される出力



前へ 次へ 目次 索引