Visual-BASIC程序設計第14章_第1頁
Visual-BASIC程序設計第14章_第2頁
Visual-BASIC程序設計第14章_第3頁
Visual-BASIC程序設計第14章_第4頁
Visual-BASIC程序設計第14章_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第14章對象的鏈接與嵌入--使用OLE控件14.1如何使用OLE控件14.2嵌入對象與鏈接對象的區(qū)別14.3在程序中利用屬性創(chuàng)建嵌入和鏈接對象14.4如何編輯OLE對象習題 OLE是ObjectLinkingandEmbedding的英文縮寫,中文譯為對象的鏈接與嵌入,它的作用是支持其他應用程序的對象鏈接或嵌入到VisualBASIC應用程序中來,如Word文檔、Excel工作表、圖像、聲音等等,使得VisualBASIC能夠使用其他應用程序的數(shù)據(jù)。剪貼板是大家再熟悉不過的了,利用它我們完成了不同應用程序之間數(shù)據(jù)的傳遞。后來出現(xiàn)了DDE(動態(tài)數(shù)據(jù)交換),使得應用程序之間的數(shù)據(jù)交換不再通過“第三者”(剪貼板),而是使需要數(shù)據(jù)交換的應用程序直接進行“對話”。VB提供的OLE控件則進一步發(fā)展了DDE,使其功能更完善。下面對OLE控件作初步的介紹。14.1如何使用OLE控件OLE圖標為,它位于工具箱的右下角。下面我們舉例說明OLE控件的使用方法。【例14.1】在VisualBASIC窗體上添加一個OLE控件,并在這個OLE控件中嵌入一個事先建立好的Word文檔。具體操作如下:(1)首先準備好將要嵌入到OLE控件的對象。啟動Word并創(chuàng)建一個文檔,將其以文件名“l(fā)ist.doc”保存,以備用。(2)啟動VB并在窗體上添加一個OLE控件。單擊工具箱中的OLE控件,然后將鼠標移回窗體,按住鼠標左鍵在窗體上拖拉(或雙擊OLE控件),就會出現(xiàn)一個“插入對象”對話框,見圖14.1。此對話框給出了所有OLE對象類型。對話框中有幾個可供選用的單選鈕和選擇框:(1)“新建”單選鈕:為缺省按鈕。如果原來沒有準備好要嵌入的對象,就需要選擇“新建”。VisualBASIC就會立即啟動用戶在“對象類型”中選擇的應用程序,在應用程序中創(chuàng)建所需的對象。例如,若在“對象類型”中選擇了“MicrosoftWord文檔”,VB就會啟動Word,然后在Word中建立一個新文檔作為OLE對象,用戶可以在其中輸入文檔內容。(2)“從文件創(chuàng)建”單選鈕:如果用戶已經建立了要嵌入的對象,則應選擇此單選鈕(此時單選鈕左側的圓圈內有一個黑圓點),屏幕上會立即顯示出如圖14.2所示的對話框。單擊“瀏覽”按鈕,會出現(xiàn)瀏覽窗口,此時用戶可以從中選擇要插入的對象。圖14.1(3)“顯示為圖標”選擇框:如果選擇它,插入到OLE控件中的對象以圖標的方式顯示。由于本例的對象是Word文檔,并且此文檔是事先建好的,所以在對話框(圖14.1)中選擇“從文件創(chuàng)建”。當顯示出如圖14.2所示對話框時,單擊“瀏覽”,選擇存放在A驅動器上的list.doc文件,并選擇“鏈接”,表示產生一個鏈接對象。圖14.2單擊“確定”按鈕,OLE對象便裝入到OLE控件中(見圖14.3)。圖14.314.2嵌入對象與鏈接對象的區(qū)別嵌入與鏈接的不同之處在于插入到OLE控件的對象(數(shù)據(jù))所存放的位置。例如,當我們將一個Word文檔嵌入到VB應用程序中時,VisualBASIC是將Word文檔本身(實際上是將Word文檔的拷貝)插入到應用程序中,其他的程序是不允許訪問被嵌入對象的。而當把Word文檔鏈接到VB應用程序中時,VisualBASIC是將Word文檔的指針(即地址)插入,在調用該文檔時根據(jù)該地址去訪問被鏈接的Word文檔。當數(shù)據(jù)源發(fā)生變化時,應用程序所調用的數(shù)據(jù)也隨之變化,其他的程序也可以訪問被鏈接對象。如圖14.4和圖14.5示意。圖14.5圖14.4嵌入到OLE控件中的數(shù)據(jù)不會丟失,但它是以占用更多的空間為代價的。鏈接到OLE控件中的數(shù)據(jù)雖然占用較少的空間,但是數(shù)據(jù)源容易受外界的影響而丟失,而且當應用程序在不同的計算機上運行時,鏈接關系會消失(因為被鏈接文件可能不在所用的計算機系統(tǒng)中)。14.3在程序中利用屬性創(chuàng)建嵌入和鏈接對象在14.1節(jié)中,我們借助“插入對象對話框”,在應用程序中沒有編寫任何代碼就為OLE控件創(chuàng)建了一個鏈接對象。下面我們舉例說明如何利用編程來創(chuàng)建嵌入或鏈接對象?!纠?4.2】設計一個程序,在一個OLE控件中嵌入Word文檔,在另一個OLE控件中鏈接Word文檔。設計界面如圖14.6所示,由兩個OLE控件和兩個命令按鈕組成。圖14.6其中:OLE的AutoActivate屬性用來設置以何種方式激活對象。選值范圍為0~3。0--Manual:手工的。對象不能自動激活。1--GetFocus:當?shù)玫浇裹c時被激活。2--DoubleClick:為缺省值。當雙擊時對象被激活。3--Automatic:自動的。本例中我們選擇了缺省值DoubleClick。名稱屬性給OLE控件設置一個名字。編寫單擊“鏈接”命令鈕時的事件過程:PrivateSub鏈接_Click()OLE1.Class="Word.Document.8"OLE1.SourceDoc="a:\w1.doc"OLE1.Action=1EndSub第2行OLE1控件的Class屬性指的是嵌入或鏈接到OLE控件中對象的類名。也可以不在程序中指定而在界面設計時在屬性窗口選中Class屬性,此時右側出現(xiàn)3個點(…),單擊它打開一個選定類對話框,見圖14.7所示,此對話框給出了系統(tǒng)中可用的類名,從中選擇一個要嵌入對象的類名稱。我們確定對象的類名稱為Word.Document.8。圖14.7第3行的SourcrDoc屬性指定要鏈接的文件名(包括路徑)。第4行的Action屬性設置一個值,它的作用是通知系統(tǒng)進行何種操作。OLE1的Action屬性的值設置為1,即通知系統(tǒng)進行鏈接操作。此屬性只能在程序中使用,在設計階段不可用。Action屬性共有14個值可供選擇,說明如下:0--生成內嵌對象。1--生成鏈接對象。4--將對象的數(shù)據(jù)和屬性復制到系統(tǒng)剪貼板。5--將系統(tǒng)剪貼板中的數(shù)據(jù)粘貼到OLE容器控件。6--從應用程序中獲取當前數(shù)據(jù)并修改OLE容器控件的內容。7--激活OLE控件。9--關閉OLE對象。10--刪除OLE對象。11--將對象保存到數(shù)據(jù)文件中。12--加載保存到數(shù)據(jù)文件中的OLE對象。14--顯示插入對象對話框。15--顯示特殊粘貼對話框。17--更新對象支持的謂詞列表。18--將對象以OLEversion1.0版本的文件格式保存。下面是單擊“嵌入”命令按鈕的事件過程:PrivateSub嵌入_Click()OLE2.Class="Word.Document.8"OLE2.SourceDoc="a:\w1.doc"OLE2.Action=0EndSub對象OLE2的Class屬性和SourceDoc屬性與OLE1相同,所以類名也是“Word.Document.8”,例中兩個控件使用同一個文件,所以文件名也為“a:\w1.doc”,Action屬性設置為0,通知系統(tǒng)進行嵌入操作。運行以上程序,單擊“鏈接”命令按鈕后,執(zhí)行事件過程“鏈接_Click()”,將“a:\w1.doc”鏈接到OLE1控件中,它是一個事先準備好的Word文檔,見圖14.8中的左側文字。單擊“嵌入”命令鈕,執(zhí)行事件過程“嵌入_Click()”,將“a:\w1.doc”嵌入到OLE2控件中,見圖14.8中的右側文字。因為鏈接和嵌入的是同一個文件,所以表面上看執(zhí)行的結果是一樣的,但實際上它們有著本質上的區(qū)別,如前述鏈接是由指針指向了文件所在位置,而嵌入的是一份數(shù)據(jù)的拷貝。在前面我們已經提到過,文件中數(shù)據(jù)本身的改變會影響鏈接的內容,但卻不會影響嵌入的內容。為了證實這一點,現(xiàn)在用以下操作來看看鏈接和嵌入的不同。圖14.8圖14.9(1)在Word中打開文檔“a:\w1.doc”。(2)將字體由六號字改為四號字。(3)將修改好的文件存盤。在將修改過的文件進行保存時,就會看到OLE1控件中的數(shù)據(jù)被修改,字號由六號修改為四號,而OLE2中的數(shù)據(jù)則沒有發(fā)生任何改變。見圖14.9。14.4如何編輯OLE對象不論在設計時還是在運行時都可以隨時對OLE對象進行編輯。在設計階段,如果要編輯OLE對象,在OLE控件上單擊鼠標右鍵,立即彈出一個如圖14.10的菜單。圖14.10讀者已比較熟悉這種對話框,一定不陌生,這里不再做詳細介紹,請讀者自己通過使用來掌握它。當在運行時,如果要編輯OLE對象,同樣在OLE控件上單擊鼠標右鍵,立即彈出一個如圖14.11的菜單,讀者自己上機實驗一下,掌握它

溫馨提示

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

評論

0/150

提交評論