日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
日本語 OpenVMS
|
目次 | 索引 |
SMG$SCROLL_DISPLAY_AREA |
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 引数の数が誤っています。
SMG$SCROLL_VIEWPORT |
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 ルーチンを最後に呼び出した後に生成される出力
目次 | 索引 |
|