配列要素やクラスタ要素のプロパティとメソッドにアクセスする

更新しました Oct 25, 2023

環境

ソフトウェア

  • LabVIEW

  • 配列やクラスタがあり、プログラム的にプロパティを変更したり、要素に対応するメソッドを呼び出したいです。これを行うにはどうすればよいですか?
     
  • 項目名付きの数値データタイプ(列挙体やテキストリングなど)の配列を使用していますが、配列要素を同じデータタイプの変数に設定すると、何も変更されないか、間違ったデータが渡されるように見えます。項目名付き数値の文字列[]プロパティを直接編集して、文字列が配列のすべての要素にコピーするにはどうすればよいですか?

メモ: 配列内要素のプロパティを編集すると、配列内のすべての要素に対するプロパティを編集することになります。
たとえば、ブールボタンの配列があり、ブールの色を青に設定すると、すべてのボタンが青になります。これは、配列内のすべての要素が同じプロパティを共有しているためです。データ構造が異なる要素に対して異なるプロパティを格納する必要がある場合は、クラスタの使用を検討する必要があります。ただし、文字列配列で文字列表示器のテキストなど一部のプロパティは例外があります。
 

プログラム的にプロパティを変更したり、配列またはクラスタ内の要素のメソッドを呼び出したりするには、次の手順を行います。
 

  1. 対象の配列またはクラスタへのリファレンスを取得します。
    リファレンスを作成するには、ブロックダイアグラムから端子を右クリックして、作成>>リファレンスを選択します。
     
  2. 配列またはクラスタ要素へのリファレンスを取得します。
    配列またはクラスタのリファレンスを右クリックし、作成>>プロパティノード>>配列要素>>リファレンスを選択するか、新しいプロパティノードをダイアグラムに配置して配列のリファレンスをリファレンス入力に配線します。
     
  3. 要素タイプを指定します。
    この時点で、LabVIEWは要素タイプが何かを把握していません。それが配列の要素であるということだけです。そのため、LabVIEWに要素タイプを通知する必要があります。これには、関数パレット>>アプリケーション制御サブパレットにあるより特定クラスに変換関数を使用します。
    ターゲットクラスの参照を作成するには、より特定クラスに変換関数のターゲットクラス入力端子を右クリックして、作成>>定数を選択します。作成時は一般クラスです。この定数をクリックしてドロップダウンメニューより、配列内のデータタイプに対応するクラスを見つけます。(ほとんどの一般的なデータタイプは、一般>>Gオブジェクト>>制御器の中にあります。)
     
  4. 要素のプロパティに書き込みまたは読み取ります。
    ブロックダイアグラムにプロパティノードまたはインボーグノードを配置して、より特定クラスに変換関数の出力端子に配線します。これで、そのタイプで利用可能な個々のプロパティまたはメソッドにアクセスできるようになります。

 

下図は、この方法で文字列配列要素のテキストカラーとサイズをプログラム的に変更する方法を示しています。



 

メモ: この画像は、プロジェクトで再利用できるLabVIEWコードを含むLabVIEWスニペットです。スニペットを使用するには、画像を右クリックしてコンピュータに保存し、ファイルをLabVIEWダイアグラムにドラッグします。