日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 部:概論
第 1 章:日本語SMG (SMG$)の概要
第 2 章:日本語 SMG の出力操作
第 3 章:日本語 SMG 入力操作
第 4 章:日本語 SMG の高度な機能
第 5 章:フォーリン・ターミナルのサポート
第 6 章:日本語 SMG を使用したプログラム開発
第 7 章:日本語 SMG ルーチンの呼び出しの例
第 2 部:リファレンス・セクション
第 8 章:日本語 SMG リファレンス
コマンド一覧
索引
PDF
OpenVMS ホーム
日本語 OpenVMS

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


目次 索引




Write Double-Width Line ルーチンは,倍角のテキスト行を仮想ディスプレイに書き込みます。

形式

SMG$PUT_LINE_WIDE display-id ,text [,line-advance] [,rendition-set] [,rendition-complement] [,flags] [,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

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


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

line-advance


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


行書き込み後のスクロール行数。 line-advance 引数は,進める行数を格納した符号付きロングワードのアドレスです。この引数は省略可能です。

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 属性を無効にする。



flags

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


テキストが,1行に格納できない場合に実行する動作を指定するビット・マスク(省略可能)。flags 引数は,フラグを格納した符号なしロングワードのアドレスです。この引数に対して指定できる値は次のとおりです。

0 自動改行しないことを指定します (省略時の設定値)。
SMG$M_WRAP_CHAR 行の最後の文字で自動改行します。
SMG$M_WRAP_WORD 行の最後の空白で自動改行します。



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_LINE_WIDEルーチンは,倍角のテキストを仮想ディスプレイに書き込みます。 SMG$PUT_LINE_WIDEルーチンは,現在の仮想カーソルの位置からテキストを書き始めます。テキストが1行より短い場合は,空白が埋め込まれます。

flags 引数が自動改行を指定した場合には,line-advance 引数で指定した行数だけスクロールされ,あふれた文字を次の行に挿入するための空間が作成されます。次の行はスクロールの方向( direction 引数)によって決定されます。flags 引数で自動改行を指定していない場合は,あふれた文字は切り捨てられます。

SMG$PUT_LINE_WIDEルーチンを呼び出した後,仮想カーソルの位置は出力の対象となる次の行の 1 カラム目に設定されます。出力の対象となる次の行は, line-advance 引数によって決定されます。 SMG$PUT_LINE ルーチンを続けて呼び出しても,前の出力の上に新しい出力が重ならないように,line-advance 引数のシステム設定値は 1 になっています。

仮想ディスプレイ上にテキスト行を書き込むための日本語 SMG ルーチンとしては,他に SMG$PUT_LINEルーチンと SMG$PUT_LINE_HIGHWIDEルーチンがあります。

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


戻される状態値

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


#1
C+ 
C This FORTRAN example program demonstrates the use of 
C SMG$PUT_LINE_WIDE. 
C 
C Include the SMG definitions. In particular, we want SMG$M_BORDER and 
C SMG$M_UNDERLINE. 
C- 
 
        INCLUDE '($SMGDEF)' 
        INTEGER SMG$CREATE_VIRTUAL_DISPLAY, SMG$CREATE_PASTEBOARD 
        INTEGER SMG$PASTE_VIRTUAL_DISPLAY,  SMG$PUT_LINE_WIDE 
        INTEGER DISPLAY1, PASTE1, ROWS, COLUMNS, STATUS 
        CHARACTER*34 TEXT(3) 
 
C+ 
C Create a virtual display with a border by calling 
C SMG$CREATE_VIRTUAL_DISPLAY. 
C- 
 
        ROWS = 7 
        COLUMNS = 70 
 
        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 Use SMG$PUT_LINE to put data in the virtual display. 
C- 
 
        TEXT(1) = 'This virtual display has 7' 
        TEXT(2) = 'rows and 70 columns.' 
        TEXT(3) = 'Text entered by SMG$PUT_LINE_WIDE.' 
 
C+ 
C After the first line of text is printed, advance two lines. 
C- 
 
        STATUS = SMG$PUT_LINE_WIDE ( DISPLAY1, TEXT(1), 2 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Underline the next line of text. Notice that 34 characters are being 
C underlined. Advance 1 line of text after displaying the line. 
C- 
 
        STATUS = SMG$PUT_LINE_WIDE ( DISPLAY1, TEXT(2), 1, 
     1          SMG$M_UNDERLINE ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Display the third line of text. 
C- 
 
        STATUS = SMG$PUT_LINE_WIDE ( DISPLAY1, TEXT(3) ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Paste the virtual display using SMG$PASTE_VIRTUAL_DISPLAY. 
C- 
 
        STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 4, 5 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        END 
 

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

図 8-32 SMG$PUT_LINE_WIDEを呼び出すFORTRANプログラムによって生成される出力



目次 索引

© 2012 Hewlett-Packard Development Company, L.P.