VIをカスタマイズする
- 更新日2025-08-27
- 8分で読める
VIとサブVIは、各アプリケーションのニーズに応じて動作するように構成できます。たとえば、ユーザ入力が必要なサブVIとしてVIを使用する場合は、そのVIを呼び出すたびにフロントパネルが表示されるようにVIを構成します。
VI内で、またはVIサーバを使用してプログラム的に、さまざまな方法でVIを構成することができます。
VIの外観と動作を設定する
VIの外観と動作を設定するには、ファイル»VIプロパティを選択します。VIプロパティダイアログボックスの上部にあるカテゴリプルダウンメニューを使用して、複数の異なるオプションカテゴリから選択します。
メニューをカスタマイズする
作成するすべてのVIに対してカスタムメニューを作成したり、VIのメニューバーの表示/非表示を構成できます。メニューバーの表示/非表示を切り替えるには、ファイル»VIプロパティを選択し、カテゴリプルダウンメニューからウィンドウの外観ページを選択し、カスタマイズするボタンをクリックし、メニューバーを表示するチェックボックスをオンまたはオフにします。
メニューを構成するには、メニューを作成し、ユーザがメニュー項目を選択したときに実行されるブロックダイアグラムコードを記述する必要があります。
メニューを作成する
カスタムメニューの作成やLabVIEWのデフォルトメニューの変更は、VIの作成時に行うか、あるいはVIの実行中にプログラム上で行います。
デフォルトメニューバーの代わりにVIにカスタムメニューバーを追加するには、編集»ランタイムメニューを選択して、メニュー編集ダイアログボックスでメニューを作成します。ランタイムメニュー (.rtm) ファイルが作成されます。.rtmファイルを作成して保存する際に、VIと.rtmファイルの相対パスを同一にしておく必要があります。制御器を右クリックして、上級»ランタイムショートカットメニュー»編集を選択することによって、カスタムランタイムメニューを作成することもできます。このオプションは、ショートカットメニューエディタを開きます。
メニューエディタおよびショートカットメニューエディタダイアログボックスを使用して、LabVIEWがデフォルトメニューで提供するメニュー項目であるアプリケーション項目、またはユーザが追加するメニュー項目であるユーザ項目を持つカスタムメニューを作成することができます。LabVIEWはアプリケーション項目の動作を定義しますが、ユーザ項目の動作はユーザがブロックダイアグラムで制御します。また、メニューエディタおよびショートカットメニューエディタダイアログボックスを使用して、カスタム.rtmファイルをVIまたは制御器に関連付けることができます。VIを実行すると、VIはその.rtmファイルからメニューを読み取ります。
メニューエディタおよびショートカットメニューエディタダイアログボックスを使用して、VIの編集時にメニューをカスタマイズします。メニュー関数を使用して、実行時にメニューをプログラム的にカスタマイズします。これらの関数を使用して、ユーザ項目の属性を挿入、削除、変更することができます。アプリケーション項目を追加または削除するだけで、LabVIEWがアプリケーション項目の動作および状態を定義します。
実行モードのショートカットメニュー
VIの実行中、またはVIが実行モードにあると、デフォルトですべてのフロントパネルオブジェクトにはショートカットメニューの短縮版があります。短縮版のショートカットメニュー項目は、オブジェクトのコンテンツの切り取り、コピー、貼り付けの操作、オブジェクトをデフォルト値に設定する操作、オブジェクトの説明を読み取る操作に使用します。
| メモ 実行モードでは、表示器のデータを再初期化、切り取り、貼り付けできません。デフォルト値に再度初期化、データを切り取り、データを貼り付けの各オプションは、実行モードの制御器でのみ使用可能です。 |
より複雑な制御器の一部には、追加オプションがあります。たとえば、ノブショートカットメニューには、指針を追加してスケールマーカの表示変更を行う項目が含まれます。
VIに含まれる各制御器のランタイムショートカットメニューをカスタマイズできます。ショートカットメニューをカスタマイズするには、制御器を右クリックし、ショートカットメニューから上級»ランタイムショートカットメニュー»編集を選択して、ショートカットメニューエディタダイアログボックスを表示します。ショートカットメニューエディタダイアログボックスは、デフォルトのショートカットメニューまたはカスタマイズされたショートカットメニューファイル (.rtm) を制御器に関連付けます。ショートカットメニューをプログラム的にカスタマイズできます。
また、フロントパネルにショートカットメニューを追加することもできます。ショートカットメニューをフロントパネルに追加するには、ショートカットメニュー起動およびショートカットメニュー選択ペーンイベントを使用します。
また、制御器でランタイムショートカットメニューを無効にすることもできます。
| メモ カスタムのランタイムショートカットメニューはVIの実行中のみ表示されます。 |
また、マウスダウン?およびショートカットメニュー起動?の各フィルタイベントを使用して、制御器を左クリックするとショートカットメニューが表示されるようにすることもできます。この動作を実行するには、マウスダウン?フィルタイベントのボタンイベントデータフィールドにより返されるデータを変更します。左マウスボタンの値は1、右マウスボタンの値は2です。制御器を左クリックするとショートカットメニューが表示されるようにするには、ボタンイベントデータフィールドを2に変更します。これにより、左クリックが右クリックとして処理されます。
メニュー選択処理
カスタムメニューを作成するときは、大文字と小文字の区別がない固有の文字列識別子 (であるタグ) を各メニュー項目に割り当てます。ユーザがメニュー項目を選択したときは、「メニュー選択取得」関数を使用してそのタグをプログラム的に取り出します。各メニュー項目のタグの値に基づいて、LabVIEWはブロックダイアグラム上で各メニュー項目に対しハンドラを提供します。ハンドラは、選択されているメニューを確認し、適切なコードを実行することができるWhileループとケースストラクチャの組み合わせです。
カスタムメニューを作成した後、そのメニュー内の各項目を実行または処理するケースストラクチャをブロックダイアグラムで作成します。このプロセスはメニュー選択処理と呼ばれます。LabVIEWは、すべてのアプリケーション項目を自動的に処理します。
以下のブロックダイアグラムでは、ユーザが選択したメニュー項目を「メニュー選択取得」関数が読み取ってケースストラクチャに渡し、ケースストラクチャでメニュー項目が実行されています。
あるメニュー項目の処理に長時間かかることがわかっている場合は、「メニュー選択取得」関数のメニューを無効入力にブール制御器を配線し、そのブール制御器をTRUEに設定してメニューバーを無効にします。これにより、LabVIEWがメニュー項目を処理している間はユーザがメニュー上で他の項目を選択できなくなります。LabVIEWによるメニュー項目の処理が完了した後、「メニュートラッキング有効」関数にTRUE値を配線してメニューバーを有効にしてください。
また、イベントストラクチャを使用して、メニューイベントを処理することもできます。