同じ機能を持ったウィンドウをたくさん表示したい場合、ウィンドウ全体にタイリングすると見やすいです。
そこで、一つの再入可能VIをタイリングして複数表示するためのサブVIを作成しました。
"VI path"に呼び出すVIのパスを入力します。
"Tiling"には、タイリングで並べる個数を、"Columns"に横に何列か、"Rows"に縦に何行かを入力します。
"Offset"には、画面上での表示エリアのオフセットを入力し、画面の上下左右の余白を設定します。
実行すると呼び出されたVIがタイリングされて表示されます。
"表示エリア"には、オフセットを除いた表示エリアを表示します。
"VIRefs"には、呼び出されたVI(クローン)のリファレンスが出力されます。
"PanelBounds"に表示するサイズを入力すると、指定された位置で実行されます。
呼び出し側の"TilingWindow.vi"では、ディスプレイのワークスペースの範囲を取得します。
このワークスペースからオフセットの値を引き、表示エリアを計算します。
この表示エリアの中に指定された個数のウィンドウがタイリングできるように位置を計算します。
ウィンドウ表示のVIを呼び出すには、「VIリファレンスを開く」と「Run VI」メソッドを用います。
実行前に、ウィンドウのサイズを指定するために「Ctr Val.Set」メソッドを使っています。
また、実行後にウィンドウを開くために「FP.OPEN」メソッドを実行します。
「Run VI」メソッドで、"Wait Until Done"を"False"で実行することで、このVIは、呼び出されたVIの終了を待たずに次の処理へと進みます。
呼び出されるVIは必ず"再入実行可能"に設定する必要が有ります。
「ファイル」-「VIプロパティ」-「実行」-「再入実行」にチェックが入っているか確認してください。
また、このVIは終了後に、インボークノードでフロントパネルを閉じてから終了する必要があります。
テスト用VIも作りましたのでご利用ください。
テスト時の画像