さるもすなるぷろぐらむT  Panel

●コマンド起動パネル
<作った背景>
最近のウィンドウベースの環境では、まったく問題にならない話なのですが、DOSなど
を使っていた時代には、多くのコマンド(ツール)が起動時のパラメタ指定でその機能
の選択を行うようになっていました。
例えば、FORMATコマンドで1024byte/sectorにFDをフォーマットしようと思って
C:\>format と打ってからその後に続くパラメタが浮かんで来ない、みたいなことが
ありませんか? 結局
C:\>format /? とか打って見てパラメタのヘルプを表示して指定の仕方を確認して
から、もう一回
C:\>format A: /t:77 /n:8 とやることが私は多かった。
(現にいまもそうやって調べました。)

いちいちパラメタの使い方なんて覚えてられないし、ツールによってはヘルプも出して
くれないものもあります。
私の作った他のツールも機能拡張して行く上で、どんどん起動パラメタの種類が多く
なってきて、自分でさえも分からなくなることが多くなってしまいました。

そこで、画面にある程度の説明を表示しておいて、その説明を見ながらコマンド(ツー
ル)を起動できるようにと考えたのがこれです。誰かが1度画面を作ってさえくれれば、
他の人も助かるわけです。


<機能の概要>
画面への表示内容、起動するコマンドとパラメタなどの情報は、全てパネルファイル
(.pnl)に持っておいて、変更したい部分のパラメタは、画面上で入力させてから起動
させることができます。



よって、このツールでオリジナルのツールを起動させようと思った場合には、パネル
ファイルの作り方を覚える必要があります。これまた、覚えるのは大変なので、ある
程度の作成ツールpnlmake.bat (pnlmakr.exe+パネル群))も用意しています。


<パネルファイルの内容>
パネルデータは大まかには以下の構成になっています。

●制御ブロック
 パネルの動作を規定する部分です。各行/カラムごとに意味があります。
 以下に概要を説明しますが、不明部分はpnlmakeを使うと分かると思います。

 1行目:パネルの表示位置、サイズ、印影の方向を指定します。
      x、y、width、height、direction
      の各数値をカンマで区切って指定します。
 2行目:パネル上の出力フィールドを表す制御文字を規定します。
      各カラムごとに背景色と文字色の組み合わせが決まっていて、そのカラム
      に指定された文字がその背景色と文字色を使用するための制御文字にな
      ります。例えば、10カラム目に"!"を指定すると、画面データ内で"!"が指
      定された以降、次の制御文字が見つかるまでは、背景色グレーの文字色
      青で表示されます。
 3行目:パネル上の入力フィールドを表す制御文字を規定します。
      2行目と同じように、カラムごとに背景色と文字色の組み合わせが決まって
      いて、そのカラムに指定された文字が画面データ上での入力フィールドの
      開始を表します。そのフィールドの背景色と入力した場合の文字色は、制
      御文字が指定されたカラムで決まります。
      画面データ上で入力制御文字の後ろに指定された制御文字以外の文字
      (列)が入力フィールド名となります。
 4行目:パネル表示中にPFキーを押したとき、PFキー毎に終了するとか、他のパ
      ネルを表示するとかの機能を持たせることができます。
      その遷移先のパネル名(.pnlを除いて可)をカンマで区切って指定します。
      もし、終了させたい場合は、"exit"を指定します。
      例えば、",,,next,,,,exit"と指定すると、PF4を押したときには、next.pnlの
      処理に移行し、PF8を押すとNGAPNLRは終了します。
 5行目:パネル上に"N"という名前の入力フィールドがある場合、そのNに入力した
      数値1〜10で次に表示するパネルを切り換えるような場合に、その遷移先
      のパネル名(.pnlを除いて可)をカンマで区切って指定します。
      例えば、"next1,next2,next3,exit"と指定した場合、入力フィールドNに1〜3
      の値を指定するとそれぞれnext1〜next3.pnlの処理に移行し、4を入力す
      るとNGAPNLRは終了します。
 6行目:起動するコマンド(ツール)を指定します。コマンドライン風に指定します。
      パネル上の入力フィールドに入力したデータをパラメタとして使用する
      場合は、入力フィールド名を前後%付きで指定します。
 7行目:パネルを表示する前の動作(クリアするかどうか)、コマンド起動直前の
      動作(画面をクリアしてからとか)、コマンド起動直後の動作とその後の
      動作などを指定します。詳細は、pnlmakeで説明しています。

●コメント
 制御ブロック後、#STARTが現れるまでの行はコメント行として扱われます。
 パネルの動作には、何も影響しません。

●画面データ
 "#START"の行と"#END"の行に挟まれた部分がパネルデータの表示部として
 表示されます。制御文字があるとその位置以降の表示属性が変わります。
 デフォルトは、背景色黒、文字色白の出力フィールドです。
 出力フィールド制御文字以降の文字列は画面に表示されますが、入力フィールド
 制御文字以降の文字列は入力フィールド名として扱われ、Enter押下時には、
 入力値といっしょに環境変数として登録します。

●入力データ格納行
 パネル上の入力フィールドに入力したデータを次回パネル表示時の初期値として
 パネルデータ内に保持することができます。そのために使用する部分です。
 入力値を保持しないモードの場合は、デフォルト値の格納エリアとなります。
 格納の形式は、
フィールド名=デフォルト値
 :
 :
 でいいはずです。


<例>
以下は、パネルデータとその表示です。


上記データをNGAPNLRに与えると以下の画面を表示します。

Enterキーを押すとNGACVWR.EXEを実行します。


<起動方法>
以下のように起動します。
C:\NGATOOLS>ngapnlr xxxxx.pnl




<ご意見、ご質問は以下にお願いします。>
掲示板 メール

inserted by FC2 system