スーパーメニュBSLステーション仕様

Ver 1.02 (1999-11-20)

[先頭へ]

 1.概要
 2.凡例
 3.ユーザモードの操作
  3.1 キーボードによる操作
  3.2 マウスによる操作
 4.編集モードの操作
  4.1 キーボードによる操作
  4.2 マウスによる操作
  4.3 ポップアップメニュの操作
 5.メニュシステムの仕様
  5.1 メニュ項目の記述とコマンドの実行
  5.2 メニュ前コマンド/内部実行
  5.3 ガイダンス
  5.4 ブートアップメニュについて
  5.5 起動方法
  5.6 メニュファイルへの保存
  5.7 メニュファイルの記録形式
  5.8 バージョンの表示

1.概要

名称: スーパーメニュ「BSLステーション」
概要: バッチ処理言語BSLを内蔵した文字ベースのメニュ
特徴: テンキーとマウスの両方に対応し、メンテナンスも容易な無限階層メニュシステム。
動作環境: Windows95/98/NT4.0 などの32bit Windows 環境

紹介: 
■テキストベースの無限階層メニュツールです。
■マウスだけでなく、テンキーや矢印キーによる迅速な操作が可能です。
■ユーザモードと編集モードを備え、編集モードではメニュの変更が簡単に実行できます。
■連動するバッチ処理言語「BSL」が付属します。環境変数を活用したシステマチックなメニュシステムが構築できます。またメニュからエディタを自動起動してスクリプトを編集することができます。
■メニュ内容は、CSV形式のテキストファイルに保管されますので、テキストエディタ、 EXCEL や桐などの外部システムを使っても、簡単にメンテナンスできます。
■業務システムのメニュ構築に最適です。
■フリーソフトウェアですので、ソースプログラムが添付されています。仕様の分析、機能の追加や変更が可能であり、サンプルソースプログラムとしても活用できます。詳細は使用規定をご確認下さい。(本製品は Delphi 5.0 で記述されています。)


2.凡例

 以下の記述で、 [キー名] はそのキーを押すことを表します。
 { } で囲まれた部分は、省略可能な構文の要素をあらわします。
 ..は、直前の要素の任意の回数の繰返しをあらわします。


3.ユーザモードの操作

 メニュを表示し、操作する通常のモードを「ユーザモード」と呼びます。ユーザモードの操作を解説します。

3.1 キーボードによる操作

1) メニュが表示されると、右上の入力域にカーソルが位置付けられます。ここでメニュ番号 [Enter] でメニュが選択実行されます。
2) [+] [-] または [Esc] により前メニュに戻ります。
3) [Tab] または[↓]により、カーソルがメニュ項目表示域に移動します。この時、下部のガイダンス欄に、そのメニュ項目に関する案内が表示されます。メニュ項目表示域では、 [→] [←] [↑] [↓] でメニュ候補が移動します。ここで [Enter] を押すとそのメニュ項目が選択実行されます。
4) さらに [Tab] または[↓]を押すと、「戻る」ボタンに移動します。ここで [Enter] を押すと、前メニュに戻ります。
5) さらに [Tab] を押すと、再度入力域にカーソルが戻ります。
6) 初期メニュから [Alt] + [F4] にてメニュシステムが終了します。

3.2 マウスによる操作

1) 選択したいメニュを左クリックすると、そのメニュが選択実行されます。
2) マウスの右クリック、または「戻る」ボタンのクリックで、前メニュに戻ります。
3) ウィンドウ右上の「×」のクリックで、メニュシステムが終了します。


4.編集モードの操作

 メニュを編集するモードを「編集モード」と呼びます。編集モードの操作を解説します。

4.1 キーボードによる操作

1) ユーザモードから、 [Shift] + [F6] を押すことで、編集モードに切り替わります。
2) 編集したいメニュ項目上で [Enter] を押すと、その項目の編集が開始されます。項目の記述の仕方については、あとの節で述べます。
3)  [Enter] で編集が確定されます。 [Esc] で、編集が取り消されます。
4) メニュ項目上で [Alt] を押すと、ポップアップメニュが表示されます。ポップアップメニュの操作については、あとの項で述べます。
5) 編集したい項目上から [Tab] にて、ガイダンス欄に移動します。ここでガイダンスを編集することができます。
6) ガイダンスの確定は、 [Tab] でガイダンス欄を抜け出すことで行われます。 [Esc] で、編集が取り消されます。
7) [Esc] で、編集モードが終了し、ユーザモードに戻ります。
8) 編集が行われた場合、メニュシステムの終了時にメニュファイルへの保存が問い合わせられます。

4.2 マウスによる操作

1) ユーザモードから、メニュ左上のメニュパスの表示欄をダブルクリックすることで、編集モードに切り替わります。
2) 編集したいメニュ項目を左クリックすると編集が開始されます。この状態でガイダンス欄をクリックすると、ガイダンス欄の編集ができます。
3) メニュ項目上で右クリックすると、ポップアップメニュが開きます。ポップアップメニュの操作については、あとの項で述べます。
4) 指定されたメニュコマンドがBSLスクリプトの場合、メニュ項目をダブルクリックすると、エディタが起動してBSLスクリプトファイルを開きます。詳細は、次項のポップアップメニュの「編集」の項を参照して下さい。
4) 「戻る」ボタンのクリックで、編集モードが終了し、ユーザモードに戻ります。
5) 編集が行われた場合、メニュの終了時にメニュファイルへの保存が問い合わせられます。

4.3 ポップアップメニュの操作

1) 編集モードで、 [Alt] またはマウスの右クリックで、ポップアップメニュが開きます。
 ポップアップメニュには、次の項目があります。
  編集 Ctrl+E
  実行 Ctrl+R
  戻る Ctrl+B
  終了 Ctrl+Q
2) 編集: 指定されたメニュコマンドがBSLスクリプトの場合、エディタを起動してBSLスクリプトファイルを開きます。
 エディタの起動は、 EditBSL.bsl によって行われます。開かれるべきBSLスクリプトファイルの名称は、コマンドラインの第一引数として EditBSL.bsl に渡されます。
 パス内に EditBSL.bal が見つからないとき、 NotePad.exe がエディタとして起動されます。
3) 実行: ユーザモードと同様に、メニュコマンドを実行します。
4) 戻る: メニュ階層の戻りを実行します。
5) 終了: 編集モードを終了してユーザモードに戻ります。


5.メニュシステムの仕様

5.1 メニュ項目の記述とコマンドの実行

 メニュ項目は、次の形式で記述します。

 項目名称,コマンド

 項目名称は、メニュ項目に表示される文字列です。
 コマンドがメニュ名をあらわすとき、項目名称は大きい文字で表示されます。この項目名称は次の階層で表示されるメニュのタイトルになります。
 コマンドがメニュ名をあらわさないとき、項目名称は小さい文字で表示されます。この場合、項目名称を2行にわたって表示することが可能です。項目名称中に "//" を挿入すると、改行に変換されて表示されます。

 コマンドには、メニュ名、またはコマンドラインを記述することができます。

 コマンドの先頭が "@" で始まるとき、メニュ名とみなされます。次の形式です。

 項目名称,@メニュ名

 メニュ名の大文字と小文字は区別されません。
 メニュ名には、半角の英字・数字および _ (アンダスコア)と、すべての全角文字が使用できます。英字・数字およびアンダスコア以外の半角文字(記号類)は、使用できません。ただし、先頭の1文字は、半角の数字であってはなりません。(本バージョンではこのチェックは行われません。)

 コマンドが "@" で始まらない場合、BSLコマンドとみなされます。通常は、BSLスクリプトファイル名を記述します。パラメタ文字列を記述することもできます。次の形式です。

 項目名称,スクリプトファイル名 {パラメタ}..

 また、任意のBSLコマンドを記述することもできます。マルチステートメントも記述可能です。次の形式です。

 項目名称,BSLコマンド {パラメタ}.. {; BSLコマンド {パラメタ}..}..

 実際は、コマンドの文字列はそのまま、外部実行されるBSLインタープリタのコマンドライン文字列として渡されます。したがってパス内に BSL.exe が存在している必要があります。

 コマンドとして、パッチファイル( .BAT )を記述することも可能です。また外部コマンド( .EXE )を指定することも可能ですが、いったんコンソールウィンドウが表示されてしまいますので、 Windows アプリケーションを実行する場合は次項で述べる内部実行による方法の方が適しているかもしれません。

 コマンドの実行の仕方、検索の方法などについては、BSLと同様です。すなわち、まずBSLスクリプトファイルとして検索し、見つからないときにはコマンドラインとしてオペレーティングシステムに引き渡します。
 検索は、カレントディレクトリおよび環境変数 PATH に設定されたディレクトリに対してこの順に行われます。アプリケーションの起動ディレクトリおよび Windows のシステムディレクトリは、明示的に PATH に指定されないかぎり検索の対象となりません。

5.2 メニュ前コマンド/内部実行

 メニュコマンドにメニュ名を指定するとき、そのメニュに移行する前に実行する「メニュ前コマンド」を指定することができます。次の形式です。

 項目名称,メニュ名:メニュ前コマンド {パラメタ}..

 メニュ前コマンドの記述の仕方、記述できる内容は前項で述べた通常のコマンドと同様です。マルチステートメントも記述できます。ただし、実行のされ方が異なります。前項で述べた通常のコマンドが BSL.exe により外部実行されるのに対し、メニュ前コマンドはメニュシステムに内蔵されたBSLエンジンにより内部実行されます。
 これにより、環境変数の共有が実現します。環境変数は、メニュシステム全体に対していわばグローバルなものとなります。メニュシステム中で環境変数を切り換えることができます。
 BSLステーションはコンソールを持ちません。そのためメニュシステム中から内部実行されるBSLスクリプトでは、コンソール入出力命令が GUI に変換されて実行されます。

 メニュ名を省略することで、内部実行されるコマンドを記述することもできます。次の形式です。

 項目名称,:コマンド {パラメタ}..

 この場合、コンソールは生成されず、コマンドは内部的に順実行されます。
 外部コマンドとしてGUIアプリケーションを直接起動する場合、この形式を使用するとコンソールの生成を防止することができます。次のようになります。

 項目名称,:Start アプリケーション名

 Start コマンドを使用するのは、アプリケーションの実行中もメニュを使用できるようにするためです。逆に起動されたアプリケーションの実行が終了するまではメニュを使用できないようにする場合は、 ":" のあとに直接アプリケーションを記述します。

 またBSLスクリプトを表示させずに最小化された状態で実行したい場合は、次のようにします。

 項目名称,:Start /Min BSLスクリプトファイル名

5.3 ガイダンス

 各メニュ項目に対応したガイダンスを記述することができます。ガイダンスは、そのメニュ項目にカーソルが移動したときに表示されます。メニュ項目以外のところにカーソルがあるとき、そのメニュ自身に指定されているガイダンスが表示されます。

5.4 ブートアップメニュについて

 メニュシステムの起動時に表示される初期メニュの前に、1階層のメニュが隠されています。これがブートアップメニュです。ブートアップメニュは、編集モードでだけ表示されます。
 ブートアップメニュの役割は、2つあります。
 1つは、ユーザモードで表示される初期メニュのタイトルやガイダンスを指定することです。BSLステーションでは、メニュのタイトルとガイダンスは、これを呼び出したひとつ前の階層のメニュ項目で決定されます。このため、初期メニュのタイトルやガイダンスの設定には、ブートアップメニュが必要となるわけです。またメニュ前コマンドを使用して、メニュが表示される前に、環境変数等を初期設定することもできます。
 ブートアップメニュのメニュ名は @@BootUpMenu です。ブートアップメニュ中には、1から20の20項目のメニュが登録できますが、一般にはこの中の1番のメニュが自動実行されます。
 ここから、ブートアップメニュのもうひとつの機能が実現されます。すなわち、ブートアップメニュに複数のメニュ項目を登録することにより、初期メニュを切り換えた複数のメニュツリーを、ひとつのメニュファイル中に実現できることです。起動時に表示される初期メニュの番号は、起動時のコマンドラインパラメタで指定することができます。

5.5 起動方法

 BSLステーションの起動方法は次の通りです。

 BSLSta {メニュファイル名 {起動メニュ番号}}

 メニュファイルを読み込み、起動メニュ番号で指定された初期メニュを表示します。
 メニュファイル名が省略された場合は、 Menu.BST を仮定します。
 メニュファイルの検索は、カレントディレクトリおよび環境変数 PATH に指定されたディレクトリに対して、この順に行われます。アプリケーションの起動ディレクトリおよび Windows のシステムディレクトリは、明示的に PATH に指定されないかぎり検索の対象となりません。拡張子は、省略可能です。
 .BST 以外の拡張子を使用することもできます。この場合、パス内の検索は行われません。
 指定されたメニュファイルが存在しない場合、新規メニュが作成されます。この方法で、空の初期メニュを作成することができます。実際のファイルへの書出しは、メニュシステムの終了時に行われます。
 起動メニュ番号が省略された場合は 1 を仮定します。

5.6 メニュファイルへの保存

 メニュに編集が加えられた場合、メニュシステムの終了時に、変更を保存するかどうか問い合わせられます。
 保存が指示された場合、メニュファイルはバックアップ後に保存されます。
 バックアップファイル名は、拡張子も含めた元のファイル名に .BAK を付け加えた形になります。

5.7 メニュファイルの記録形式

 メニュファイルは、CSV形式のテキストファイルです。ひとつのメニュ項目に、1行のレコードが対応します。レコードは整列された状態で保存されています。項目名称、ガイダンスの文字列中に含まれる改行文字は、 "//" に変換されています。
 レコードの項目は次の通りです。

 メニュ名,項目番号,項目名称,コマンド,ガイダンス

5.8 バージョンの表示

 キーボードまたはマウスの操作により編集モードに移行したとき、左上のメニュパスの表示域にバージョンが表示されます。