??
字號:
用戶自定義控件中 Control, Type Def. 和 Strict Type Def. 的區別
為了解釋清楚,先定義一下要用到的概念。我們把以 .ctl 文件名定義的控件叫做用戶自定義控件,把通過拖拽或打開這個 .ctl 文件在 VI 上生成的控件叫做實例。
LabVIEW 的用戶自定義控件包括了三種定義形式:打開一個 .ctl 文件,在它上方的“control”下拉條中有三個選擇,分別是無關聯控件(Control)、類型定義(Type Def.)或者嚴格類型定義(Strict Type Def.)。
無關聯控件是指這個控件與它的實例之間沒有任何關聯。例如,你制作了一個漂亮的按鈕控件保存在 .ctl 文件中。需要用到它時,通過拖拽或打開這個 .ctl 文件就可以在 VI 中生成這個用戶自定義控件的一個實例。這個實例一旦生成,就和原用戶自定義控件無任何關聯了。無論是你修改這個實例,還是修改原用戶自定義控件,都不會對另一方產生任何影響。
類型定義控件是指實例控件與用戶自定義控件的空間類型是相關聯的。比如,你的用戶自定義控件是一個數值型控件,那么它的所有實例控件也都是數值型的。如果我們在 .ctl 文件中把用戶自定義控件的類型改為字符串,那么它已有的所有實例都將自動變成字符串類型。
有時候,只是類型相關聯還不夠。比如對于 Ring(Enum,Combo Box)這類的控件來說,如果在用戶自定義控件中添加了一項內容(item),一般總是希望它所有的實例也同時添加這一選項。如果使用類型定義控件,因為控件類型沒變,還是 Ring,實例們是不會自動跟隨更新的。這時就需要使用嚴格類型定義控件。選擇嚴格類型定義后,不但實例與用戶自定義控件的類型是相關聯的,其他一些控件屬性,比如顏色等等,也是相關聯的。
使用嚴格類型定義時有一點容易被誤解:嚴格類型定義只是與實例控件相關聯,由它生成的實例常量的屬性是不與之關聯的。實例常量是指通過拖拽或生成常量等方法,在程序框圖上生成的一個與 .ctl 文件相關聯的常量。比如在 Ring 型用戶自定義控件中添加了一項內容,相關的實例常量是不會發生任何改變的。很多人按常理想,認為常量也應當自動更新,但事實上不行。這也是我不采用它做常量定義的原因之一。(參見:在 LabVIEW 中使用常量定義)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -