Type Definitions和Strict Type Definitions之間的區別

更新 Aug 23, 2023

產品資訊

軟體

  • LabVIEW Full
  • LabVIEW Professional

問題敘述

  • 在LabVIEW中,我可以創建Type Definitions或Strict Type Definitions。兩者有什麼區別?
  • 我有一個Type Definitions或Strict Type Definitions,在其中更改默認值,為什麼此更改沒廣傳到我所做的控件的每個instance?

解決方案

Overview

LabVIEW中的Type Definitions和Strict Type Definitions均為自定義控件控件(*.ctl文件),可放置在任何VI中。更改*.ctl文件後,使用該控件的每個VI也會更改,從而無需自己更改每個VI。使用Type Definitions控件時,LabVIEW將確保在使用控件的任何地方data type都相同。Strict Type Definitions的限制更嚴格,LabVIEW可以確保控件的幾乎所有內容都保持不變。

Type Definition

只要Type Definition與控件的data type主副本匹配,Type Definition可以具有不同的名稱,描述,默認值,大小,顏色或控件樣式(例如,knob而不是slide)。Type Definition僅為自定義控件的每個instance標識正確的“類型”。 “類型”不包括諸如numeric control的數據范圍或ring control中的項目名稱之類的內容。例如,如果您更改numeric control上的數據范圍或作為類型定義控件一部分的ring control上的項目名稱,則不會為控件的所有instance更改這些屬性。但是,如果您在類型定義中為enumerated type(enum)更改了項目名稱,則所有instance也會更改,因為項目名稱是enum的“類型”的一部分。

Strict Type Definition

Strict Type Definition控件強制幾乎所有有關控件的內容都是相同的,包括其大小,顏色和外觀。Strict Type Definitions具有更嚴格的限制,與Type Definitions不同,它們定義屬性的值,例如numeric control上的範圍檢查和ring control上的項目名稱。Strict Type Definitions的唯一靈活性是名稱,描述和默認值,對於控件的每個instance而言,名稱,描述和默認值都可以不同。對於Strict Type Definitions控件,唯一可用的屬性是那些會影響控件外觀的屬性,例如VisibleDisabledKey FocusBlinkingPosition 和 Bounds。例如,如果您有一個由各種控件組成的Strict Type Definition,則每個單獨控件的屬性將不可用。僅整個cluster的appearance屬性可用。

相關資訊

大多數程式員使用Type Definitions和Strict Type Definitions來創建自定義控件,這控件是包含許多控件的cluster。然後可以將其他項目添加到客戶控件的cluster中,並輕鬆地在整個應用程式中廣傳。如果子VI必須與cluster交互,則該功能特別有用,因爲您不需要為每個子VI手動更新cluster。