NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

実行時、タブ制御器中にある数値制御器などの制御器の背景色を変える方法があるでしょうか。

私も確認できませんでした。

 

ちなみに、以下のような方法もあります。

 

tab.png

 

制御器リファレンスをより具体的なクラスにキャストする方法です。クラスが一致しない場合はエラーがでますので無視し、次のリファレンスをテストします。M.Shiraishiさまの方法と同様な動作が期待できると考えます。

 

 

TailOfGon
Certified LabVIEW Architect 2013
0 件の賞賛
メッセージ11/19
1,682件の閲覧回数

タイブデスクリプタプロパティは無くなっちゃったんですかね・・・

なんせ当方のverは6とか7とかの古いものなので、しかしある程度基本的なプロパティだと思っていたので

まさか無くなったとは。失礼しました。

 

TailOfGonさんの方法で具体的なクラスにキャストして一致するかしないか選別できるのであれば

それでいけそうですね。

0 件の賞賛
メッセージ12/19
1,674件の閲覧回数

LabVIEW 2015を見る限り、そのプロパティは無くなったように見受けられます。M.Shiraishi様のVIはLabVIEW 2015で開くことができますので、下位互換を残しつつ、サポートが終了したと思われます。コピーペーストができますので使いまわしはできるようですが。

 

現在は「より特定のクラスに変換」関数を使用したタイプチェックが推奨されているということなのかもしれないですね。

TailOfGon
Certified LabVIEW Architect 2013
0 件の賞賛
メッセージ13/19
1,662件の閲覧回数

皆様、お邪魔します。

 

LabVIEW2010SP1を使っているものです。
使えるのに、確かにプロパティの一覧に表示されないですね。

 

クラス毎に処理を分けた方が良いのかも
M.Shiraishi様のサンプルをいじってみました。

 

タイプデスクリプタ(LabVIEW 2014ヘルプ)
http://zone.ni.com/reference/ja-XX/help/371361L-0112/lvconcepts/type_descriptors/

 

クラス IDプロパティ(LabVIEW 2013ヘルプ)
http://zone.ni.com/reference/ja-XX/help/371361K-0112/lvprop/gen_class_id/

0 件の賞賛
メッセージ14/19
1,641件の閲覧回数

coco1104

 

TypeDescriptorがプロパティノードに現れない件ですが、調べてみましたところ、こちらのプロパティはLabVIEW7.1までしかサポートされていないとのことでした。よってその後のバージョンでは使用はできるものの(サポートはされていません)、プロパティノードで選択することはできません。

 

以上、よろしくお願いします。

0 件の賞賛
メッセージ15/19
1,627件の閲覧回数

Type Defが含まれたプロパティノードは上部がピンクになっており、これはそのプロパティがobsoletedであることを示しています。

下位互換性のために残っているみたいですね。

 

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 件の賞賛
メッセージ16/19
1,609件の閲覧回数

皆様 

 

いろいろ調べて頂いて、メッセージありがとうございます。

 

TailOfGon様の具体的なクラスにキャストする方法を参考して、

設計通りの動作がうまくできました。

大変勉強になりました。

 

ありがとうございました。

 

 

0 件の賞賛
メッセージ17/19
1,600件の閲覧回数

こういうことですよね?私が気づいていない方法があれば知りたいので教えてもらえると幸いです。

 

Class Casting.png

メッセージ18/19
1,550件の閲覧回数

TAKASU様 クラス名を取得して条件にするので、エラークラスタをあてにしなくても良いのでダイアグラムがすっきりしていいですね。

 

「具体的なクラスに変換」を使った場合にもっとダイアグラムをすっきりできないか考えてみました。

 

direct_manip.JPG

 

上のようにすると、すっきりしてよさそうです。しかし、この方法ではVIを呼び出す毎にチェックをするという無駄ができてしまいます。制御器の識別は一度でよいので、下のようにすることもできそうです。一度識別しクラスタ内に識別済みのリファレンスを保持し、アプリケーションレベルでそのクラスタを(ステートマシンなどに)キャッシュしておけばいつでも使い回しがききます。

 

filtering only.png

TailOfGon
Certified LabVIEW Architect 2013
メッセージ19/19
1,500件の閲覧回数