日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


 

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

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

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


目次 索引




Scroll Display Area ルーチンは,仮想ディスプレイの長方形領域をスクロールします。

形式

SMG$SCROLL_DISPLAY_AREA display-id [,start-row] [,start-column] [,height] [,width] [,direction] [,count]


戻り値



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


スクロール領域の1行目を指定します。start-row 引数は,開始行の行番号を格納した符号付きロングワードのアドレスです。

start-row 引数を省略した場合には,指定した仮想ディスプレイの1行目が使用されます。start-row 引数または start-column 引数を省略した場合には,省略時の設定(行1とカラム1)が使用されます。

start-column

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


スクロール領域の最初のカラムを指定します。 start-column 引数は,開始カラムを格納した符号付きロングワードのアドレスです。

この引数を省略した場合には,指定した仮想ディスプレイのカラム1が使用されます。 start-row 引数または start-column 引数を省略した場合には,省略時の値として行1とカラム1が使用されます。start-column 引数が全角文字の右半分から始まった場合,その文字は2つの未定義文字になります。

height

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


スクロール領域の行数を指定します。height 引数は,行数を格納した符号付きロングワードのアドレスです。

この引数を省略した場合には,省略時の値として仮想スクロール領域の高さ (SMG$SET_DISPLAY_SCROLL_REGIONルーチンによって設定されている場合),または指定 された仮想ディスプレイの高さが使用されます。

width

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


スクロール領域のカラム数を指定します。width 引数は,カラム数を格納した符号付きロングワードのアドレスです。

この引数を省略した場合には,省略時の値として,指定した仮想ディスプレイの幅が使用されます。

direction

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


スクロールの方向を指定します。direction 引数は,方向コードを格納したロングワード・ビット・マスクのアドレスです。

指定できる値はSMG$M_UP,SMG$M_DOWN,SMG$M_RIGHT,およびSMG$M_LEFTです。省略時の設定はSMG$M_UPです。

count

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


スクロールする行数またはカラム数を指定します。count 引数は,スクロールの量(行数またはカラム数)を格納した符号付きロングワードのアドレスです。この引数を省略した場合には,1行または1カラムがスクロールされます。


説明

SMG$SCROLL_DISPLAY_AREAルーチンは,指定された仮想ディスプレイの長方形領域をスクロールします。このルーチンは指定された行数または指定されたカラム数だけ,指定された方向に領域をスクロールします。スクロールの後,カーソルは start-row 引数,start-column 引数の位置に設定されます。

DEC漢字または Super DEC 漢字文字集合が指定され,start-column 引数が全角文字の右半分から始まる場合は,全角文字は 2 つの未定義文字になります。
長方形領域の右端のカラムが,全角文字の左半分を含む場合には,全角文字は2つの未定義文字になります。

また,長方形領域が左方向にスクロールし,左端のカラムが全角文字の右半分を含んでいる場合は,全角文字の右半分は未定義文字になります。
長方形領域が右方向にスクロールし,右端のカラムが全角文字の左半分を含んでいる場合は,全角文字の左半分は未定義文字になります。


戻される状態値

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




Scroll a Display Under a Viewport ルーチンは,対応するビューポートで表示されている仮想ディスプレイをスクロールします。

形式

SMG$SCROLL_VIEWPORT display-id [,direction] [,count]


戻り値



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



引数



display-id

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


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

direction

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


方向指定子(省略可能)。direction 引数は,スクロールの方向を指定する方向コードを格納したロングワード・ビット・マスクのアドレスです。 count 引数(省略可能)を組み合わせて使用することにより,指定した方向にスクロールする行数を指定できます。direction 引数に対して指定できる値は以下のとおりです。

SMG$M_UP count 行だけ上にスクロールします。
SMG$M_DOWN count 行だけ下にスクロールします。
SMG$M_RIGHT count カラムだけ右にスクロールします。
SMG$M_LEFT count カラムだけ左にスクロールします。

省略時の設定は SMG$M_UP です。

count

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


スクロールする行数またはカラム数(省略可能)。省略時の値は 1 です。


説明

SMG$SCROLL_VIEWPORT ルーチンは,対応するビューポートで表示されている仮想ディスプレイをスクロールします。実際には,スクロールをシミュレートするために,仮想ディスプレイの上をビューポートが移動するように,ビューポートはその座標を変更します。しかし,画面上で物理的な位置が変化するわけではありません。ビューポートが仮想ディスプレイの外部に移動する場合には,ビューポートのサイズが変化する可能性があります。ビューポートのサイズを元に戻すには,SMG$CHANGE_VIEWPORT ルーチンを使用します。

ビューポートの開始カラムが,全角文字の右半分であった場合には,そのカラムは表示されません。また,ビューポートが全角文字の左半分で終了した場合にも,そのカラムは表示されません。


戻される状態値

SS$_NORMAL 正常終了。
SMG$_INVARG count 引数の値が 0 より小さい値です。
SMG$_INVDIS_ID display-id 引数に誤りがあります。
SMG$_NO_WINASSOC 指定された仮想ディスプレイにビューポートは対応づけられていません。
SMG$_WRONUMARG 引数の数が誤っています。
SMG$_WINTRUFIT 正常終了。ただし,仮想ディスプレイに対応づけられているビューポートはサイズが変更されました。


#1
C This FORTRAN example demonstrates SMG$SCROLL_VIEWPORT. 
C Include the SMG definitions. In particular, we want SMG$M_BORDER. 
 
        IMPLICIT INTEGER (A-Z) 
        INCLUDE '($SMGDEF)' 
 
C Create the Virtual Displays. Give them borders. 
 
        ROWS = 10 
        COLUMNS = 22 
 
        STATUS = SMG$CREATE_VIRTUAL_DISPLAY 
     1                                (ROWS, COLUMNS, DISPLAY1, SMG$M_BORDER) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C Create viewport 
 
        STATUS = SMG$CREATE_VIEWPORT (DISPLAY1, 2, 2, 3, 10) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C Create the Pasteboard 
 
        STATUS = SMG$CREATE_PASTEBOARD (PASTE1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C Put data into the Virtual Displays 
 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'11111111111111', 1, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'This is row 2.', 2, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'33333333333333', 3, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'This is row 4.', 4, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'55555555555555', 5, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'This is row 6.', 6, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'77777777777777', 7, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'This is row 8.', 8, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'99999999999999', 9, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
        STATUS = SMG$PUT_CHARS ( DISPLAY1,'This is row 10.', 10, 1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C Paste the Virtual Display 
 
        STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 4, 3) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        STATUS = LIB$WAIT (2.0) 
 
        DO 1 I = 1, 3 
        STATUS = SMG$SCROLL_VIEWPORT(DISPLAY1,SMG$M_UP,1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
        CALL LIB$WAIT (2.0) 
1       CONTINUE 
 
        STATUS = LIB$WAIT (2.0) 
 
 END 
 

この例では,1 つの仮想ディスプレイが作成され,ビューポートが対応づけられています。仮想ディスプレイはビューポートに対応づけられた後,ペーストボードにペーストされたため,仮想ディスプレイの中でビューポートの内部だけが表示されます。この状態は 図 8-42 に示すとおりです。

図 8-42 仮想ディスプレイをペーストすることにより生成される出力


SMG$SCROLL_VIEWPORT ルーチンを全部で 3 回呼び出しています。 図 8-43 は,SMG$SCROLL_VIEWPORT ルーチンを最初に呼び出した後のビューポートを示しています。

図 8-43 SMG$SCROLL_VIEWPORT ルーチンを最初に呼び出した後に生成される出力


図 8-44 は,SMG$SCROLL_VIEWPORT ルーチンを 2 回目に呼び出した後のビューポートの内容を示しています。

図 8-44 SMG$SCROLL_VIEWPORT ルーチンを 2 回目に呼び出した後生成される出力


図 8-45 は,SMG$SCROLL_VIEWPORT ルーチンを最後に呼び出した後のビューポートの内容を示しています。

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



目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項