labview編程技巧-----xcontrol如何發(fā)送用戶事件
通過屬性可以控制XCONTROL的顯示狀態(tài),通過方法,可以要求XCONTROL執(zhí)行動作(命令),有的時候,XCONTROL需要想調(diào)用VI發(fā)送數(shù)據(jù)或者命令,要求調(diào)用VI執(zhí)行動作,如何實現(xiàn)這個目的,有幾種方法,全局變量,隊列,用戶事件,使用全局變量顯然是不合適的,我們用XCONTROL的目的是實現(xiàn)組件封裝,XCONTROL的運行不應(yīng)該依賴于外部變量,使用隊列也有它的問題,是我們不得不專門用一個循環(huán)來處理隊列,這對一個不太經(jīng)常發(fā)生的數(shù)據(jù)傳送 ,顯然是不經(jīng)濟的.
今天推薦一個方法,使用用戶事件.
關(guān)于用戶事件,我專門有一篇文章介紹.現(xiàn)在的LV編程,采用事件結(jié)構(gòu)越來越多,我們只需要簡單地
先看看程序?qū)崿F(xiàn)的功能

按下SnapShot(捕捉)按鈕后,XCONTROL自動通過用戶事件把捕捉到的圖象傳送到調(diào)用VI

要想調(diào)用VI響應(yīng)用戶事件,必須得到用戶事件參考,最好的辦法是通過XCONTROL的只讀屬性得到,這樣就需要在xcontrol的STATE中定義這個屬性,看一下它的狀態(tài)定義:

這個用戶事件的數(shù)據(jù)是一個圖片框,得到這個參考是需要技巧的,我演示一下方法:

另外一種常用的方法:

首先在XCONTROL的INIT中生成用戶事件
評論