LABVIEW深入探索---reference(參考)和refnum(參考號)
控件是一個(gè)層次的繼承結構:

因為控件是個(gè)典型的類(lèi)的繼承結構,因此參考(指針)應該是可以向更基本的類(lèi)或者更高層的類(lèi)轉換的,LV本身也的確提供了轉換的節點(diǎn)。

我在CLASSNAME和CLASSID的文章中多次用到這兩個(gè)節點(diǎn),朋友們可以參考一下。
對于一個(gè)前面板對象,使用REFNUM似乎沒(méi)有用途,因為前面板的控件是已知的,我們可以直接生成屬性節點(diǎn)。更常用的功能是把參考放在SUBVI中,該SUBVI的輸入是一個(gè)控件參考,因此,它不指向任何一個(gè)特定對象,因此它可以完成對所有同類(lèi)對象的屬性控制。
看個(gè)例子:

這樣,我們就在SUBVI封裝了數值型控件的屬性,在主VI中,只需要傳入特定控件的參考,就可以自動(dòng)實(shí)現對這個(gè)控件的屬性控制。
我在MULTILISTBOX和TABLE的特效制作中用的就是控件參考,可以參閱一下。
有些參考,比如文件參考,在沒(méi)有打開(kāi)文件時(shí),顯然號是空的,當操作完成后,需要進(jìn)行關(guān)閉操作,釋放內存。當再次打開(kāi)文件是,又會(huì )產(chǎn)生一個(gè)新的臨時(shí)的參考號,前后兩個(gè)參考號沒(méi)有任何關(guān)系,因為參考號是指向對象的臨時(shí)指針,當對象不存在了時(shí)候,顯然參考號也就不存在了。
參考和參考號使用非常廣泛,又比較難于理解,需要多試驗才能深入理解。
評論