用XControl實現面向組件的編程_第1頁
用XControl實現面向組件的編程_第2頁
用XControl實現面向組件的編程_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、用XControl實現面向組件的編程XControl是LabVIEW8中出現的新功能。面向組件的編程(ComponentOrientedProgramming,COP)技術建立在對象技術之上,它是對象技術的進一步發展,類這個概念仍然是組件技術中一個基礎的概念,但是組件技術更核心的概念是接口。組件技術的主要目標是復用粗粒度的復用。組件的核心是接口。LabVIEW為我們提供了大量漂亮的控件,可以讓我們非常方便的就搭建出一個程序界面。然而,對于追求完美的用戶,LabVIEW提供的為數有限的控件是遠遠不夠的。比如圖1,是LabVIEW8.2一個新功能,導入導入共享庫向導的界面。在它右上方有四個按鈕,這

2、四個按鈕有著特殊的外觀圖標,在LabVIEW中沒有直接提供這樣的按鈕。要擁有這樣的按鈕,并保存下來以供再次使用,就只能自己制作一個自定義控件。關于(用戶自定義控件可以參考文章用戶自定義控件中Control,TypeDef.和StrictTypeDef.的區別)圖 1 : LabVIEW 8.2中 Import Shared Library的界面自定義控件雖然可以定義控件的外觀,但無法定義控件的行為,功能復雜一點的控件,.ctl文件就愛莫能助了。還是以圖1為例,它的IncludePaths控件是幺個”功能比較復雜的控件,它比LabVIEW自帶的列表框多了編輯功能。用戶添加或編輯一個路徑時,這個控

3、件要為用戶在所編輯的項目提供直接編輯使用的文本框,和瀏覽路徑按鈕。Listbox、一個實際上這個編輯功能是由三個LabVIEW提供的標準控件合作完成的:一個String和一個Button控件。他們的行為是在程序運行時決定的:當用戶編輯控件中某一路徑時,程序把String和Button挪到Listbox上需要編輯的那一項,并遮擋住Listbox原本的內容。這樣,用戶只能在String控件內輸入內容,或者點擊瀏覽按鈕選擇一個路徑。編輯完成,程序把String控件的值寫到Listbox上相應的項目中。我們雖然看不見圖1例子中的程序框圖,但是可以想象,上述的一系列操作,如判斷String和Button

4、應當顯示的位置、然后挪動它們、把String值傳給Listbox,處理用戶對他們操作的消息等等,會為這個程序添加不少復雜的代碼。這些代碼應該是與程序的其它部沒有任何直接關系的。但是把它們也寫在這個界面VI的程序框圖上,一方面影響了程序的可讀性,另一方面,編程人員有可能在更改程序其它問題是不小心改變了這部分代碼,較低了代碼的安全性。從邏輯關系上來看,圖1中上半部分的Listbox、String、瀏覽按鈕以及右上方四個操作按鈕,他們共同完成一個功能,與他們之外的界面控件沒有什么關聯,所以他們七個應當被作為一個控件,或者說是一個組件。這個組件需要與程序其它模塊之間的接口就只是一個字符竄數組,用于輸入

5、或輸出一組路徑。其它的數據和操作,都應當是組件的私有的,外部不可見的。在LabVIEW8之前,想分離和封裝出這樣一個組件是非常困難的。因為既然這七個控件都在這個VI的面板上,對它們的操作和相應的代碼必須放在這個VI的程序框圖上,無法與其他代碼隔離開。也不是說絕對沒有辦法,比如你可以使用sub-panel,動態注冊事件等方法,強行的把它們的代碼分隔開。但是這些方法并不簡單直觀,使用它們有可能會讓程序變得跟為復雜、難以閱讀和維護。XControl的出現,才終于為這個問題提供了一個比較完美的解決方案。利用XControl,圖1中我們提到的七個應當劃分在同一組件的控件可以被制作成一個XControl。

6、這個XControl的外觀就是圖1中上半部分七個控件組合在一起的樣子,XControl與用戶自定義控件相比,它不僅定義了控件的外觀,更重要的是,開發人員可以通過編寫LabVIEW代碼定義XControl的行為。并且這些代碼是對外隱藏的。開發人員還可以定義XControl的屬性和方法,通過PropertyNode和InvokeNode在程序中使用這些屬性和方法。同樣完成選取一組路徑的功能,可以有各種不同的界面,比如各種C+編譯器都會提供類似的功能,但外觀各不相同。你可以利用XControl,編寫多個外觀,行為大相徑庭的組件。但是,只要他們的接口相同-都是一個字符串數組,用戶就可以在這些組件內任意互換,選用自己喜歡的組件,而不需改動程序的任何其它部分。現在,我對XControl不太滿意的地方是它還不支持用戶自定義的事件。XControl具有封裝的特性,因此我在利用LabVIEW工程庫實現面向對象編程一文中提到同樣可以使用XControl來達到面向對象的編程方法。但是X

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論