-
- 素材大。
- 162.96 KB
- 素材授權(quán):
- 免費下載
- 素材格式:
- .ppt
- 素材上傳:
- lipeier
- 上傳時間:
- 2019-12-11
- 素材編號:
- 248029
- 素材類別:
- 課件PPT
-
素材預(yù)覽
這是ole操作ppt,包括了OLE概述,鏈接的對象,嵌入的對象,設(shè)計時用OLE控件插入對象,決定在OLE容器控件中如何顯示對象,放下數(shù)據(jù)時通知源等內(nèi)容,歡迎點擊下載。
ole操作ppt是由紅軟PPT免費下載網(wǎng)推薦的一款課件PPT類型的PowerPoint.
OLE OLE OLE概述 OLE控件通常用來創(chuàng)建以文檔處理為中心的應(yīng)用程序,在這種應(yīng)用程序中,你把不同應(yīng)用程序的數(shù)據(jù)組合起來,創(chuàng)建單個文檔。這種類型的應(yīng)用程序可能是字處理器,允許用戶輸入文本之后再嵌入一個工作表或圖表。 鏈接的對象 鏈接一個對象時,實際上是在應(yīng)用程序中插入鏈接對象的占位符。例如,當(dāng)把電子表格單元的范圍與Visual Basic應(yīng)用程序鏈接時,與這個單元相關(guān)的數(shù)據(jù)是存儲在另一文件中的;在OLE控件中,只存儲數(shù)據(jù)的鏈接和代表數(shù)據(jù)鏈接的圖像。運行時,可以激活鏈接對象,電子表格應(yīng)用程序便自動啟動,然后你可以使用電子表格應(yīng)用程序來編輯那些電子表格單元。當(dāng)編輯一個鏈接對象時,編輯操作是在OLE控件外的單獨窗口中完成的。 當(dāng)對象與Visual Basic應(yīng)用程序鏈接時,可以從數(shù)據(jù)鏈接的應(yīng)用程序中查看對象的當(dāng)前數(shù)據(jù)。數(shù)據(jù)只存在于提供對象的應(yīng)用程序。 嵌入的對象 使用OLE控件,或把一個對象的類加入工具箱,可以創(chuàng)建嵌入對象。使用嵌入的對象,與對象相關(guān)的全部數(shù)據(jù)都將被復(fù)制和納入OLE控件,把控件的內(nèi)容存入文件時,這個文件含有創(chuàng)建對象的應(yīng)用程序名稱,對象數(shù)據(jù)和對象的源文件包含的圖像。由于這個原因,嵌入對象可能會大大增加文件的大小。 與鏈接對象不同,其它應(yīng)用程序不能訪問嵌入對象中的數(shù)據(jù)。當(dāng)想要應(yīng)用程序保持在另一應(yīng)用程序中創(chuàng)建和編輯的數(shù)據(jù)時,嵌入是有效的手段。對于嵌入的對象,當(dāng)你激活對象時,創(chuàng)建這個對象的Active X部件被容器應(yīng)用程序調(diào)用,這個對象的數(shù)據(jù)被打開和編輯。另外,還在容器應(yīng)用程序中顯示創(chuàng)建這個對象的應(yīng)用程序的用戶界面和功能區(qū),使用戶能現(xiàn)場控制對象。 設(shè)計時用OLE控件插入對象 把OLE控件拖到窗體上,彈出【插入對象】對話框,單擊【從文件中創(chuàng)建】單選框,單擊【瀏覽】按鈕,彈出【瀏覽】對話框,選擇想要插入的文件,單擊【插入】按鈕,返回【插入對象】對話框,在【插入對象】對話框中,單擊【確定】按鈕,創(chuàng)建嵌入對象。 嵌入對象的數(shù)據(jù)是有可能被更改的。如果讓用戶輸入的更改在下次應(yīng)用程序運行時出現(xiàn),就必須使用Save To File方法來保存數(shù)據(jù)。 運行時用OLE控件創(chuàng)建對象 要在運行時創(chuàng)建鏈接和嵌入對象,需要在代碼中使用OLE控件的方法和屬性。 通過使用OLE對象的Object屬性,可以使用鏈接或嵌入對象的屬性和方法。Object屬性時運行時只讀屬性,保持對OLE控件的對象的引用,使用這個屬性執(zhí)行OLE控件的自動化任務(wù),以及程序化操作對象支持的屬性和方法。 可以使用OLE控件的Create Link方法,先運行時從文件中創(chuàng)建一個鏈接對象,這種方法需要源文件的參數(shù),還有一個可選的源數(shù)據(jù)的參數(shù),提供可鏈接的數(shù)據(jù)。 要在運行中創(chuàng)建一個嵌入的對象,可以使用Create Embed方法。這種方法有源文件和類型兩個參數(shù),但也可以不設(shè)置源文件和類型的屬性。 使用Do Verb的方法。Do Verb方法的動詞依照應(yīng)用程序而定,可以創(chuàng)建一個空的嵌入對象。 為了把OLE控件與存儲在數(shù)據(jù)庫引擎或Access 2007數(shù)據(jù)庫中的數(shù)據(jù)綁定,需要在Data Source屬性中規(guī)定數(shù)據(jù)源,并在OLE控件的Data Field屬性中規(guī)定來自數(shù)據(jù)源的字段的名稱。 運行時允許用戶規(guī)定對象 用OLE控件的Insert OBJ DLG方法顯示【插入對象】對話框,或者用Paste Special DLG方法顯示【選擇性粘貼】對話框,讓你決定什么對象進入OLE容器控件。 決定在OLE容器控件中如何顯示對象 可以用OLE容器控件的Display Type屬性標(biāo)識對象是否將作為圖標(biāo)出現(xiàn),或者對象的數(shù)據(jù)是否被顯示在控件中,這個屬性還決定了在運行時和設(shè)計時,顯示【插入對象】和【選擇性粘貼】對話框時,【顯示為圖標(biāo)】復(fù)選框的默認設(shè)置。 如果這個控件不是用戶界面正在使用的,可以用Size Mode屬性確定對象的圖標(biāo)或數(shù)據(jù)的圖像在OLE控件中是如何顯示的。在Size Mode設(shè)置為0或3,會剪切圖像以適合控件,但不改變圖像的實際尺寸,設(shè)置Size Mode為2,將調(diào)整控件的大小以適合圖像。 激活OLE控件中的對象 在運行時,OLE控件的Do Verb方法可以激活一個對象?梢栽O(shè)置App Is Running為True,啟動ActiveX部件,從而使對象更快地激活。 有些嵌入的對象可以從OLE控件內(nèi)部激活,叫做現(xiàn)場激活,因為你可以與提供對象的應(yīng)用程序交互,而不切換到其它應(yīng)用程序或窗口。當(dāng)OLE控件的Auto Active屬性設(shè)置為Double-Click時,用戶可以用雙擊來激活控件。 響應(yīng)移動容器或調(diào)整容器大小 OLE控件具有Object Move事件,當(dāng)移動與OLE控件相關(guān)的對象以及調(diào)整其大小時,將會觸發(fā)它。Object Move的參數(shù)代表對象容器內(nèi)對象的坐標(biāo)。如果對象移出窗體,參數(shù)的值代表與窗體左上角的相對位置。這些值可正可負。如果Active X部件的寬和高被改變,會通知OLE控件。Object Move事件是OLE控件確定對象是否已經(jīng)移動或調(diào)整大小的唯一方法。 保存和檢索嵌入的數(shù)據(jù) 與嵌入的對象相關(guān)的數(shù)據(jù)不是永久保存的,含有OLE控件的窗體被關(guān)閉時,與這個控件相關(guān)的數(shù)據(jù)的任何變化將丟失。要把更改的數(shù)據(jù)從對象保存到文件中,需要使用OLE控件的Save To File方法,這時對象的數(shù)據(jù)由OLE控件維護,并能用Visual Basic應(yīng)用程序保存。OLE控件中的對象只能保存于打開的二進制文件中。 要想數(shù)據(jù)從對象保存到文件中,可打開二進制文件,使用Save To File方法。 要想數(shù)據(jù)從文件讀入OLE容器控件,可以打開二進制文件,使用對象的Read From File方法。 當(dāng)對象的內(nèi)容被改變,將調(diào)用Updated事件,這個事件用于決定對象的數(shù)據(jù)在最后一次保存時是否被更改。為此,在Updated事件中設(shè)一個全局的變量,指示需要保存的對象。保存對象時,重新設(shè)置這個變量。 OLE控件大大增強了Visual Basic處理數(shù)據(jù)的能力,在使用OLE容器控件時,需要創(chuàng)建、激活OLE控件的對象,最后要注意保存對象中的數(shù)據(jù)。 和OLE拖放相關(guān)的屬性、事件和方法 為了判斷其它Active X控件是否支持OLE拖放,應(yīng)該在Visual Basic中加載控件,并檢查OLE Drag Mode和OLE Drop Mode屬性,或者OLE Drag方法是否存在。窗體、文檔對象、用戶控件和屬性頁都有OLE Drag Mode屬性,而且只支持手工拖放。 啟動自動OLE拖放 若控件支持自動拖放,則可把它的OLE Drag Mode和OLE Drop Mode屬性中至少一個設(shè)置為Automatic,從而對Visual Basic控件向外拖動數(shù)據(jù)或向內(nèi)放置數(shù)據(jù)。 把文本從文本框控件拖動到Word 2007文檔時,文檔被移動到文檔。如果放文本的同時按控制鍵,則數(shù)據(jù)被復(fù)制到文檔。對所有支持OLE拖放的對象或應(yīng)用程序,這都是一個默認屬性。要改變這種狀態(tài),需要使用手工拖放技術(shù)修改自動性能。 為使文本框控件在OLE拖放操作中自動獲得數(shù)據(jù),應(yīng)把它的OLE Drop Mode屬性設(shè)置為Automatic。 運行時,除非在拖動時按下了控制鍵,否則,對于從其它應(yīng)用程序拖動到文本框控件的數(shù)據(jù),進行的是移動而不是復(fù)制操作。 自動拖放操作也有其局限性,其中某些來自控件功能本身。Word 2007文檔中的文本拖動到文本框控件,則Word 2007文檔里的文本格式就會消失。因為文本框控件不支持這種格式。 OLE拖放的Data Object對象 在Visual Basic里,數(shù)據(jù)的媒介或存儲是Data Object對象——這意味著通過它把數(shù)據(jù)從源移動到目標(biāo)。為此,Data Object對象提供了為存儲、獲取與分析數(shù)據(jù)所需的方法。 把這些方法與OLE拖放事件結(jié)合使用就可以管理源端和目標(biāo)端的Data Object對象里的數(shù)據(jù)。 OLE拖放的工作原理 在對Visual Basic應(yīng)用程序進行OLE拖放的操作過程中,當(dāng)你選定數(shù)據(jù)并按下鼠標(biāo)左鍵,從OLE拖動源拖動數(shù)據(jù)時,觸發(fā)OLE Start Drag事件,然后就可存儲數(shù)據(jù),也可以指定源所支持的格式。還需指明,源允許復(fù)制數(shù)據(jù)還是允許移動數(shù)據(jù)。 在拖動數(shù)據(jù)經(jīng)過目標(biāo)應(yīng)用程序時,觸發(fā)OLE Drag Over事件,源位于目標(biāo)應(yīng)用程序的邊界內(nèi)。在這里放下數(shù)據(jù),可以指定目標(biāo)程序要執(zhí)行的操作。 在這里放下源,則目標(biāo)指定所產(chǎn)生的拖放效果,這時觸發(fā)一個OLE Give Feedback事件,向用戶提供視覺反饋,鼠標(biāo)指針發(fā)生變化,指示操作的類型。 按住鼠標(biāo)左鍵時按下了上檔鍵、控制鍵或換檔鍵,或源數(shù)據(jù)在目標(biāo)應(yīng)用程序邊界內(nèi)移動時,數(shù)據(jù)可能被拒絕,而不是被復(fù)制或移動。如果移動時超出目標(biāo)應(yīng)用程序的邊界,或按取消鍵,則可能會取消或修改拖動操作,鼠標(biāo)指針會變成禁止形。 當(dāng)把源數(shù)據(jù)放到目標(biāo)應(yīng)用程序時把觸發(fā)目標(biāo)應(yīng)用程序的OLE Drag Drop事件,目標(biāo)應(yīng)用程序就源數(shù)據(jù)所包含的數(shù)據(jù)的格式查詢源,然后獲取數(shù)據(jù)或拒絕數(shù)據(jù)。 如果在拖動開始時就已存儲數(shù)據(jù),則目標(biāo)應(yīng)用程序?qū)⑹褂肎et Data方法獲取數(shù)據(jù),如果在拖動開始時未存儲數(shù)據(jù),則通過觸發(fā)OLE Set Data事件并使用Set Data方法獲取數(shù)據(jù)。 在接受數(shù)據(jù)或拒絕數(shù)據(jù)時將觸發(fā)OLE Complete Drag事件,然后源將執(zhí)行相應(yīng)操作。如果接受數(shù)據(jù)并指定一個移動,則源把刪除數(shù)據(jù)。 OLE Drag方法 在選定數(shù)據(jù)后,按住鼠標(biāo)左鍵并移動鼠標(biāo)時,從對象的鼠標(biāo)移動事件調(diào)用OLE Drag方法。 OLE Drag方法沒有任何參數(shù),其主要目的是啟動手工拖動,然后允許OLE Start Drag事件設(shè)置拖動操作的條件。 如果源控件支持OLE Drag Mode屬性,這個屬性必須設(shè)置為手工,調(diào)用OLE Drag方法。 指定拖放效果和數(shù)據(jù)格式 在手工OLE拖動操作中,當(dāng)你開始拖動操作中,當(dāng)你開始拖動源并調(diào)用OLE Drag方法時,控件的OLE Start Drag事件將會發(fā)生?梢杂眠@個事件指定拖放效果和源所支持的數(shù)據(jù)格式。OLE Start Drag事件用兩個參數(shù)指定支持的數(shù)據(jù)格式,以及放下數(shù)據(jù)時指定是復(fù)制數(shù)據(jù)還是移動數(shù)據(jù)。 Allowed effects參數(shù)指定拖動源所支持的拖放效果。然后,目標(biāo)可向拖動源查詢這個信息并作相應(yīng)的響應(yīng)。Allowed effects參數(shù)使用下述數(shù)值指定放下效果。 可以通過設(shè)置OLE Start Drag事件的Format參數(shù)指定對象支持的數(shù)據(jù)格式。為此應(yīng)該使用Set Data方法。 目標(biāo)可查閱源,從而可以判斷支持何種數(shù)據(jù)格式并作出相應(yīng)的響應(yīng),如果目標(biāo)不支持所放下數(shù)據(jù)的格式,它就會繼續(xù)放下數(shù)據(jù)。 把數(shù)據(jù)放到Data Object對象中 在多數(shù)情況下,特別是在源支持兩種以上的格式或花費大量時間創(chuàng)建數(shù)據(jù)時,可能會希望只在目標(biāo)請求數(shù)據(jù)時,才把數(shù)據(jù)放入Data Object對象。在開始拖動操作時,可以使用OLE Start Drag事件中的Set Data方法把數(shù)據(jù)放入Data Object對象。 用Clear方法清除Data Object對象中的默認數(shù)據(jù)格式,并指定所選定數(shù)據(jù)的數(shù)據(jù)格式,然后又用Set Data方法把數(shù)據(jù)放入Data Object對象。 OLE Drag Over事件狀態(tài)參數(shù) 根據(jù)位置的不同,效果參數(shù)可能會相應(yīng)變化,指示當(dāng)前可接受的拖放效果。 有了OLE Drag Over事件中的狀態(tài)參數(shù),就可對數(shù)據(jù)進入、經(jīng)過以及離開目標(biāo)控件等狀態(tài)作出響應(yīng)。源數(shù)據(jù)進入目標(biāo)控件時,把狀態(tài)參數(shù)設(shè)置為零,在目標(biāo)邊界內(nèi)移動拖動源時,把狀態(tài)參數(shù)設(shè)置為2。有時希望根據(jù)鼠標(biāo)指針的位置的不同改變拖動效果。每秒都會幾次生成OLE Drag Over事件,即使在鼠標(biāo)不動時也不例外。 效果參數(shù) 如果希望改變OLE拖放操作中默認的鼠標(biāo)外觀,可以在目標(biāo)端操作Drag Over事件,并在源端操作OLE Give Feedback事件。 在拖放操作期間,OLE拖放提供自動視覺反饋。開始拖動時,鼠標(biāo)指針會發(fā)生變化,當(dāng)經(jīng)過不支持OLE放下的對象時,鼠標(biāo)指針將變成禁止形。 把鼠標(biāo)放入目標(biāo)控件時,改變鼠標(biāo)指針指出控件如何響應(yīng),首先用Get Format方法判斷Data Object對象里的數(shù)據(jù)類型,然后設(shè)置OLE Drag Over事件的效果參數(shù)以通知源,這個控件允許何種放下效果。 在把目標(biāo)控件的OLE Drop Mode屬性設(shè)置為手工時,拖動數(shù)據(jù)無論何時經(jīng)過這個控件都觸發(fā)OLE Drag Over事件,如果放下了對象,則用OLE Drag Over事件的效果參數(shù)指定執(zhí)行的操作。OLE Give Feedback事件包含其自身的效果參數(shù),用這個參數(shù)向用戶提供視覺反饋,當(dāng)拖動選定時,依據(jù)這個反饋執(zhí)行操作。 在拖動源數(shù)據(jù)經(jīng)過目標(biāo)并觸發(fā)OLE Drag Over事件時,源會告訴目標(biāo),它允許什么效果。此后,必須選擇唯一效果。OLE Drag Over事件的效果參數(shù)通知源,它支持哪一個放下操作,然后,源又用OLE Give Feedback事件改變鼠標(biāo)指針,以這個方式通知用戶。 OLE Give Feedback事件包含兩個參數(shù),使用它們可以改變OLE拖放操作中的默認鼠標(biāo)指針。效果參數(shù)像其它OLE拖放事件一樣,指出是復(fù)制、移動還是拒絕數(shù)據(jù),但它在這個事件中,這個參數(shù)意在通過改變鼠標(biāo)指針來指出操作類型,向你提供自定義的視覺反饋。 默認光標(biāo)參數(shù)指示是否使用默認的OLE鼠標(biāo)指針的集合,設(shè)置為False,可以用Screen對象的Mouse Pointer屬性指定自己的指針。 獲取數(shù)據(jù) 把源放到目標(biāo)時會觸發(fā)OLE Drag Drop事件。在啟動拖動操作時,如果已把數(shù)據(jù)放到Data Object對象中,可以在觸發(fā)OLE Drag Drop事件時使用Get Data方法獲取數(shù)據(jù)。 但是,如果啟動拖動操作時聲明了所支持的源的格式,則這個方法自動在源觸發(fā)OLE Set Data事件,這個事件把數(shù)據(jù)放到Data Object對象中,然后再從中獲取數(shù)據(jù)。 Get Data方法提供了代表Data Object對象支持的數(shù)據(jù)類型的常數(shù)。 查詢Data Object對象 有時可能需要向Data Object對象查詢放到目標(biāo)的數(shù)據(jù)的類型。可在If語句中用 Get Format方法指定目標(biāo)控件所能接受的數(shù)據(jù)類型。如果Data Object對象里的數(shù)據(jù)兼容,則完成了放的操作。 如果源支持多種格式或者為創(chuàng)建數(shù)據(jù)會耗費大量時間時,則可能希望僅僅在目標(biāo)請求數(shù)據(jù)時才把數(shù)據(jù)放到Data Object對象中。OLE Set Data事件使源對于一種指定的數(shù)據(jù)格式只響應(yīng)一個請求。 放下數(shù)據(jù)時通知源 OLE Drag Drop事件的效果參數(shù)規(guī)定,在放數(shù)據(jù)時如何把數(shù)據(jù)合并入目標(biāo)。設(shè)置這個參數(shù)后,就可以用設(shè)置在源觸發(fā)OLE Complete Drag事件。隨后,源可執(zhí)行適當(dāng)?shù)牟僮。OLE Complete Drag是拖放操作里的最后一個事件。 OLE Drag Drop事件的效果參數(shù)與OLE Drag Over事件的效果參數(shù)使用一樣的參數(shù),這個參數(shù)被用來通知源,在把數(shù)據(jù)放到目標(biāo)時執(zhí)行的是什么操作。 如果在OLE Give Feedback事件中指定了自定義的鼠標(biāo)指針,則還應(yīng)該使用OLE Complete Drag事件重置鼠標(biāo)指針。 從資源管理器中拖動文件 可在資源管理器和適當(dāng)?shù)腣isual Basic控件之間使用OLE拖放來拖動文件。在資源管理器中選定一組文本文件,然后把它們拖放到一個文本框控件中就可把文本全部打開。