資源描述:
《delphi activex控件使用實(shí)例》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、DelphiActiveX控件使用實(shí)例1.ActiveX控件簡介ActiveX控件也就是一般所說的OCX控件,它是ActiveX技術(shù)的一部分。ActiveX控件可以被集成到很多支持ActiveX的應(yīng)用當(dāng)中去,或者直接用來擴(kuò)展應(yīng)用的功能,這些支持ActiveX的應(yīng)用包括C++Builder、Delphi、VisualdBASE、VisualBasic、VisualC++、InternetExplorer、NetscapeNavigator等。簡單的說,ActiveX技術(shù)可以使多種編譯器中眾多的控件得到互用,比如說:我可以將D
2、elphi中的控件打包為ActiveX控件后然后加載到VisualC++中進(jìn)行使用,這樣在VC中也可以使用Delphi中的這些控件來實(shí)現(xiàn)相應(yīng)的功能了。2.ActiveX控件相關(guān)知識在Delphi中,一個(gè)ActiveX控件由如下幾個(gè)部分組成:VCL(可視化構(gòu)件庫)控件、屬性、方法、事件,以及一個(gè)或者多個(gè)相關(guān)的類型庫。2.1、VCL構(gòu)件在Delphi中,一個(gè)ActiveX控件是由一個(gè)或者多個(gè)VCL構(gòu)件經(jīng)過包裝以后得到的。所以,要使用Delphi來開發(fā)ActiveX控件,必須先得開發(fā)出或者選擇要進(jìn)行包裝的VCL構(gòu)件。也正是由于這
3、個(gè)原因,我們可以將Delphi里大量優(yōu)秀的VCL構(gòu)件包裝成ActiveX控件,從而可以在別的不能夠直接使用VCL構(gòu)件的開發(fā)工具(如VisualBasic、VisualC++)里也能夠使用到這些控件啦!但是,在Delphi里可以用來做ActiveX控件的VCL構(gòu)件必須是TWinControl的后代。如果想用一個(gè)TGraphiControl的子類做ActiveX控件,在大多數(shù)情況下只需要把它的基類變?yōu)門CustomControl即可。有的VCL構(gòu)件是被注冊成非ActiveX控件的,例如EditControl,這些控件也不能做A
4、ctiveX控件。2.2、類型庫 類型庫包含了控件的類型定義信息,提供了比接口更多的詳細(xì)信息,是控件向它的宿主程序提供服務(wù)信息的一種途徑。類型庫的目的是為其他應(yīng)用和編程工具提供關(guān)于它包含的構(gòu)件對象的信息。開發(fā)ActiveX控件時(shí),Delphi把類型庫信息存入一個(gè).TLB文件中及一個(gè)對應(yīng)的Pascal文件.res(.TLB文件的Pascal語言版本),編譯時(shí)類型庫將作為資源鏈入DLL或者EXE中。類型庫的元素包括:(1)類型庫信息:包括類型庫的總體信息和特征、當(dāng)前類型庫引用的其它類型庫信息;(2)構(gòu)件類:代表整個(gè)Activ
5、eX控件,包含了提供給客戶應(yīng)用的接口;(3)接口屬性和方法、事件;(4)枚舉類型:一種用作數(shù)據(jù)類型的相關(guān)常量,可以用在類型庫的其他地方定義屬性和方法。圖1類型庫編輯器 Delphi提供了一個(gè)類型庫編輯器,用于觀察或修改類型庫,見圖1(在Delphi中選擇File->open,然后打開相應(yīng)的.TLB文件,就會(huì)自動(dòng)調(diào)用該類型庫編輯器進(jìn)行查看)??梢允褂盟鼇碓黾?、修改、刪除類型庫的各種元素。從圖1類型庫的界面上可以看到,左邊是一個(gè)樹形結(jié)構(gòu),各種元素的成員作為子節(jié)點(diǎn)出現(xiàn);右邊是根據(jù)左邊所選中的元素類型顯示不同的頁簽,可以對該元素
6、的一些屬性進(jìn)行編輯。2.3、屬性、方法和事件 在打包為ActiveX控件后,原有VCL構(gòu)件的屬性、方法和事件自然就變成為ActiveX控件的屬性、方法和事件??丶膶傩灾割伾?biāo)簽等;控件的方法是請求控件執(zhí)行某些動(dòng)作;控件的事件則是控件給宿主程序的一個(gè)通知。2.4、屬性頁 ActiveX控件所帶的屬性頁可以讓控件的使用者查看和修改控件的屬性。您可以把幾個(gè)屬性捆綁在一個(gè)屬性頁上,也可以只為一個(gè)屬性提供一個(gè)屬性頁。2.5、ActiveForm在Delphi中,ActiveForm是封裝了DelphiForm的一種Activ
7、eX控件。ActiveForm其實(shí)是一種標(biāo)準(zhǔn)的DelphiFrom(ActiveForm繼承自TForm)。ActiveForm中可能會(huì)包含某些VCL或者ActiveX組件,包括用戶自定義的組件。就像“標(biāo)準(zhǔn)的”Windows應(yīng)用程序一樣,我們也可以向ActiveForm中添加代碼以及對事件作出應(yīng)答。唯一的區(qū)別是,ActiveForm的標(biāo)題欄(titlebar)在運(yùn)行時(shí)是不可見的,只是在設(shè)計(jì)時(shí)才可見。3.ActiveForm實(shí)例下面我們以ActiveForm作為實(shí)例來說明Delphi中ActiveX控件的創(chuàng)建和使用。3.1創(chuàng)
8、建一個(gè)ActiveXFormDelphi提供了ActiveForm向?qū)Чぞ邅碓鰪?qiáng)ActiveForm的創(chuàng)建過程。該向?qū)?huì)創(chuàng)建一個(gè)ActiveXlibrary項(xiàng)目來包含ActiveForm和一個(gè)可定制的激活的Form窗口。(該窗口是ActiveForm類型,而非TForm類型,雖然ActiveForm繼承