サンプルコードとドキュメント

VI実行中に制御器・表示器をマウスでドラッグできるようにする

コードとドキュメント

添付

概要

VI実行中は通常、制御器をマウスでドラッグできませんが、プログラム的にドラッグするようにできます。

詳細

VI実行中に制御器をマウスでドラッグできるようにするには、イベントストラクチャを使ってマウスのイベントを受け取り、それに応じてプログラム的に制御器・表示器を移動します。

マウスダウンイベントでドラッグする制御器を特定し、マウス移動イベントが発生するたびに制御器・表示器の位置を変更します。

マウスボタンを離すか、マウスがウィンドウ外に移動したら、ドラッグを終了します。

このVIでは、すべての波形グラフを実行中にドラッグできるようにしています。

実装方法

(詳細は添付VIのブロックダイアグラム上のコメントをご覧ください)

  1. ドラッグしたい制御器のリファレンスを取得します。
    1. プロパティノードを使用してすべての制御器のリファレンスを取得します。
    2. すべての制御器のリファレンスから、特定の種類の制御器リファレンスのみを抽出します。
      このサンプルVIでは、波形グラフのリファレンスのみを抽出しています。
  2. イベント登録ノードで、ドラッグしたい制御器の「マウスダウン?」イベントを登録します。
  3. イベントストラクチャで、それぞれのイベントを処理します。
    1. 「マウスダウン?」:登録した制御器がクリックされたら、マウスの位置を取得
    2. 「マウス移動」:フロントパネル内でマウスが移動したら、ドラッグ中の場合は制御器を移動
    3. 「マウスアップ」:左マウスボタンが離されたら、ドラッグ状態をキャンセル
    4. 「マウス境界外」:マウスがウィンドウの外に行った場合、ドラッグ状態をキャンセル

必要なもの

ソフトウェア

  • LabVIEW 2014以降

VIスニペット(LabVIEW 2015)

dragGraphControl.png

NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。

寄稿者