ダイナミックなイベント登録を使用すると、アプリケーションVI制御器などのVIサーバリファレンスを使用して、実行時にLabVIEWで生成したいイベントのオブジェクトを指定することができます。

使用するオブジェクト

次のブロックダイアグラムオブジェクトを使用してイベントをダイナミック登録します。

解決方法

次のブロックダイアグラムを作成して、文字列制御器上にマウス境界内およびマウス境界外をダイナミック登録します。



以下のリストには、前のダイアグラムについての重要な情報が記載されています。

LabVIEWでイベントを生成したいオブジェクトへのVIサーバリファレンスを取得する。上の例で示した文字列制御器定数などのような 制御器リファレンス定数を取得するには、プロパティノードを使用してその制御器のVIをクエリするか、制御器を右クリックしてショートカットメニューから作成»リファレンスを選択します。
「イベント登録」関数を使用して、イベントをダイナミック登録します。この関数をサイズ変更して、別のイベントを選択して、1つのリファレンスに対して複数のイベントを登録することができます。上の図に示すように、イベントソース入力の下矢印をクリックして、マウス境界内、マウス境界外などリファレンス用に生成するイベントを選択します。登録後、LabVIEWはイベントストストラクチャが実行されてイベントを処理するまでイベントをキューに入れ続けます。
ヒント イベント登録Refnum上にカーソルを移動すると、詳細ヘルプウィンドウに登録されたイベントを表示できます。
イベントセレクタラベルを右クリックすると、イベントを編集ダイアログボックスが表示されます。このダイアログボックスを使用して、ダイナミック登録されたイベントを処理するようにイベントストラクチャを構成します。ダイアログボックスのイベントソースセクションには、ダイナミック登録された各イベントソースの一覧を表示するダイナミック小見出しが含まれています。イベントストラクチャで処理するイベントを選択した後に、イベントデータを処理するようにケースを設計します。
「イベント登録解除」関数を使用して、イベントの生成を停止します。「イベント登録解除」関数が実行されると、LabVIEWはイベント登録Refnumが指定するすべてのイベントを登録解除し、イベント登録Refnumに関連付けられたイベントキューを破棄して、キューに残っているすべてのイベントを破棄します。

イベントをダイナミック登録する際の注意とアドバイス

  • 「イベント登録」関数のイベント登録refnum入力は、既存の登録を編集する場合のみに配線します。
  • ダイナミックイベントを処理するイベントストラクチャを、それぞれ一意の「イベント登録」関数に配線します。「イベント登録」関数のイベント登録Refnumワイヤを分岐することで、複数のイベントストラクチャが1つのキューからイベントを取り出すことができ、これにより予期しない動作の原因になる可能性のある競合状態が発生します。
  • 処理するイベントストラクチャのイベントを構成する前に、LabVIEWでイベントを使用する際の注意とアドバイスを参照してください。

サンプル

イベントをダイナミック登録するサンプルについては、labview\examples\Dialog and User Interface\Events\Events.lvprojを参照してください。