天天日?qǐng)?bào)丨ole對(duì)象的功能是什么_ole對(duì)象型
- 互聯(lián)網(wǎng)
- 2023-05-01 17:00:10
1、不知你有沒(méi)有接觸過(guò)VF編程,如果有過(guò)的話,對(duì)OLE這個(gè)東西應(yīng)該不會(huì)很陌生.但不管你有沒(méi)有接觸過(guò)它,相信你看了下面的內(nèi)容,會(huì)對(duì)你有所幫助的. VFP的OLE技術(shù)應(yīng)用詳解 VisuaLFoxPro3.0(以下簡(jiǎn)稱(chēng)VFP)使用了OLE2.0技術(shù),使VFP應(yīng)用程序的適應(yīng)能力大為加強(qiáng)。
2、 VFP提供兩種類(lèi)型的OLE對(duì)象:一種是OLE控件(.OCX文件),這是一種自定義控件,通常在WINDOWSSYSTEM目錄下,擁有自己的事件、方法,類(lèi)似于VFP的基本類(lèi),這種控件可以用VC、VB5.0、DeLphi、SDK2.0等編程工具開(kāi)發(fā)。
3、VFP缺省提供了四種可供使用的OLE控件,即通信(MSCOMM32.OCX)、消息應(yīng)用程序接口MAPI(MSMAPI32.OCX)、OutLine(MSOUTL32.OCX)和圖片裁剪(PICCLP32.OCX);另一種是可插入型OLE對(duì)象,這是由其他應(yīng)用程序創(chuàng)建的,它們沒(méi)有自己的事件集合。
(相關(guān)資料圖)
4、這一種可插入型OLE對(duì)象又可分為限制性可插入型OLE對(duì)象和非限制性可插入型OLE對(duì)象。
5、 VFP提供兩種引用OLE對(duì)象的途徑都是通過(guò)VFP中的控件實(shí)現(xiàn)的:一種是通過(guò)OLE容器控件鏈接或嵌入對(duì)象,OLE容器控件可以引入OLE控件和非限制性可插入型OLE對(duì)象;另一種是通過(guò)OLE綁定型控件鏈接或嵌入數(shù)據(jù)表的通用類(lèi)型字段中所存放的OLE對(duì)象,這通常是些限制性可插入型OLE對(duì)象。
6、 在VFP中OLE對(duì)象是通過(guò)鏈接或嵌入操作方式進(jìn)行操作的。
7、鏈接和嵌入操作之間的區(qū)別在于OLE對(duì)象所存放的地點(diǎn):鏈接操作中的OLE對(duì)象仍然存放在創(chuàng)建它的源文件中數(shù)據(jù)表或表單僅僅存儲(chǔ)源文件的位置,即一個(gè)指針,在更改源文件時(shí),被鏈接的OLE對(duì)象將被及時(shí)更新。
8、被鏈接的OLE對(duì)象始終保持著與源文件之間的聯(lián)系,除非人為斷開(kāi)這種聯(lián)系;嵌入操作的OLE對(duì)象只能存儲(chǔ)在數(shù)據(jù)表或表單中。
9、這些OLE對(duì)象不與創(chuàng)建它的源文件保持聯(lián)系。
10、如果源文件做了更改,它們不會(huì)自動(dòng)反映在VFP應(yīng)用程序中,除非你再次進(jìn)行嵌入操作。
11、鏈接操作通常用于如下場(chǎng)合:OLE對(duì)象(數(shù)據(jù)或圖形)可能被經(jīng)常更改、應(yīng)用程序必須包含最新版本的OLE對(duì)象、存放OLE對(duì)象的源文件可以在計(jì)算機(jī)之間或通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行更新、存放OLE對(duì)象的源文件必須被其他應(yīng)用程序共享。
12、嵌入操作通常用于如下場(chǎng)合:應(yīng)用程序不需要具有最新版本的OLE對(duì)象、嵌入的OLE對(duì)象不需要被多個(gè)應(yīng)用程序使用、源文件在被鏈接后不會(huì)被更新。
13、 要注意的是VFP本身只是一個(gè)OLE客戶機(jī),而不是一個(gè)OLE服務(wù)器。
14、 使用OLE對(duì)象 在應(yīng)用程序中使用OLE對(duì)象首先要考慮OLE對(duì)象的類(lèi)型,針對(duì)不同類(lèi)型的OLE對(duì)象,使用不同的方法來(lái)引用它們。
15、當(dāng)程序中要引用的可插入型OLE對(duì)象較多時(shí)就要考慮用數(shù)據(jù)表的通用型字段來(lái)存儲(chǔ)它。
16、 在VFP的數(shù)據(jù)表中添加OLE對(duì)象 方法一:使用數(shù)據(jù)表設(shè)計(jì)器給數(shù)據(jù)表添加一個(gè)通用型字段,然后將可插入型OLE對(duì)象鏈接或嵌入到通用型字段的每個(gè)記錄中。
17、通用字段包含一個(gè)10字節(jié)的指針,它指向該字段真正的內(nèi)容,通用型字段的真正類(lèi)型和數(shù)據(jù)大小取決于創(chuàng)建這些對(duì)象的OLE服務(wù)器。
18、這些OLE對(duì)象是以鏈接方式還是以嵌入方式進(jìn)行操作與該應(yīng)用程序有關(guān)。
19、若OLE對(duì)象是以鏈接方式進(jìn)行操作的,則數(shù)據(jù)表中只含有對(duì)OLE對(duì)象的引用,以及創(chuàng)建這些OLE對(duì)象的應(yīng)用程序的引用;若OLE對(duì)象是以嵌入方式進(jìn)行操作的,數(shù)據(jù)表中將含有相關(guān)OLE對(duì)象的副本,以及對(duì)創(chuàng)建這些OLE對(duì)象的應(yīng)用程序的引用。
20、通用字段的大小僅受可用磁盤(pán)空間的限制。
21、 方法二:使用APPENDGENERAL命令從文件中導(dǎo)入OLE對(duì)象并將其放入通用型字段中。
22、語(yǔ)法: APPENDGENERALGeneraLFieLdName 〔FROMFiLeName FROMMEMOPictureFieLd?Name〕 〔DATAcExpression〕 〔LINK〕 〔CLASSOLECLassName〕 2、使用限制性可插入型OLE對(duì)象 使用通用型字段中所存儲(chǔ)的限制性可插入型OLE對(duì)象需要使用OLE綁定型控件,步驟如下: (1)在表單設(shè)計(jì)器中,將一個(gè)OLE綁定型控件添加到表單中。
23、 (2)通過(guò)設(shè)置對(duì)象的ControLSource屬性指定包含OLE對(duì)象的通用型字段。
24、如果數(shù)據(jù)表名為Inventory,通用型字段名為Current,那么可以將ControL?Source屬性設(shè)置成Inventory.Current。
25、 (3)在表單上添加按鈕或菜單命令,用以瀏覽ControLSource屬性指定的通用型字段。
26、 3、使用OLE控件(.OCX文件)及非限制性可插入型OLE對(duì)象 這兩類(lèi)對(duì)象需要使用OLE容器控件。
27、OLE容器控件允許向應(yīng)用程序中加入OLE對(duì)象,包括OLE控件(.OCX文件)、非限制性可插入型OLE對(duì)象。
28、OLE容器控件與OLE綁定型控件不同在于,它不與VFP表的一個(gè)通用型字段相連接。
29、 若要在表單中添加OLE控件及非限制性可插入型OLE對(duì)象可按如下步驟進(jìn)行: (1)在表單設(shè)計(jì)器中,向表單中添加一個(gè)OLE容器控件。
30、 (2)在“InsertObject”對(duì)話框中,選擇“CreateNew”或“CreatefromFiLe”或“InsertControL”選項(xiàng)。
31、 (3)從顯示的列表中選擇適當(dāng)?shù)腛LE控件或創(chuàng)建適當(dāng)類(lèi)型的對(duì)象或增加一個(gè)嵌入文件。
32、 在插入控件時(shí)如果所要的控件沒(méi)有出現(xiàn)在列表中,可選擇“AddControL”按鈕將其添加到列表中。
33、也可以通過(guò)將OLE控件添加到表單控件工具欄中而將其添加到表單中。
34、在選項(xiàng)對(duì)話框中選擇控件之后,單擊表單控件工具欄上的“ViewCLass”按鈕,從子菜單中選擇“OLEControL”,單擊OLE,然后拖動(dòng)控件,在表單上設(shè)置其大小。
35、下面以一例子說(shuō)明如何在程序中使用非限制性可插入型OLE對(duì)象,本例首先將一個(gè)OLE容器控件加入表單,然后使用OLE容器控件的OLECLass和DocumentFiLe屬性將MicrosoftExceL作為OLE服務(wù)器,并將一個(gè)ExceL工作簿指定為要編輯的文件。
36、DocumentFiLe屬性指定了在C驅(qū)動(dòng)器中ExceL路徑下一個(gè)名為BOOK1.XLS的工作簿。
37、如果在DocumentFiLe屬性中指定的文件或路徑不存在,則本例程不能正常運(yùn)行,這時(shí)需要修改DocumentFiLe來(lái)指明一個(gè)存在的路徑和工作簿文件。
38、另外BOOK1.XLS只能讀不能修改,下面是其VFP源代碼及其說(shuō)明。
39、 frmMyForm=CREATEOBJECT(′Form′)&&創(chuàng)建表單 frmMyForm.CLosabLe=.F.&&廢止控制菜單框 frmMyForm.AddObject(′cmdCommand1′,′cmdMyCmdBtn′) frmMyForm.AddObject(〃oLeObject〃,〃oLeEx?ceLObject〃) frmMyForm.cmdCommand1.VisibLe=.T. frmMyForm.oLeObject.VisibLe=.T. frmMyForm.oLeObject.Height=50 frmMyForm.Show frmMyForm.oLeObject.DoVerb(-1) READEVENTS DEFINECLASSoLeExceLObjectasOLEControL OLeCLass=〃ExceL.Sheet〃 DocumentFiLe=〃C:EXCELBOOK1.XLS〃 ENDDEFINE DEFINECLASScmdMyCmdBtnASCommand?Button Caption=′ CanceL=.T. Left=125 Top=210 Height=25 PROCEDURECLick CLEAREVENTS ENDDEFINE 4、使用OLE對(duì)象的屬性 OLE對(duì)象有一系列屬性可供使用,但是對(duì)包含在OLE容器控件中的OLE對(duì)象,要確保引用的是OLE對(duì)象的屬性而不是其容器的屬性,這需要將容器的Ob?ject屬性加到OLE對(duì)象名當(dāng)中。
40、 5、使用OLE對(duì)象的方法 除了設(shè)置和讀取OLE對(duì)象的屬性外,還可以使用OLE對(duì)象的方法來(lái)操作OLE對(duì)象。
41、例如,下面的程序使用了Ex?ceL對(duì)象的Add方法來(lái)創(chuàng)建ExceL工作簿,然后使用Save方法保存該工作簿,并使用Quit方法結(jié)束ExceL的本次運(yùn)行: oLeApp=CREATEOBJECT(”Ex?ceL.AppLication”) oLeApp.VisibLe=.T. oLeApp.Workbooks.Add oLeApp.CeLLs(1,1).VaLue=7 oLeApp.ActiveWorkbook.SaveAs(”C:TEMP.XLS”) oLeApp.Quit 與使用屬性一樣,如果用容器控件創(chuàng)建對(duì)象,應(yīng)確保將“Object”加到引用對(duì)象方法的控件名稱(chēng)當(dāng)中。
42、 6、訪問(wèn)集合中的OLE對(duì)象 一個(gè)對(duì)象類(lèi)型可以代表單個(gè)對(duì)象或若干相關(guān)對(duì)象的集合。
43、 在程序中,集合是一個(gè)未經(jīng)排序的鏈表結(jié)構(gòu),每當(dāng)有對(duì)象被添加到集合中或從集合中移去時(shí),其余對(duì)象的位置都可能改變。
44、使用集合的Count屬性對(duì)集合遍歷,可以訪問(wèn)集合中的所有對(duì)象。
45、Count屬性可用來(lái)返回集合中項(xiàng)的數(shù)目。
46、另外,可以使用Item方法返回集合中的某一項(xiàng)。
47、 也可以訪問(wèn)集合內(nèi)的集合。
48、例如,使用下列程序代碼可以在一個(gè)單元格區(qū)域內(nèi)訪問(wèn)某一單元格集合: oLeApp=CREATEOBJECT(”ExceL.sheet”) oLeApp.Range(oLeApp.CeLLs(1,1),oLeApp.CeLLs(10,10)).VaLue=100 7、使用OLE對(duì)象的數(shù)組利用OLE技術(shù),不但可以將數(shù)組傳遞給OLE對(duì)象的方法,而且可以接收OLE對(duì)象傳來(lái)的數(shù)組。
49、傳遞數(shù)組的方式必須是按引用傳遞,即必須在數(shù)組名前加@符號(hào)(用VFP不能將二維以上的數(shù)組傳遞到OLE對(duì)象中)。
50、例如,要發(fā)送一個(gè)VFP數(shù)組到ExceL中,可以使用以下程序代碼。
51、它先在VFP中創(chuàng)建一個(gè)數(shù)組,給數(shù)組賦一些值,然后啟動(dòng)ExceL,創(chuàng)建一個(gè)工作簿,并給工作表的第一個(gè)單元格設(shè)置一個(gè)初始值,再將此值復(fù)制到數(shù)組中的其他工作表中:其中用到了ExceL的工作簿集(Workbooks對(duì)象),工作表集(Sheets對(duì)象)的相關(guān)屬性及方法和ExceL對(duì)象的GetCustomListContents方法。
52、下列代碼將數(shù)組傳遞給方法FiLLAcrossSheets,以便將Sheet1中的第一區(qū)域內(nèi)容復(fù)制到其它工作表的相同區(qū)域。
53、 DIMENSIONaV(2) aV(1)=〃Sheet1〃 aV(2)=〃Sheet2〃 oLeApp=CREATEOBJECT(〃Ex?ceL.AppLication〃) oLeApp.Workbooks.Add oLeI=oLeApp.Workbooks.Item(1) oLeI.Sheets.Item(1).CeLLs(1,1).VaLue=100&&初始值 oLeI.Sheets(@aV).FiLLAcrossSheets(oLeI.Worksheets(〃Sheet1〃).CeLLs(1,1)) oLeApp.VisibLe=.T. 下列代碼將一個(gè)數(shù)組返回到VFP,并顯示數(shù)組的內(nèi)容: oLeApp=CREATEOBJECT(〃Ex?ceL.AppLication〃) aOLeArray=oLeApp.GetCustomListContents(1)&&改變數(shù)組下標(biāo)可以顯示其它內(nèi)容 FORnIndex=1toALEN(aOLeArray) ?aOLeArray(nIndex) ENDFOR。
本文就為大家分享到這里,希望小伙伴們會(huì)喜歡。
關(guān)鍵詞:
紱忓緩錛氬煄甯?jìng)绀惧尯宸ヤ綔鑰呭彲鍙傚姞宸ヤ激淇濋櫓
- 紅色游,穿越時(shí)空的洗禮 天天報(bào)資訊
- 知魚(yú)智聯(lián)“AI+N”:以科技賦能行業(yè),用數(shù)智溫暖生活
- 世界新資訊:“數(shù)字福建”背后的力量:中國(guó)移動(dòng)10086助力打造數(shù)智化服務(wù)新模式
- 福建省農(nóng)產(chǎn)品質(zhì)量安全現(xiàn)場(chǎng)宣傳活動(dòng)在榕舉行
- 紱忓緩鐪佺邯濮旂洃濮旈€氭姤浜旇搗榪濆弽涓ぎ鍏」瑙勫畾綺劇鍏稿瀷闂|世界即時(shí)
- 福建省第十屆少數(shù)民族傳統(tǒng)體育運(yùn)動(dòng)會(huì)閉幕
- 每日熱聞!福建公布中小學(xué)生非學(xué)科類(lèi)校外培訓(xùn)清單目錄
- 福建省帳篷露營(yíng)季在德化開(kāi)幕 10條露營(yíng)線路發(fā)布
- 《福建省住房公積金2022年年度報(bào)告》公布 環(huán)球短訊
- 天天日?qǐng)?bào)丨ole對(duì)象的功能是什么_ole對(duì)象型2023-05-01
- 今日熱文:好抓馬!洪欣凌晨發(fā)微博官宣離婚2023-05-01
- “大慶農(nóng)田冒石油”視頻發(fā)布者承認(rèn)造假,警2023-05-01
- 物流保通保暢 郵政快遞累計(jì)攬投總量約50.62023-05-01
- 廣州圣心大教堂文保碑破碎墜地,文旅局:將2023-05-01
- 天天簡(jiǎn)訊:萬(wàn)人說(shuō)新疆丨小小畫(huà)家2023-05-01
- 天天快看:千城勝景|新疆喀什古城:歌舞醉2023-05-01
- 港澳成為旅游熱門(mén)地 港珠澳大橋口岸出入境2023-05-01
- 全球連線 | “五一”小長(zhǎng)假 內(nèi)地游客2023-05-01
- 江山壯麗 我說(shuō)長(zhǎng)城丨新疆這座古老烽燧何以2023-05-01
- 天天精選!紫藤花香撲面來(lái)2023-05-01
- 時(shí)刻守護(hù)在旁!小男孩挖蛤蜊和奶奶走散后求2023-05-01
- “五一”假期,那些堅(jiān)守崗位的勞動(dòng)者-天天2023-05-01
- 燃!機(jī)甲大師高校聯(lián)盟賽在渝開(kāi)戰(zhàn)_全球信息2023-05-01
- vivo X Fold2及X Flip火熱大賣(mài)!首銷(xiāo)輕2023-05-01
- 萬(wàn)花筒制作_制作步驟詳解 世界視點(diǎn)2023-05-01
- 張樹(shù)鵬成功翼裝飛行穿越天門(mén)洞|天天快資訊2023-05-01
- 5月1日全國(guó)鐵路預(yù)計(jì)發(fā)送旅客1600萬(wàn)人次 焦2023-05-01
- 氣溫驟降超10℃!新一輪冷空氣來(lái)襲!這些地2023-05-01
- 大熊貓“最強(qiáng)周邊”,又又又又來(lái)了!2023-05-01
- 東京大學(xué)發(fā)布消息:馬云成為東京學(xué)院客座教2023-05-01
- 每日短訊:4月份中國(guó)制造業(yè)PMI為49.2% 向2023-05-01
- 全球連線丨(外國(guó)人看中國(guó)基建)了不起的中2023-05-01
- 全球連線|逆行守護(hù) 命運(yùn)與共——中國(guó)軍隊(duì)2023-05-01
- 報(bào)道:“五一”假期旅游火爆,中國(guó)經(jīng)濟(jì)復(fù)蘇2023-05-01
- 治安巡邏、反詐宣傳走進(jìn)五四廣場(chǎng)!市南公安2023-05-01
- 云南大理:洱海上空現(xiàn)“棉花糖云”2023-05-01
- 快訊:歐洲旅游業(yè)熱盼中國(guó)出境游紅利2023-05-01
- 【當(dāng)前獨(dú)家】(踔厲奮發(fā)·奔向美好生活)中2023-05-01
- 民航局:今天預(yù)計(jì)保障航班15415班 運(yùn)輸旅2023-05-01