董 妍 張永萍 張巧玲
摘要:介紹了ActiveX控件的特點和創(chuàng)建方法,通過實例證明了ActiveX控件在虛擬儀器面板設計方面的可行性、合理性和高效性。
關鍵詞:虛擬儀器 組件 ActiveX控件
1.引言
虛擬儀器是計算機技術介入儀器領域所形成的一種新型的、富有生命力的儀器種類,在虛擬儀器中計算機處于核心地位,盡可能利用軟件來實現(xiàn)與硬件同樣甚至更多的功能,虛擬儀器利用PC計算機強大的圖形環(huán)境,建立界面友好的虛擬儀器面板(即軟面板),操作人員通過友好的圖形界面及圖形化編程語言控制儀器運行,完成對被測試量的采集、分析、判斷、顯示、存儲及數(shù)據(jù)生成。虛擬儀器可以利用一臺計算機集成多個儀器的功能,從而節(jié)約硬件空間和成本。但是,由于各種類型實物面板組件的形狀、顏色和功能不盡相同,很難將一種組件同時作為不同的虛擬儀器面板組件。因此,很有必要設計具有可移植性、可重用性、可修改的個性化虛擬儀器面板控件。而ActiveX控件正具有上述優(yōu)勢。
2.ActiveX技術及其特點
實現(xiàn)應用程序之間的相互通信和交換,一直是困擾軟件開發(fā)者和使用者的難題。Microsoft提出的組件對象模型(COM)真正實現(xiàn)了與編程無關,而ActiveX技術是COM與Internet的結合,功能更強大,使用更方便。ActiveX技術為我們引入了“軟件組件”這個新的概念,不必再將電腦軟件編寫成一個大型完整且獨立運行的工具。為了能使軟件完成更大更復雜的任務,現(xiàn)在可將它分割成小的模塊,這種模塊便是組件。各組件的宗旨便是完成特定的任務,而且組件能夠跨運用程序、跨平臺、跨網(wǎng)絡運行。采用組件思想為構造虛擬儀器帶來了很大方便。
簡單地說,ActiveX是一種體系結構,它允許使用不同編程語言開發(fā)的軟件組件在網(wǎng)絡環(huán)境中相互操作。ActiveX體系結構使用了Microsoft的組件對象模型及分布式組件對象模型標準,允許不同組件對象實現(xiàn)本地相互對話及網(wǎng)絡上對象之間通信。ActiveX這種重復使用和自包含的本質(zhì)來源于微軟更早的面向?qū)ο蟮膽贸绦蛟O計思想,也就是由原來的OLE控制,或OCX控件而發(fā)展成為現(xiàn)在能夠運行在Web頁面上的軟件組件,使得創(chuàng)建的運用程序能供客戶端下載運行。
由于ActiveX是一種開放的技術,開發(fā)者可以創(chuàng)建自己的ActiveX控件,ActiveX控件是程序的自包含片斷或獨立的組件,不但可以在程序中重復調(diào)用,也可以調(diào)入其它應用程序而成為其一部分。比如我們可以在VB中使用ActiveX技術,開發(fā)出各種常見的參數(shù)調(diào)節(jié)旋鈕、數(shù)字顯示屏等通用ActiveX控件(如稱為旋鈕控件和現(xiàn)實控件)。這樣可以在構造不同儀器中反復使用,不但可以由控件組成儀器,還可以由小儀器組成復雜的大儀器。
ActiveX控件的開發(fā)工具有VB5.0,VC++,Delphi等,在VB中建立自己的ActiveX控件最為簡單,他保留了人們熟悉的屬性、事件和方法,通過在程序設計和運行時修改程序的屬性、調(diào)用控件、在控件的事件中加入程序代碼即可方便的組建運用程序。ActiveX控件與普通控件最大的不同點是它的屬性和方法。ActiveX控件不象普通控件那樣,發(fā)送通知信息給它的包容器窗口,而是“激發(fā)事件”。同時ActiveX控件一旦創(chuàng)建,它就與編程語言無關,所以用某種語言編程創(chuàng)建的ActiveX控件,在另一種語言中同樣可以使用,具有可移植性,并可以轉(zhuǎn)讓給其他開發(fā)者使用,另外,ActiveX控件可以發(fā)布到Web進行共享。這些優(yōu)勢為虛擬儀器面板設計帶來很大方便。
3.虛擬儀器面板的ActiveX控件設計方法
下面我們以型號為QF1022的信號發(fā)生器面板的按鈕和旋鈕為例,談一談虛擬面板控件設計過程中的幾個主要環(huán)節(jié)。
首先,要確定該控件應具備的基本功能及大體外觀。這是設計過程中非常重要的環(huán)節(jié),這樣才能決定程序的整體框架和內(nèi)容要點。在此要充分考慮將來的移植使用,而不應局限于某一種面板。
第二步,根據(jù)上述要求設計ActiveX控件。設計ActiveX控件時,并不需要從頭開始,而是利用面向?qū)ο笳Z言的繼承性,繼承已有相關控件的特性并加以修改和補充,這樣就大大提高了編程的效率。例如,要在Delhpi語言環(huán)境中創(chuàng)建ActiveX控件,首先創(chuàng)建了一個ActiveX控件文件。該文件有3個子文件,即工程文件、接口聲明文件和接口實現(xiàn)文件。然后根據(jù)設計要求對這些文件進行修改和補充,就可以變成適合于所需控件的文件。選擇“Project|BuildActiveXControl”命令,就可生成擴展名為OCX的文件。最后,可以選擇“Run|Register ActiveXServer”將其注冊到系統(tǒng)注冊表中。這樣,符合要求的ActiveX控件就創(chuàng)建完成了。
第三步,設計虛擬儀器面板。根據(jù)實物,在虛擬面板上放置設計好的控件,在對象監(jiān)視器中對各個控件的參數(shù)進行修改,使其與實際相符,并按照某一光線入射角設定陰影效果。再對各個控件進行編程,使其實現(xiàn)實際控件所具備的功能及各個控件之間的邏輯控制關系。如果再將其與硬件聯(lián)系起來,一個真正的虛擬儀器就實現(xiàn)了。
設計時選用Delhpi高級語言作為開發(fā)工具。如圖一所示。首先,利用Delphi語言的可繼承性,將Tcustomcontrol類作為父類,設計各控件的基本外型。然后,設計其基本事件屬性,在此充分考慮了將來的功能擴展,將程序設計成模塊化結構。同時,設計中還考慮到虛擬儀器面板的自然度,為其添加了陰影效果。設計的控件具有屬性特性和事件特性。屬性特性包括顏色、物體尺寸、陰影尺寸與陰影角度調(diào)整等,事件特性包括按下、彈出、拖動、移過等。這些都可以通過對象監(jiān)視器很方便地進行修改,無需編程。除了能完成上述基本的控制功能外,還能對其追加其它所需功能,操作十分方便。設計完成后,將其安裝在VB和VC語言環(huán)境中,結果使用一切正常。
參考文獻:
1.楊樂平,李海濤.《虛擬儀器技術概論》.電子工業(yè)出版社,2003。
2.劉君華.《現(xiàn)代檢測技術與測試系統(tǒng)設計》. 西安交通大學出版社,1999。
3.朱曉華,馮玉田,章玉鑒.基于組件技術的虛擬儀器開發(fā)方法的研究.上海大學學報,1999,第5卷,第4期。