本文目錄一覽:
ole控件的對象
VB提供了一個OLE容器控件(在工具箱中),用於容納「鏈接」對象或「嵌入」對象,也就是說,可以使用OLE容器控件來插入對象。
當然,也可用其它方法來插入對象。如:通過在工具箱中添加對象的類來插入對象,具體操作步驟為:
①→「工程」菜單/「部件」命令
②→「可插入對象」選項卡
③→想要加入工具箱的類,如:「Microsoft Excel工作表」 →「確定」
在使用OLE容器控件插入對象時注意:
(1)創建鏈接時,鏈接對象數據被存儲在OLE容器控件之外;
創建嵌入對象時,嵌入對象數據和VB應用程序一起被保存在OLE控件之內。
(2)在任何時候,一個OLE容器控件內只能有一個對象。
(3)既可在設計階段來插入對象(創建鏈接對象或嵌入對象);也可在程序運行階段通過代碼來創建鏈接對象或嵌入對象。
(4)通過OLE控件的Display Type屬性可控制OLE對象在OLE容器控件中的顯示方式:
Display Type :0 → 以「數據映象」方式顯示
Display Type :1 → 以「圖標」方式顯示
一旦建立好一個OLE對象,此對應的OLE對象顯示方式將無法改變。
(5)在OLE容器控件中放置對象之前提供該對象的應用程序必須已經在Windows中註冊其對象。
1、設計時插入一個「鏈接」對象
步驟:(1)添加一個「OLE容器控件」到窗體上,屏幕會彈出一個「插入對象」對話框。或在設置好的「OLE容器控件」上右擊鼠標,也會彈出「插入對象」對話框。
(2)選擇「從文件創建」,再通過「瀏覽」按鈕確定「要鏈接文件的路徑、文件名」: ①C:\lyh\gz.xls\Excel工作表
②C:\win98\a.bmp\BMP圖象
(3)單擊「插入」按鈕→返回「插入對象」對話框。
(4)選中「鏈接」複選框→「確定」。
按照以上步驟,就建立了一個鏈接對象。
此時,OLE控件本身則保存與對象鏈接有關的信息。如:提供鏈接對象的應用程序名、鏈接文件名、以及該鏈接對象的「數據影像」等,其對應的OLE控件屬性分別是:對象類型(Class)、引用源文件(Source Doc)、鏈接數據(Source Item)。
[注意]:設計鏈接對象時,OLE會保留一份影像,起初這份影像和數據文件是相同的,但是因為文件有可能被修改,可鏈接對象保存的仍然是原始數據的影像,為了使其具備自動更新的能力,只要在Form_Load事件過程加入如下代碼:
Private sub Form_Load( )
OLE1.Action=6 『此語句用「OLE1.Update」方法也可以
End sub
2、設計時創建「嵌入對象」
創建嵌入對象時,既可從文件中嵌入數據,也可以創建一個新的空對象(可以被以後的數據填充)。
步驟:(1)添加一個「OLE容器控件」到窗體上,屏幕顯示「插入對象」對話框。
(2)選擇「從文件創建」,→「瀏覽」按鈕→確定要嵌入的「文件名」。
(3)→「插入」按鈕→返回「插入對象」對話框。
(4)→「確定」,即可創建嵌入對象。
另外,在此設計狀態,也可修改OLE對象中的數據,方法為:
(1)→在OLE對象數據區單擊鼠標右鍵,→彈出快捷菜單。
(2)選擇「編輯」命令→出現Excel的編輯環境。
(3)修改完畢後,單擊OLE對象數據區以外的區域,返回到創建嵌入對象的窗體。
[注意]:(1)不同於對象鏈接的是,嵌入對象中的數據被用戶修改後不會被自動存儲。當含有OLE控件的窗體被關閉時,與該控件相關的數據的任何變化將丟失。如果希望對數據所進行的修改在下次運行時能夠顯示出來,需要將更改的數據從對象保存至文件中(使用OLE控件的Save To File方法)。數據被保存在文件後,可以在需要的時候打開文件並恢復對象(使用OLE控件的Read From File方法)。
(2)將更改的數據從對象保存到文件中的方法(用一命令按鈕的單擊事件過程說明):
Private sub CmdSave_click( )
Dim FileNum as integer
FileNum=FreeFile 『取文件號
Open 「TEST.OLE」 For Binary as #FileNum 『打開要保存的文件
OLE1.SaveToFile FileNum 『保存至文件
Close #FileNum 『關閉文件
End sub
(3)將數據從文件讀入OLE容器控件(使用OLE控件的ReadFromFile方法)
用一命令按鈕的單擊事件過程說明:
Private sub CmdOpen_click( )
Dim FileNum as integer
FileNum=FreeFile 『取文件號
Open 「TEST.OLE」 For Binary as #FileNum 『打開文件
OLE1.ReadFromFile FileNum 『讀文件
Close #FileNum 『關閉二進制文件
End sub
3、使用「特殊粘貼」對話框創建鏈接對象或嵌入對象。
設計時創建對象的另一方法是使用「特殊粘貼」對話框,應用該方法可以只利用文件的一部分數據。(如只使用Excel數據表的一部分數據)
步驟:(1)運行一個包含鏈接或嵌入數據對象的應用程序(如Excel應用程序)。
(2)打開一個文件,選擇要鏈接或嵌入的數據。
(3)→「編輯」菜單/「複製」命令→複製「數據」到剪貼板上。
(4)在VB的一個包含OLE控件的工程中,右擊OLE控件→選擇「特殊粘貼」命令→彈出「選擇性粘貼」對話框。
(5)若想建立嵌入對象,選擇「粘貼」選項; 若OLE控件中已有一個對象
若想建立鏈接對象,選擇「粘貼鏈接」選項; 則會詢問是否刪除現有對象
(6)作出回答後,即在OLE控件上建立了一個新的對象。
4、利用OLE發出聲音(實例)
步驟:(1)在窗體上添加OLE控件時,→彈出「插入對象」對話框,
在「對象類型」列表框中選「聲音文件」;
選擇⊙從文件創建;
→「瀏覽」按鈕,選擇文件:C:\windows\Canyon.mid ;
選擇 鏈接, 顯示為圖標。
(2)單擊「確定」按鈕。
運行程序,雙擊OLE對象,將播放一段音樂。
三、在運行階段創建鏈接或嵌入對象
要在程序代碼運行時創建鏈接或嵌入對象,需要了解OLE容器控件的屬性、事件和方法。
1、OLE容器控件的屬性、方法、事件:
l Action屬性:指定作用在OLE控件上的動作(如建立、刪除、啟動等)。
語法為:object.Action=value
value的設置值如下表: value值 描述 方法 0 創建嵌入對象 Create Embed 1 創建鏈接對象 Create Link 4 將對象複製到系統剪貼板 Copy 5 將對象從系統剪貼板複製到OLE容器控件 Paste 6 從提供對象的應用程序檢索當前數據,並在
OLE容器控件中將該數據作為圖片顯示。 Update 7 打開一個對象,用於進行諸如編輯那樣的操作 DoVerb 9 關閉對象,並與提供該對象的應用程序終止連接 Close 10 將指定的對象刪除,釋放與之關聯的內存 Delete 11 將對象保存到數據文件中 SaveToFile 12 加載保存到數據文件中的對象 ReadFromFile 14 顯示「特殊粘貼」對話框 PasteSpecialDlg 17 更新對象支持的謂詞列表 FetchVerbs 18 將對象以OLE version 1.0版本的文件格式保存 SaveToOle1File l Class屬性(類屬性)
格式為:object.class
類名包含幾個部分:application.objecttype.version
類名:說明對象類型。
Application :提供對象的應用程序名
Objecttype :在對象庫中定義的對象名
Version :提供對象的應用程序的版本號
例如:Excel.Sheet.8
l OLEType Allowed屬性
返回或設置OLE容器控件所能包含的對象類型。
語法為:object.OLETypeAllowed [=value]
value值的設置如下表: 常數 值 描述 VbOLELinked 0 鏈接的,OLE容器只能包含鏈接對象 VbOLEEmbeded 1 嵌入的,OLE容器只能包含內嵌對象 VbOLEEither 2 二者均可(缺省值) l SourceDoc屬性
指定鏈接或嵌入對象時使用的源文件名。
語法為:object.sourceDoc [=name]
name :指定文件名的字符串表達式。
l SourceItem屬性(只對鏈接有效)
在創建鏈接對象時,設置或返回要鏈接的文件內的數據。
語法為:object.sourceItem [=string]
string :一個指定被鏈接數據的字符串表達式。
例如:A1 :E1 或 A3C4 :A9D10
[注意]:當使用Action屬性創建鏈接對象時,用SourceDoc 屬性指定要鏈接的文件,使用sourceItem屬性指定在要鏈接文件內的數據。
l Create Embed方法
該方法用來創建一個嵌入對象。
語法為:object.CreateEmbed sourcedoc[,class]
sourcedoc :必選項,對象從該文件中創建。
SourceItem :可選項,文件內的被鏈接的數據。
l DoVerb方法
打開一個對象(例如編輯一個對象)。
Object.DoVerb[verb]
Verb :可選項,在OLE容器控件內要執行的對象的謂詞。
l InsertObjDlg方法
顯示插入對象對話框。
語法為:object.InsertObjDlg
[說明](1)用戶在運行這個方法時,將顯示「插入對象」對話框,通過選取對象的類型,來創建鏈接的或內容嵌的對象,並由應用程序提供該對象。
(2)創建新對象時,與類名(如Excel.EXE)關聯的應用程序,必須已在操作系統中正確地作了註冊。
l PasteSpecialDlg方法
顯示「特殊粘貼」對話框。
語法為:object.PasteSpecialDlg
l Updated事件
當一個已創建對象的數據發生改變(修改)時,會引發Updated事件。
l ObjectMove事件
當移動和OLE控件有關的對象以及調整其大小時,會觸發ObjectMove事件。
l UpdateOptions屬性
在運行時設置當鏈接數據修改後是否更新鏈接對象。
語法為:Object.UpdateOptions [=number]
其中Number的設置值為:
0 —— 自動的(缺省值),每次改變鏈接數據時均更新對象
1 —— 凍結的
2 —— 手動的,只有使用Update方法才更新對象
2、運行階段建立鏈接對象
舉例:(1)在窗體上添加2個OLE容器控件時,2個命令按鈕。
(2)設計代碼:
☆ 要求功能:①OLE1和OLE2鏈接同一個數據源。
②當改變(修改)OLE1容器控件中的鏈接數據時,OLE控件中鏈接同一個數據源的數據也要求跟着變化。
Private sub command1_click( )
OLE1.class=」Excel worksheet」 用」Excel.sheet.」也可以
OLE1.sourceDoc=」C:\My Documents\aa.xls」
OLE1.DrsplayType=0
OLE1.Action=1
OLE2.class=」Excelworksheet」
OLE2.sourceDoc=」C:\My Documents\aa.xls」
OLE2.DisplayType=0
OLE2.Action=1
End sub
Private sub command2_click( )
UnLoad Me
End sub
Private sub OLE1_Updated(code as integer)
OLE2.UpdateOptions=0 『用OLE2.Action=6也可以,或OLE2.Update方法也可以
End sub
Private sub OLE2_Updated(code as integer)
OLE1.UpdateOptions=0
End sub
3、運行階段建立嵌入對象
運行時建立嵌入對象的方法與建立鏈接對象的方法相似,只不過此時在有關代碼中用:
OLE1.Action=0 或使用 CreateEmbed方法。
[注意]:對嵌入對象的任何修改要保存的話,一定要使用前述的SaveToFile方法,將修改的數據保存至某個文件中,在需要的時候可打開文件並恢復修改的內容。
補充2:
應用OLE拖放(在你的VB應用程序中支持OLE拖動功能)
一、OLE拖放的含義
指將數據從一個控件或應用程序移動到另一個控件或應用程序。
例如:可先選定並拖動Excel中的一列單元,然後將它們放到VB應用程序的DataGrid控件上。
二、VB控件的OLE拖放功能
VB的幾乎所有控件都在某種程度上支持OLE拖放(專業版和企業版)。
1、 自動支持OLE拖放的控件(既可從控件拖出,也可在控件放入)。
DataGrid , PictureBox ,RichTextBox ,Image ,TextBox ,MaskedEditBox
[注意]:要啟動這些控件的自動OLE拖放功能,應將其OLE Drag Mode屬性和OLEDropMode屬性設置為「自動化」——「Automatic「
2、僅自動支持OLE拖動操作的控件(僅從控件拖出)。
ComboBox ,DataListBox ,FileListBox ,DataComboBox ,DirlistBox ,ListBox , TreeView ,ListView等。
[注意]:要啟動這些控件的自動拖動功能,應將其OLEDragMode設置「自動化」。
3、僅支持OLE拖放事件的控件
——即可代碼對它們編程,使之成為OLE拖放操作的源,也可使生成為OLE拖放操作的目標。
CheckBox , Frame , OptionButton , CommandButton , Label , DrivelistBox , Data等。
[注意]:(1)為判斷其它ActionX控件是否支持OLE拖放,應在VB在加載控件,並檢查OLEDragMode和OLEDropMode屬性是否存在或檢查OLEDrag方法是否存在。
(2)缺省規定:在將文本從文本框控件拖動到word文檔時,文本被移動;若拖動文本的同時按下[Ctrl]鍵,則文本被複制。
CAD中OLE對象是什麼
CAD中OLE對象是什麼?首先OLE是ObjectLinkingandEmbedding的縮寫,也就是鏈接和嵌入的意思,我們可以使用迅捷CAD編輯器中的OLE對象功能,在圖紙的指定位置嵌入任何信息,比如文字、位圖、矢量圖形、聲音註解和錄像剪輯等等。那麼如何在CAD圖紙中插入OLE對象呢?具體操作方法如下:
1、啟動CAD編輯器(標準版),打開需要編輯的CAD圖紙,並切換到【編輯器】選項卡。
2、在【繪製】功能菜單中點擊【OLE對象】按鈕,激活該功能。
3、移動鼠標,框選需要嵌入對象的位置,也可以輸入寬度和高度指定位置,在選擇完成後,即可激活插入對象窗口。在彈出的插入窗口中,可以新建一個對象,也可以選擇插入的對象,點擊【又文件創建】,點擊【瀏覽】按鈕,添加需要插入的對象,選擇完成後,點擊確定按鈕。
最後,我們就可以在CAD圖中看到已經成功插入的OLE對象啦,這裡我們如果看不到OLE對象內容,可以選擇OLE對象,點擊右鍵,選擇【OLE】—【激活內容】就可以查看到OLE內容了。
在CAD中插入OLE對象怎麼做?
1、啟動CAD編輯器(標準版),打開需要編輯的CAD圖紙,並切換到【編輯器】選項卡。
2、在【繪製】功能菜單中點 擊【OLE對象】按鈕,調用該功能。
3、移動鼠標,框選需要嵌入對象的位置,也可以輸入寬度和高 度指 定位置,在選擇完成後,即 可調用插 入對象窗口。
4、在彈出的插 入窗口中,可以新建一個對象,也可以選擇插 入的對象,點 擊【由文件創建】,點 擊【瀏覽】按鈕,添加需要插 入的對象,選擇完成後,點 擊確 定按鈕。
5、然後,我們就可以在CAD圖中看到已經成功插 入的OLE對象啦,
CAD中如何插入OLE對象文件?
1、插入、ole對象、新建、點選類型、輸入編輯好關掉軟件,就插入進來了
2、插入、ole對象、,由文件創建、瀏覽、選擇文件、確定、調整參數。確定,就插入進來了
關於CAD不能插入OLE對象問題?
那你試一下新建文檔,把圖片插入到文檔中,這樣也可以插入圖片的
原創文章,作者:IGOS,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/134670.html