この記事で扱っていること
- 制御器や表示器をハイライトする方法
を紹介しています。
注意:すべてのエラーを確認しているわけではないので、記事の内容を実装する際には自己責任でお願いします。また、エラー配線は適当な部分があるので適宜修正してください。
LabVIEWは、凝った作りをしない限りは制御器パレットに用意された制御器や表示器をフロントパネルに使用することになります。
この場合、例えばブールはわかりやすく種類が多かったりしますが、それ以外のデータタイプだと種類が(シルバーやクラシック、モダンなどのスタイルを統一している場合に)多いわけではないため、見た目が全く同じでラベルだけで区別せざるを得なくなります。
そこで、特定の制御器や表示器を必要に応じてハイライトする方法を考えました。
どんな結果になるか
特定の機能を持たせているわけではないのでフロントパネル上には無造作に制御器や表示器を置いています。
プログラムを実行すると、キーボードで何かボタンを押すたびに赤い枠が表示され、これが次々移っていきます。
プログラムの構造
からくりはシンプルで、装飾体を使用して装飾体の枠組みを各制御器および表示器の大きさに合わせているだけです。
イベントとしてはキーダウンイベントを使用しています。
色の部分で赤を指定している部分がありますが、他の色を選択すればもちろん他の色でハイライトすることもできます。なお、色の指定で「T」と書かれているのはカラーパレットの右上に表示されているもので、透明(Transparent)のことです。
装飾体は、フロントパネル上で一つ適当に置いておきます。置かれている装飾体が一つだけなら、問題ないのですが、装飾体が二つ以上置かれている場合には、「一番最後にフロントパネルに追加した装飾体」についてのプロパティを変更することになります。
なお、イベントの中で装飾体のリファレンスの数に1を出した数を「商&余り」の割る方の数に指定していますが、これはキーダウンイベントが繰り返されハイライトされる制御器/表示器が切り替わって一巡した後、ハイライトがされなくなるという状態を作るためにこのようにしています。
また、この組み方の場合、ハイライトされる制御器や表示器は上から順番というわけではなく、「フロントパネルに追加された」順となります。
プログラムを書くときに、それがどのような順番になっているかはイベントストラクチャから見ることができます。
特定の制御器や表示器のみをハイライトの対象にする場合
上記の方法では、フロントパネル上の全ての制御器や表示器に対して順番にハイライトするという操作を行っていました。
一方で、ある特定の制御器や表示器しかハイライトしない場合には、それらハイライトしたい対象のリファレンスを用意してそのリファレンス配列を作る必要があります。
このようにすれば、リファレンスで指定した制御器/表示器しか装飾体で囲われなくなります。
特定のキーが押されたときのみ処理を行う
この状態だとキーボードを押すたびにハイライトされる箇所が変わり面倒なので、キーボードの特定のキーを押した時のみ反応するようにさせることもできます。
この記事では、フロントパネル上の制御器や表示器を装飾体でハイライトする方法を紹介してきました。ユーザーに複数の制御器を特定の順番で使用してもらいたいときに順番にハイライトさせてユーザーの操作を誘導するようにするときなど参考になればうれしいです。
ここまで読んでいただきありがとうございました。
コメント