?? 021.htm
字號:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI基礎(chǔ)教程-->第八章 對象鏈接與嵌入(一)</TITLE>
<META NAME="keywords" CONTENT=" DELPHI基礎(chǔ)教程 第八章 對象鏈接與嵌入(一)">
<META NAME="description" CONTENT=" - DELPHI基礎(chǔ)教程 - 第八章 對象鏈接與嵌入(一)">
<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋體"}
.tt2 {font: 12pt/15pt "宋體"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>
<TD CLASS="tt3" VALIGN="top" width="8%" bgcolor="#e0e0e0"><strong><A HREF="022.htm"><FONT style="FONT-SIZE: 9pt">后一頁</font></A><BR>
<A HREF="020.htm"><FONT style="FONT-SIZE: 9pt">前一頁</font></A><BR>
<A HREF="index.html"><FONT style="FONT-SIZE: 9pt">回目錄</font></A><BR>
<A HREF="../../../../index.htm"><FONT style="FONT-SIZE: 9pt">回首頁</font></A><BR>
</strong>
</TD>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷體_GB2312">第八章 對象鏈接與嵌入(一)</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<p> 對象鏈接和嵌入</font>(Object Linking and Embeding)<font face="宋體"
lang="ZH-CN">是一組服務(wù)功能,它提供了一種用源于不同應(yīng)用程序的信息創(chuàng)建復合文檔的強有力方法。</font>
<font face="宋體" lang="ZH-CN">對象可以是幾乎所有的信息類型,如文字、位圖、矢量圖形,甚至于聲音注解和錄像剪輯等。</p>
<p> </font>Windows<font face="宋體" lang="ZH-CN">附件組中的書寫器是應(yīng)用</font>OLE<font
face="宋體" lang="ZH-CN">的實例,使用單擊“對象</font> | <font face="宋體"
lang="ZH-CN">插入”菜單項,</font> <font face="宋體" lang="ZH-CN">書寫器彈出插入對話框,對話框中列出了多個</font>OLE<font
face="宋體" lang="ZH-CN">服務(wù)器程序,如公式編輯工具,繪圖工具,報表生成工具。用戶雙擊鼠標左鍵,可激活一個</font>OLE<font
face="宋體" lang="ZH-CN">服務(wù)器。在</font>OLE<font face="宋體" lang="ZH-CN">服務(wù)器中可編輯</font>OLE<font
face="宋體" lang="ZH-CN">對象,當用戶返回到書寫器中時,在書寫器文檔中將出現(xiàn)</font>OLE<font
face="宋體" lang="ZH-CN">對象。</p>
<p> </font>Delphi<font face="宋體" lang="ZH-CN">支持</font>OLE<font face="宋體"
lang="ZH-CN">技術(shù),</font>Delphi1.0<font face="宋體" lang="ZH-CN">可以創(chuàng)建</font>OLE<font
face="宋體" lang="ZH-CN">應(yīng)用程序,</font>Delphi2.0<font face="宋體" lang="ZH-CN">可創(chuàng)建</font>OLE<font
face="宋體" lang="ZH-CN">自動化服務(wù)器和控制器程序。本章通過例程介紹對象鏈接與嵌入的基本概念,</font>Delphi<font
face="宋體" lang="ZH-CN">創(chuàng)建</font>OLE<font face="宋體" lang="ZH-CN">對象的方法,</font>OLE<font
face="宋體" lang="ZH-CN">自動化的概念以及如何開發(fā)</font>OLE<font
face="宋體" lang="ZH-CN">自動化服務(wù)器和控制器。 </p>
</font><p>8.1 OLE<font face="宋體" lang="ZH-CN">簡介 </p>
</font><p>8.1.1 OLE1.0<font face="宋體" lang="ZH-CN">和</font>OLE2.0 </p>
<p><font face="宋體" lang="ZH-CN">
迄今為止,有兩種版本的</font>OLE<font
face="宋體" lang="ZH-CN">:</font>OLE1.0<font face="宋體" lang="ZH-CN">和</font>OLE2.0<font
face="宋體" lang="ZH-CN">。當用戶在</font>OLE1.0 <font face="宋體" lang="ZH-CN">服務(wù)器中激活</font>OLE<font
face="宋體" lang="ZH-CN">對象,服務(wù)器程序在前臺打開自己的窗體,并獲得焦點。</font>OLE<font
face="宋體" lang="ZH-CN">窗體失去焦點,存在于單獨的窗體之中。</p>
<p> </font>OLE2.0<font face="宋體" lang="ZH-CN">服務(wù)器采用“本地”</font>(in
place)<font face="宋體" lang="ZH-CN">激活方式。本地激活意味著服務(wù)器菜單與應(yīng)用程序菜單要進行融合,服務(wù)器的狀態(tài)條更換應(yīng)用程序狀態(tài)條,服務(wù)器的工具條更換應(yīng)用程序工具條。</font>OLE<font
face="宋體" lang="ZH-CN">對象在應(yīng)用程序窗體中進行編輯,但所有過程均由服務(wù)器處理。</p>
<p> 創(chuàng)建</font>OLE<font face="宋體" lang="ZH-CN">對象的服務(wù)器決定了</font>OLE<font
face="宋體" lang="ZH-CN">的激活方式。如果一個</font>OLE1.0<font face="宋體"
lang="ZH-CN">的對象在</font>OLE2.0 <font face="宋體" lang="ZH-CN">編譯的應(yīng)用程序中打開,它將采用</font>OLE1.0<font
face="宋體" lang="ZH-CN">的方式。 </p>
</font><p>8.1.2 <font face="宋體" lang="ZH-CN">鏈接與嵌入 </p>
<p> 鏈接對象的數(shù)據(jù)保存在</font>OLE<font face="宋體" lang="ZH-CN">服務(wù)器創(chuàng)建的文件中,嵌入對象的數(shù)據(jù)保存在</font>OLE<font
face="宋體" lang="ZH-CN">應(yīng)用程序中。</p>
<p> 鏈接對象必須以文件形式保存,只有對</font>OLE<font face="宋體"
lang="ZH-CN">服務(wù)器已經(jīng)創(chuàng)建好的</font>OLE<font face="宋體" lang="ZH-CN">對象,</font>
<font face="宋體" lang="ZH-CN">才能進行</font>OLE<font face="宋體" lang="ZH-CN">鏈接,鏈接的</font>OLE<font
face="宋體" lang="ZH-CN">對象文件可被</font>OLE<font face="宋體" lang="ZH-CN">應(yīng)用程序或其它程序進行修改,</font>OLE
<font face="宋體" lang="ZH-CN">服務(wù)器和其它</font>OLE<font face="宋體"
lang="ZH-CN">應(yīng)用程序也可以訪問和修改</font>OLE<font face="宋體"
lang="ZH-CN">對象。對象數(shù)據(jù)保存在某一處,但可以被多個應(yīng)用程序訪問。</p>
<p> </font>Delphi<font face="宋體" lang="ZH-CN">應(yīng)用程序可以得到</font>OLE<font
face="宋體" lang="ZH-CN">對象文件中的最新數(shù)據(jù)。當</font>OLE <font
face="宋體" lang="ZH-CN">對象數(shù)據(jù)被應(yīng)用程序修改時,這些變化將在所有包含該對象的其它應(yīng)用程序中體現(xiàn)。</p>
<p> 嵌入對象保存在</font>OLE<font face="宋體" lang="ZH-CN">應(yīng)用程序中,其它應(yīng)用程序不能訪問該對象。只有在</font>OLE<font
face="宋體" lang="ZH-CN">應(yīng)用程序中激活</font>OLE<font face="宋體" lang="ZH-CN">對象才能對其進行編輯。嵌入的</font>OLE<font
face="宋體" lang="ZH-CN">對象不需要保存在文件中,所有數(shù)據(jù)都在應(yīng)用程序中,這就確保了</font>OLE<font
face="宋體" lang="ZH-CN">數(shù)據(jù)不會被偶然地刪除或修改。不足之處是應(yīng)用程序的規(guī)模因為保存了</font>OLE<font
face="宋體" lang="ZH-CN">數(shù)據(jù)而增大了</font> <font face="宋體" lang="ZH-CN">。</p>
<p> 如果用戶想保存對嵌入對象的修改,可以把OLE數(shù)據(jù)存入文件中,本章第3
節(jié)將詳細討論這個問題。</p>
<p> </font> <font face="宋體" lang="ZH-CN">表</font>8.1 <font face="宋體"
lang="ZH-CN">使用鏈接或嵌入的原則。</font></p>
<p><font face="宋體" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p> </font> <font face="宋體" lang="ZH-CN">何時使用鏈接 何時使用嵌入</font></p>
<p><font face="宋體" lang="ZH-CN">───────────────────────────────</p>
<p> 想要對源對象進行修改及將 對源對象進行修改,并將這</p>
<p> 這些修改反映到其他與源對 些修改反映在一個特定的應(yīng)</p>
<p> 象鏈接的應(yīng)用程序或文本中 用程序或文本中</font></p>
<font face="宋體" lang="ZH-CN"><p> 源對象可能被多個</font>OLE<font
face="宋體" lang="ZH-CN">應(yīng)</font> <font face="宋體" lang="ZH-CN"> </font> <font
face="宋體" lang="ZH-CN">源對象不可能被一個</font>OLE<font face="宋體"
lang="ZH-CN">應(yīng)</p>
<p> 用程序應(yīng)用程序頻繁修改 用程序頻繁修改</font></p>
<font face="宋體" lang="ZH-CN"><p> 源對象的文件不會被頻繁移 源對象的文件可能被頻繁移</p>
<p> 動,且不會被刪除 </font> <font face="宋體" lang="ZH-CN">動,且不會被刪除 </font></p>
<font face="宋體" lang="ZH-CN"><p> 對象很大,一般通過網(wǎng)絡(luò)或 對象很小,或?qū)ο蠛艽髤s無法</p>
<p> 電子郵件進行分配 通過網(wǎng)絡(luò)或電子郵件進行分配</font></p>
<p><font face="宋體" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ </p>
</font><p>8.1.3 <font face="宋體" lang="ZH-CN">設(shè)計狀態(tài)</font>OLE<font face="宋體"
lang="ZH-CN">對象的創(chuàng)建 </p>
<p> 在</font>Delphi<font face="宋體" lang="ZH-CN">中,可分別在設(shè)計狀態(tài)或運行狀態(tài)創(chuàng)建</font>OLE<font
face="宋體" lang="ZH-CN">對象,表</font>8.2<font face="宋體" lang="ZH-CN">說明了兩種狀態(tài)創(chuàng)建對象的差別。 </p>
</font><p><font face="宋體" lang="ZH-CN">表</font>8.2 <font face="宋體" lang="ZH-CN">設(shè)計、運行狀態(tài)</font>OLE<font
face="宋體" lang="ZH-CN">對象的創(chuàng)建</font></p>
<p><font face="宋體" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font></p>
<p><font face="宋體" lang="ZH-CN"> 設(shè)計狀態(tài)</font>OLE<font face="宋體"
lang="ZH-CN">對象的創(chuàng)建 </font> <font face="宋體"
lang="ZH-CN">運行狀態(tài)</font>OLE<font face="宋體" lang="ZH-CN">對象的創(chuàng)建</font></p>
<p><font face="宋體" lang="ZH-CN">──────────────────────────────────────</font></p>
<p><font face="宋體" lang="ZH-CN">對象保存在運行文件中,增加了所需</font>
<font face="宋體" lang="ZH-CN">對象保存在一個文件中或只在運行時</font></p>
<p><font face="宋體" lang="ZH-CN">編譯的程序的規(guī)模 </font> <font
face="宋體" lang="ZH-CN">才有,減小了編譯程序的規(guī)模 </p>
</font><p><font face="宋體" lang="ZH-CN">開發(fā)者需在設(shè)計時訪問</font>OLE<font
face="宋體" lang="ZH-CN">服務(wù)器 開發(fā)者不需要在設(shè)計時訪問</font>OLE<font
face="宋體" lang="ZH-CN">服務(wù)器 </p>
</font><p><font face="宋體" lang="ZH-CN">運行時</font>OLE<font face="宋體"
lang="ZH-CN">對象已經(jīng)創(chuàng)建,減小了</font> <font face="宋體" lang="ZH-CN"> </font>
<font face="宋體" lang="ZH-CN">運行時</font>OLE<font face="宋體" lang="ZH-CN">對象已經(jīng)創(chuàng)建,增加了運行</font></p>
<p><font face="宋體" lang="ZH-CN">運行時間 </font>
<font face="宋體" lang="ZH-CN">時間 </font></p>
<p>OLE<font face="宋體" lang="ZH-CN">對象在設(shè)計運行時間可行性編輯 </font>
OLE<font face="宋體" lang="ZH-CN">對象只能在運行時編輯</font></p>
<p><font face="宋體" lang="ZH-CN">應(yīng)用程序的</font>OLE<font face="宋體"
lang="ZH-CN">對象數(shù)目在設(shè)計時已 </font> <font face="宋體" lang="ZH-CN">應(yīng)用程序可以在運行時創(chuàng)建新的</font>OLE<font
face="宋體" lang="ZH-CN">對</font></p>
<p><font face="宋體" lang="ZH-CN">經(jīng)確立 </font> <font face="宋體"
lang="ZH-CN"> 象</font></p>
<p><font face="宋體" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ </p>
<p> 在設(shè)計狀態(tài),</font>OLE<font face="宋體" lang="ZH-CN">服務(wù)器不能被本地激活,只能在自己的窗體內(nèi)激活。但在運行狀態(tài),</p>
<p>只要</font>OLE<font face="宋體" lang="ZH-CN">服務(wù)器支持本地激活,就可以使用這種方式。 </p>
</font><p>8.1.4 OLE<font face="宋體" lang="ZH-CN">類、文件、項目 </p>
<p> </font>OLE<font face="宋體" lang="ZH-CN">類決定創(chuàng)建</font>OLE<font
face="宋體" lang="ZH-CN">對象的服務(wù)器。有些應(yīng)用程序需要創(chuàng)建多種類型的</font>OLE<font
face="宋體" lang="ZH-CN">對象,例如應(yīng)用程序同時鏈接或嵌入公式、圖片等。</font>OLE<font
face="宋體" lang="ZH-CN">類也決定</font>OLE<font face="宋體" lang="ZH-CN">對象所包含的數(shù)據(jù)類型,鏈接或嵌入對象均要定義</font>OLE<font
face="宋體" lang="ZH-CN">類。</p>
<p> </font>OLE<font face="宋體" lang="ZH-CN">文件是包含</font>OLE<font
face="宋體" lang="ZH-CN">對象數(shù)據(jù)的源文件。鏈接對象必須使用對象文件,因為鏈接對象在文件中保存。如果應(yīng)用程序從已存在的源文件中創(chuàng)建嵌入對象,也要使用</font>OLE<font
face="宋體" lang="ZH-CN">文件。例如,如果鏈接到</font>QuattiPro<font
face="宋體" lang="ZH-CN">筆記本的</font>OLE<font face="宋體" lang="ZH-CN">對象</font>TUTOR.WBI<font
face="宋體" lang="ZH-CN">存儲在</font>D:\DFFICE\QPW<font face="宋體" lang="ZH-CN">目錄下,則</font>OLE<font
face="宋體" lang="ZH-CN">文件就是</font>D:\DFFICE\QPW\TUTOR.WBI<font face="宋體"
lang="ZH-CN">。值得注意的是</font>OLE<font face="宋體" lang="ZH-CN">文件只能為鏈接對象所定義,而對于嵌入對象,只需定義</font>OLE<font
face="宋體" lang="ZH-CN">類。</p>
<p> </font>OLE<font face="宋體" lang="ZH-CN">項目是代表鏈接或嵌入數(shù)據(jù)的</font>OLE<font
face="宋體" lang="ZH-CN">文件中的一部分。當應(yīng)用程序希望</font>OLE<font
face="宋體" lang="ZH-CN">對象包含比</font>OLE<font face="宋體" lang="ZH-CN">文件小的數(shù)據(jù)塊時,則必須使用</font>OLE<font
face="宋體" lang="ZH-CN">項目。</p>
<p> 例如,在</font>QuattiPro<font face="宋體" lang="ZH-CN">筆記本中,</font>OLE<font
face="宋體" lang="ZH-CN">對象鏈接了</font>GasCosts<font face="宋體" lang="ZH-CN">的</font>B4
<font face="宋體" lang="ZH-CN">到</font>B5 <font face="宋體" lang="ZH-CN">范圍的網(wǎng)格,</font>OLE<font
face="宋體" lang="ZH-CN">項目是</font>$GasCosts;$B$4.$B$5<font face="宋體"
lang="ZH-CN">。 </p>
</font><p>8.2 <font face="宋體" lang="ZH-CN">設(shè)計狀態(tài)</font>OLE<font face="宋體"
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -