サポート > PC-MAPPING ヒント集 > スクリプト > スクリプトによるクイックバーのボタン切り替え
スクリプトによるクイックバーのボタン切り替え
クイックバーのボタンを押す事によって、異なるクイックバーの設定を読み込み、表示します。
スクリプトを使用せずクイックバーを入れ替える事もできます。詳しくは「■ヒント」をご覧下さい。
■ サンプル
サンプル[script14.zip(約636KB)]をダウンロードする
sample.pcm:サンプルプロジェクトファイル
sample.pcm へのショートカット:起動オプション(-prmdir)を実行するためのショートカット
QuickBarLoad.js:メインメニュー表示JScript
QuickBarLoad.vbs:メインメニュー表示VBScript
QuickBarDisp.js:レイヤーの表示・非表示読み取りJScript
QuickBarDisp.vbs:レイヤーの表示・非表示読み取りVBScript
LayerDisp.js:レイヤーの表示・非表示切り替えJScript(文字列色の使用)
LayerDisp.vbs:レイヤーの表示・非表示切り替えVBScript(文字列色の使用)
Main.qmn(「■ 注意※1参照):メインメニュークイックバー
Disp.qmn(「■ 注意※1参照):表示メニュークイックバー
その他:下記ホームページ参照

《内容》
ユーザー定義メニューに登録し、引数から必要な条件を取得しています。
処理を行うために必要なクイックバー設定ファイルのファイル名と表示・非表示の切り替えを行うレイヤータイトルを記述します。
クイックバーのボタンにより引数から得られたレイヤーの表示・非表示を切り替えます。

■ 準備
JScriptの場合「*.js」、VBScriptの場合「*.vbs」を記述します。
ここでは、「*.js」を例に記述します。

  1. ダウンロードしたファイルを「C:\Sample\script14」フォルダーへ解凍します。

  2. 起動オプション(-PrmDir) を参考にプロジェクトファイルの起動ショートカットを作成しました。
    ここではリンク先を
    「"C:\Program Files\PC-Mapping8\Pcm.exe"△-prmdir△"C:\sample\script14"△"C:\sample\script14\sample.pcm"」
    (△は半角スペース)
    と設定しています。

  3. プロジェクトファイルを上記のショートカットから起動します。

  4. ダウンロードしたスクリプトファイル「QuickBarLoad.js」をユーザーメニューに登録します。
    [ワークスペース]リボン-[カスタマイズ]-[ユーザーメニュー]を実行して[ユーザー定義メニュー1]ダイアログボックスを表示します。
    <追加>ボタンをクリックし、[ユーザー定義メニュー2]ダイアログボックスを表示します。
    スクリプトを登録して、引数を以下のように設定します。
    ここでは
    • メニュー名「メインメニュー」
    • 分類パネル「クイックバー」
    • 引数「C:\sample\script14\main.qmn」
    • ファイル名「C:\sample\script14\QuickBarLoad.js」
    と記述しました。

  5. 同様に[ユーザー定義メニュー]ダイアログボックスに
    • メニュー名「表示メニュー」、分類パネル「クイックバー」、引数に読み込むクイックバーのファイル名「C:\sample\script14\disp.qmn」、実行するVBスクリプトのファイル名「C:\sample\script14\QuickBarDisp.js」
    • メニュー名「画地 表示・非表示」、分類パネル「レイヤー表示」、引数に制御を行なうレイヤー名「画地」、実行するVBスクリプトのファイル名「C:\sample\script14\LayerDisp.js」
    • メニュー名「道路水路境界 表示・非表示」、分類パネル「レイヤー表示」、引数に制御を行なうレイヤー名「道路水路境界」、実行するVBスクリプトのファイル名「C:\sample\script14\LayerDisp.js」
    • メニュー名「大字界 表示・非表示」、分類パネル「レイヤー表示」、引数に制御を行なうレイヤー名「大字界」、実行するVBスクリプトのファイル名「C:\sample\script14\LayerDisp.js」
    と記述します。
    ※各スクリプトの内容につきましては、スクリプトファイル内のコメントをご覧下さい。

■ 解説
  1. 起動ショートカットを作成していますので、これを実行して下さい。

  2. 以下のようなプロジェクトファイルがあります。
    このプロジェクトには「画地」レイヤー、「道路水路境界」レイヤー、「大字界」レイヤーが登録されています。
    クイックバーのメニューには「表示メニュー」が登録されています。
    このプロジェクトがアクティブである事を確認し、(「■ 注意」-※2参照)クイックバーの表示メニューボタンをクリックします。

  3. クイックバーのメニューボタンが以下のように各レイヤーを示すボタンに切り替わります。
    ここで、表示・非表示を切り替えたいレイヤーのボタンをクリックします。

  4. 以下のようにクリックしたレイヤーの表示が切り替わり、クリックしたクイックバーのメニューボタンが表示に従い切り替わります。
    また、<戻る>ボタンをクリックする事によりメインメニューに戻ります。
    なお、アクティブなレイヤーは非表示にする事ができません。

■ ヒント
  • ここでは、レイヤーの表示・非表示を確認するために、ボタンの文字色を変更しました。
    これ以外にも「トグルボタン」形式にする事によってボタンのOn/Offで表示・非表示を確認する事もできます。
    詳しくは、レイヤー、データベース、広域イメージ、広域ベクタの表示・非表示 をご覧下さい。

  • ここでは、クイックバー入れ替え時にレイヤーの表示・非表示の状態を確認し、ボタンに反映しました。
    これ以外にも、アイドル時に自動的にスクリプトを実行する「ステートコントロールスクリプト」を使用する事によりリアルタイムに更新する事ができます。
    詳しくは、レイヤー、データベース、広域イメージ、広域ベクタの表示・非表示 をご覧下さい。

  • スクリプトを使用せずにコマンドからクイックバーを切り替える事も可能です。
    QuickBarLoad△クイックバーファイルパス(*.qmn)
    クイックバーのボタンに「QuickBarLoad」コマンドと切り替えたいクイックバーのファイルパスを記述します。
    ボタンを押すと、そのクイックバーが切り替わります。
    ただし、切り替わると現在のクイックバー(pcm.qmn)に上書きされます。
    「■ 注意」のMain.qmn、Disp.qmnの作成方法についてをご覧の上、対処して下さい。

    Quickpopup△クイックバーファイルパス(*.qmn)
    クイックバーのボタンに「Quickpopup」コマンドと表示したいクイックバーのファイルパスを記述します。
    ボタンを押すと、そのボタンからさらにクイックバーが表示されます。

■ 注意
※1 Main.qmn、Disp.qmnの作成方法について
  1. -prmdirで指定したフォルダのPcm.qmnを削除します(-prmdirを使用しない場合、PC-MAPPINGをインストールしたフォルダー)。
  2. PC-MAPPINGを起動して、クイックバーが解除されている事を確認して下さい。
  3. Main.qmnを読み込んだ時に表示したいクイックバーを作成します。
  4. フォルダー内にPcm.qmnが作成されるのでこれをコピーしてMain.qmnというファイル名に変更します。
  5. 再び、フォルダー内のPcm.qmnを削除します。
  6. 同様にDisp.qmnを読み込んだ時に表示したいクイックバーを作成します。
  7. フォルダー内のPcm.qmnをコピーしてDisp.qmnというファイル名に変更します。

※2 クイックバーのボタンの立体表示について
本プロジェクトのようにクイックバーのボタンに立体感を与えたい場合は[ワークスペース]リボン-[カスタマイズ]-[クイックバー]の「クールルックを適応しない」チェックボックスをONにして下さい。
「クールルック」チェックボックスをOFFにして、カーソルを近づけるとクイックバーボタンが浮き上がります。

※3 利用方法について
スクリプトを利用して他のプロジェクトに対して同様の事を行なう場合、以下の点をご確認下さい。
  • ユーザー定義メニューに「LayerDisp.js」を登録し、引数にレイヤータイトルを記述しましたか?
  • レイヤータイトルとクイックバーのボタン文字列は同じですか?
  • 編集レイヤーは表示・非表示できません。
  • プロジェクトに対応するクイックバーは作成しましたか?
    クイックバーの作成については※1をご覧下さい。