日本-日本語
日本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
日本語画面管理ライブラリ 利用者の手引き


目次 索引




Make a Selection from the Menu ルーチンは,矢印キーを使って選択メニュー間の移動をしたり,[Return]キーを使ってメニューの選択を確定することを可能にします。

形式

SMG$SELECT_FROM_MENU keyboard-id ,display-id ,selected-choice-number [,default-choice-number] [,flags] [,help-library] [,timeout] [,word-terminator-code] [,selected-choice-string] [,rendition-set] [,rendition-complement]


戻り値



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



引数



keyboard-id

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


入力を読み込む対象となる仮想キーボードを指定します。 keyboard-id 引数は,キーボード識別子を格納した符号なしロングワードのアドレスです。

display-id

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


選択した項目が表示される仮想ディスプレイを指定します。 display-id 引数は,ディスプレイ識別子を格納した符号なしロングワードのアドレスです。仮想ディスプレイは,ペーストボードにペーストされ,バッチ処理されたり重ね書きされたりすることはできません。

selected-choice-number

OpenVMS 用法 word_unsigned
データ型 word (unsigned)
アクセス write only
受け渡し方 by reference


選択されるメニュー項目の指定番号。 selected-choice-number 引数はこの番号を受け付ける符号なしワードのアドレスです。 selected-choice-number 引数は,SMG$CREATE_MENU ルーチン内の 静的配列内のメニュー項目の索引に対応します。

default-choice-number

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


省略時のメニュー項目の指定番号(省略可能)。 default-choice-number 引数は省略時のメニュー項目の番号を格納する符号なしワードのアドレスです。 default-choice-number 引数は,SMG$CREATE_MENU ルーチン内の静的配列内のメニュー項目の索引に対応します。この引数が省略された場合の選択は,すでに選択された項目中の最後のメニュー項目になります。何も選択されていなかった場合には,メニューの中の最初の項目が選択されます。

flags

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


選択された時の動作を指示するビットマスク(省略可能)。 flags 引数は,フラグを格納した符号なしロングワードのアドレスです。この引数に対して指定できる値は次のとおりです。

SMG$M_RETURN_IMMED 矢印キー以外のキーが入力されたときに,コントロールをユーザに戻します。
SMG$M_REMOVE_ITEM SMG$SELECT_FROM_MENUルーチンによって各々のメニュー項目が一度のみ選択されるようにします。



help-library

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


[PF2] / [HELP]が入力された場合のヘルプ・ライブラリ(省略可能)。 help-library 引数は,このヘルプ・ライブラリを示すディスクリプタのアドレスです。この引数は,flags 引数がSMG$M_RETURN_IMMED を指定した場合には,無視されるので注意してください。省略時の設定値は,SYS$HELP:HELPLIB.HLB です。

timeout

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


時間切れの値(省略可能)。 timeout 引数は,選択が決定されるまでにかかる秒数を指定する符号付きロングワードのアドレスです。

word-terminator-code

OpenVMS 用法 word_unsigned
データ型 word (unsigned)
アクセス write only
受け渡し方 by reference


word-terminator-code 引数は,どの文字またはどのキーが読み込み操作を終了したかを示すコードが書き込まれる符号なしワードのアドレスです(省略可能)。

selected-choice-string

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


選択されたメニュー項目のテキストを受け取る文字列(省略可能)。 selected-choice-string 引数は,この文字列を示すディスクリプタのアドレスです。

rendition-set

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


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

SMG$M_BLINK 点滅する文字を表示します。
SMG$M_BOLD 通常より明るい輝度の文字を表示します。
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 属性をオフに設定する。


説明

SMG$SELECT_FROM_MENU ルーチンによって,メニューの中の項目を選択することができます。SMG$CREATE_MENU ルーチンは,SMG$SELECT_FROM_MENUルーチンの前に 呼び出されなければなりません。

矢印キーを使って,メニュー項目内を移動し,[Return]キーを押すことによって選択を確定することができます。[Ctrl/Z]を入力すると,現在の選択を確定し, SMG$_EOFという値が戻されます。

選択メニュー数が1画面で表示しきれない場合は,適切な矢印キーが入力されると,仮想ディスプレイがスクロールされ,表示できなかった選択メニューが見えるようになります。

現在選択されているメニューは, 反転表示され(または,指定された属性で) 物理カーソルで示されます。選択されたメニューは,selected-choice-number 引数に戻されます。さらに,flag 引数に SMG$M_REMOVE_ITEM が指定されている場合には,選択された項目は,もう一度選択することはできません。

SMG$SELECT_FROM_MENUルーチンには,flags 引数によって指定される 2つの操作モードがあります。SMG$M_RETURN_IMMED という値を設定しない場合(省略時設定)は,次のようになります。

  • ユーザは,矢印キーを使って選択メニュー間を移動できます。

  • 現在の項目を選択するのに使われるキーは,次のとおりです。
    [RETURN]キー
    [DO]キー
    [SELECT]キー
    [ENTER]キー

  • [HELP]キーまたは[PF2]キーは現在選択した項目のヘルプを出力します。

  • [CTRL/W]は, SMG$REPAINT_SCREEN を呼び出して画面をリフレッシュします。

  • [CTRL/Z]は現在の項目を選択し,SMG$_EOFの値を戻します。

  • [PF1/↑]はメニューの中の最初の項目を選択します。

  • [PF1/↓]はメニューの中の最後の項目を選択します。

  • [PF1/←]は現在カーソルがある行の最初の項目を選択します。

  • [PF1/→]は現在カーソルがある行の最後の項目を選択します。

  • 他のすべてのキーは無視されます。

SMG$M_RETURN_IMMED の値を設定した場合は,次のようになります。

  • ユーザは,矢印キーを使って選択メニュー間を移動できます。

  • [CTRL/Z]は現在の項目を選択し,SMG$_EOFの値を戻します。

  • その他のキーが入力された場合は,現在の項目を選択します。

(上記の)どちらの場合でも,次のキーで代用が可能です。

  • [LF]キーは,[↓]キーの代わりに使用されます。

  • [BACKSPACE]キーは, [←]キーの代わりに使用されます。

  • [TAB]キーは,[→]キーの代わりに使用されます。

読み込み操作を終了したコード SMG$R_TRM_key-name は, word-terminator-code 引数(省略可能)に戻されます。複数の文字で構成されたメニュー項目も許可されています。メニュー項目がSuper DEC 漢字, DEC漢字文字またはJISカタカナ文字の場合,ヘルプ機能は起動されますが,メニュー項目は情報検索に使用されません。


戻される状態値

SS$_NORMAL 正常終了。
SMG$_EOF ファイルの最後。
SMG$_ILLBATFNC 仮想ディスプレイまたはペーストボードがバッチ処理されています。
SMG$_INVARG 引数に誤りがあります。選択できるメニュー項目がありません。
SMG$_INVDIS_ID display-id 引数に誤りがあります。メニューが含まれていません。または,ビューポートが含まれています。
SMG$_NOTPASTED 仮想ディスプレイがペーストされていません。
LIB$_xxx LIB$SCOPY から戻された状態値。
SMG$_xxxx SMG$CHANGE_RENDITION, SMG$SET_CURSOR_ABS, SMG$READ_KEYSTROKE, SMG$PUT_HELP_TEXT, SMG$SAVE_PHYSICAL_SCREEN, SMG$RESTORE_PHYSICAL_SCREENルーチンから戻された状態値。


#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 から戻される状態値。


目次 索引

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