日本-日本語

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

OpenVMS マニュアル


≫ 

OpenVMS V8.3
ライブラリ

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

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


目次 索引


#1

C+ 
C This FORTRAN example program illustrates the use of 
C SMG$CREATE_MENU, SMG$SELECT_FROM_MENU, and SMG$DELETE_MENU 
C to create an application that lets a user make multiple 
C selections from a horizontal menu. 
C- 
 
        IMPLICIT INTEGER (A-Z) 
        INCLUDE '($SMGDEF)' 
 
        CHARACTER*20 c 
        CHARACTER*20 a(20) /'One','Two','Three','This is Four','Five', 
     1                  'Six','Seven','Eight','Nine','I like ten', 
     2                  'Eleven','Twelve','Thirteen','Fourteen', 
     3                  'Fifteen','Sixteen','Seventeen','Eighteen', 
     4                  'Nineteen','Exit this menu.' / 
 
        s = SMG$CREATE_PASTEBOARD(p_id) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
        s = SMG$CREATE_VIRTUAL_KEYBOARD(k_id) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
        s = SMG$CREATE_VIRTUAL_DISPLAY(6,50, d_id2, SMG$M_BORDER) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
        s = SMG$CREATE_VIRTUAL_DISPLAY(6,50, d_id, SMG$M_BORDER) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
 
        s = SMG$PASTE_VIRTUAL_DISPLAY(d_id2, p_id, 2,2) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
        s = SMG$PASTE_VIRTUAL_DISPLAY(d_id, p_id, 10,2) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
 
        s = SMG$CREATE_MENU(d_id,a,SMG$K_HORIZONTAL,,2,SMG$M_REVERSE) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
 
  20    s = SMG$SELECT_FROM_MENU(k_id, d_id, n,6,,,,,C,SMG$M_BOLD,0) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
        s = SMG$PUT_LINE(d_id2,c) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
 
        if (n .ne. 20) goto 20 
 
        s = SMG$DELETE_MENU(d_id) 
        if (.not. s) call LIB$SIGNAL(%VAL(s)) 
 END 
 

以下の図は, この FORTRAN プログラムによって生成される水平方向のメニューです。

図 8-46 では,プログラムは,省略時で選択されるものを除くすべてのメニュー項目を,反転表示します。この時点で,プログラムはユーザが選択をするのを待っています。

図 8-46 メニュー項目が選択される前に生成される出力


このメニューが作成されるときには,何も引数が指定されていなかったので,メニューの中の項目は再び選択されることができます。 図 8-47 は,ユーザが3つの項目(その中の 2つは同じ)を選択した後の画面イメージを表しています。

図 8-47 3つのメニュー選択をした後に生成された出力


図 8-48 では,ユーザは "Exit this menu"を選択し,プログラムは実行を終了しました。

図 8-48 プログラムが終了した後に生成される出力





Enable Broadcast Trapping ルーチンは,ブロードキャスト・メッセージのトラッピングを許可します。

形式

SMG$SET_BROADCAST_TRAPPING pasteboard-id [,AST-routine] [,AST-argument]




戻り値



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





引数



pasteboard-id

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


ブロードキャスト・メッセージがトラップされるペーストボードを指定します。 pasteboard-id 引数は,ペーストボード識別子を格納した符号なしロングワードのアドレスです。

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

AST-routine

OpenVMS 用法 ast_procedure
データ型 procedure entry mask
アクセス read only
受け渡し方 by value


メッセージがペーストボードに受信されたときに呼び出される AST ルーチンのアドレス。AST-routine 引数はルーチンのプロシージャ・エントリ・マスクのアドレスです。つまり,ルーチン自体のアドレスです。

AST-routine 引数を省略した場合や,この引数の値を 0 として指定した場合には,BROADCAST モードは同期モードに設定されます。このモードでは,ブロードキャスト・メッセージが到着したかどうかを確認するために, SMG$GET_BROADCAST_MESSAGE ルーチンを定期的に呼び出さなければなりません。

AST ルーチンは 5 つの引数を使用して呼び出されます。それらは AST-argument 引数,R0,R1,PC,および PSL です。




AST-argument

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


AST ルーチンに渡される値。AST-argument 引数は AST ルーチンに渡される値を格納した符号なしロングワードです。


説明

SMG$SET_BROADCAST_TRAPPING ルーチンは,指定されたペーストボード(漢字ターミナル) に送信されたブロードキャスト・メッセージのトラッピングを許可します。ブロードキャスト・トラッピングを禁止した場合には,漢字ターミナルのキューに登録されていたブロードキャスト・メッセージは失われます。SMG$SET_BROADCAST_TRAPPING ルーチンを使用してブロードキャスト・トラッピングを許可した後,イメージが終了する前に SMG$DISABLE_BROADCAST_TRAPPING ルーチンを使用してブロードキャスト・トラッピングを禁止しなかった場合には,漢字ターミナルにブロードキャストされたメッセージは,イメージが終了するときに失われます。

SYSGEN パラメータである DEFMBXBUFQUO と DEFMBXMXMSG がブロードキャスト・メッセージを受信するメールボックスを作成する時に使用されます。




戻される状態値

SS$_NORMAL 正常終了。
SMG$_INVPAS_ID pasteboard-id 引数に誤りがあります。
SMG$_NOT_A_TRM 情報メッセージ。ペーストボードは漢字ターミナルではありません。
SMG$_WRONUMARG 引数の数が誤っています。
その他 $DASSGN,$CANCEL,または LIB$ASN_WTH_MBX から戻される状態値。




Set Absolute Cursor Position ルーチンは,仮想ディスプレイの仮想カーソルを指定位置に移動させます。

形式

SMG$SET_CURSOR_ABS display-id [,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 ルーチンによって与えられます。

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$SET_CURSOR_ABS ルーチンは,仮想カーソルを仮想ディスプレイの指定位置に移動させます。



戻される状態値

SS$_NORMAL 正常終了。
SMG$_INVCOL カラム位置が誤っています。
SMG$_INVDIS_ID display-id 引数が誤っています。
SMG$_INVROW 行の位置が誤っています。
SMG$_WRONUMARG 引数の数が誤っています。




Set the Cursor Mode ルーチンは,物理カーソルをオンまたはオフに設定し,ジャンプ・スクロールまたは連続スクロールを選択します。

形式

SMG$SET_CURSOR_MODE pasteboard-id [,flags]




戻り値



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





引数



pasteboard-id

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


ペーストボード識別子。 pasteboard-id 引数は,ペーストボード識別子を格納した符号なしロングワードのアドレスです。

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

flags

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


スクロール属性とカーソル属性を指定するビット・マスク(省略可能)。 flags 引数は,フラグを格納した符号なしロングワードのアドレスです。 flags 引数に対して指定できる値は次のとおりです。

SMG$M_CURSOR_OFF 物理カーソルを消去する。
SMG$M_CURSOR_ON 物理カーソルを表示する。
SMG$M_SCROLL_JUMP ジャンプ・スクロール。
SMG$M_SCROLL_SMOOTH 連続スクロール。


説明

SMG$SET_CURSOR_MODE ルーチンはカーソルを表示または消去し,ジャンプ・スクロールと連続スクロールのいずれかを選択します。漢字ターミナルがこれらの機能を備えていない場合には,このルーチンを実行しても無効です。



戻される状態値

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




Move Cursor Relative to Current Position ルーチンは,仮想ディスプレイ内の現在の仮想カーソルの位置から指定された行数およびカラム数だけ,仮想カーソルを移動します。

形式

SMG$SET_CURSOR_REL display-id [,delta-row] [,delta-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 ルーチンによって与えられます。

delta-row

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


仮想カーソルを移動する行数を指定します。delta-row 引数は,移動する行数を格納した符号付きロングワードのアドレスです。この引数を省略した場合には,仮想カーソルは現在の行位置から移動しません。 delta-row 引数が正の値の場合には,仮想カーソルは指定された行数だけ下に移動します。 delta-row 引数が負の値の場合には,仮想カーソルは指定された行数だけ上に移動します。

delta-column

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


仮想カーソルを移動するカラム数を指定します。 delta-column 引数は,移動するカラム数を格納した符号付きロングワードのアドレスです。この引数を省略した場合には,仮想カーソルは現在のカラム位置から移動しません。 delta-column 引数が正の値の場合には,仮想カーソルは指定されたカラム数だけ右に移動します。delta-column 引数が負の値の場合には,仮想カーソルは指定されたカラム数だけ左に移動します。


説明

SMG$SET_CURSOR_REL ルーチンは,現在の仮想カーソルの位置をもとに,指定された行数およびカラム数だけ仮想カーソルを移動します。 delta-row 引数および delta-column 引数の指定に従ってカーソルを移動した結果,カーソルが仮想ディスプレイの外部に移動する場合には,SMG$_INVROW または SMG$_INVCOL が戻されます。



戻される状態値

SS$_NORMAL 正常終了。
SMG$_INVARG 引数に誤りがあります。
SMG$_INVCOL delta-column 引数の値が誤っているため,カーソルを仮想ディスプレイの外部に移動しようとしました。
SMG$_INVDIS_ID display-id 引数に誤りがあります。
SMG$_INVROW delta-row 引数の値が誤っているため,カーソルを仮想ディスプレイの外部に移動しようとしました。
SMG$_WRONUMARG 引数の数が誤っています。




Set Default State ルーチンは,キー・テーブルに対して現在の省略時の状態を設定するか,または現在の省略時の状態を戻します。

形式

SMG$SET_DEFAULT_STATE key-table-id [,new-state] [,old-state]




戻り値



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





引数



key-table-id

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


省略時の状態を設定または検索するキー・テーブルを指定します。 key-table-id 引数は,キー・テーブル識別子を格納した符号なしロングワードのアドレスです。

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

new-state

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


キー・テーブル全体に対する新しい省略時の状態を指定します。 new-state 引数は,新しい状態文字列を示すディスクリプタのアドレスです。指定された状態名は,使用する前に大文字に交換され,後続する空白は削除されます。

old-state

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


指定されたキー定義テーブルの既存の省略時状態名が書き込まれます。 old-state 引数は,既存の状態文字列が書き込まれる文字列を示すディスクリプタのアドレスです。


説明

SMG$SET_DEFAULT_STATE ルーチンは,キー定義テーブル全体に対して省略時の状態名を設定するか,または現在の省略時の状態名を戻します。キー定義テーブル全体に対する省略時の状態を変更すれば,新しい機能集合に対してキーパッド・キーを使用できます。キー定義テーブルは SMG$READ_COMPOSED_LINE ルーチンで使用できます。



戻される状態値

SS$_NORMAL 正常終了。
SMG$_INVKTB_ID key-table-id 引数に誤りがあります。
SMG$_INVSTANAM 状態名に誤りがあります。
LIB$_INVSTRDES 文字列ディスクリプタに誤りがあります。


目次 索引

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