回答箱 No.124-1: プログラムの中でメニューのあつかいに困っています
No.124-1 |
プログラムの中でメニューのあつかいに困っています |
回答者 入川 精二 |
2001年07月 234号 P.10 |
◆ 質問の趣旨は、幾つかのマシンに同じシステムをインストールしてあるが、「装置名」は必ずしも同じではない。それぞれのマシンにSET 指令で‘オート起動パス指定’を設定してある。システ
ム全体の起動プログラム(SF)は装置A からでも起動できるが、メニューがうまく立ち上がらないというものです。
例えばシステムがD/PIPMOTO にある場合、そこにあるメニューを他の装置から起動するにはMENU;G;D/PIPMOTO:1 としなければなりません。そのメニューから別のメニューに飛ぶとき
にはエラーが起こります。多分、プログラムの実行中にもバインダーを処理する指令でエラーが起こると思われます。
そこで、取りうる手段は「オート起動パス」として指定された装置名/キャビネット名を「カレント」にする事でしょう。
次のような記述をプログラムの最初に加えることで解決できそうです。
SET ;M ;B ;M ;
|
/*「SET - 処理」の設定表が画面に表示される */
|
LET V1=[ 14,@現在値] ;
|
/*「オート起動パス指定」の設定値を読み込む */
|
CC ;%V1 ;
|
/*カレントキャビネットを変更する */
|
オート起動パス指定の項目は上の図のように常に11 番(14行目)にあるので、上の2 行目のLET 文のようにすればパスの設定値が変数に取り込めます。
幾つかのキャビネットにまたがるようなシステムを動かす場合、プログラムのどの記述ではカレントはどこになっているか ということが悩みの種になります。このようなときはプログラムのなかの
全てのバインダー名・オートプログラム名(GOSUB の飛び先)・インデックス名 などにそれぞれの「装置名/キャビネット名」を加えておく必要があります。煩わしいと思わずにこまめに書くことで
す。
□
|
|
|