📄 021.htm
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI基础教程-->第八章 对象链接与嵌入(一)</TITLE>
<META NAME="keywords" CONTENT=" DELPHI基础教程 第八章 对象链接与嵌入(一)">
<META NAME="description" CONTENT=" - DELPHI基础教程 - 第八章 对象链接与嵌入(一)">
<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 background="bg.gif" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TR>
<TD CLASS="tt3" VALIGN="top" width="8%" background="bg.gif"><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" background="bg.gif" 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">是一组服务功能,它提供了一种用源于不同应用程序的信息创建复合文档的强有力方法。</font>
<font face="宋体" lang="ZH-CN">对象可以是几乎所有的信息类型,如文字、位图、矢量图形,甚至于声音注解和录像剪辑等。</p>
<p> </font>Windows<font face="宋体" lang="ZH-CN">附件组中的书写器是应用</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">服务器程序,如公式编辑工具,绘图工具,报表生成工具。用户双击鼠标左键,可激活一个</font>OLE<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">对象。</p>
<p> </font>Delphi<font face="宋体" lang="ZH-CN">支持</font>OLE<font face="宋体"
lang="ZH-CN">技术,</font>Delphi1.0<font face="宋体" lang="ZH-CN">可以创建</font>OLE<font
face="宋体" lang="ZH-CN">应用程序,</font>Delphi2.0<font face="宋体" lang="ZH-CN">可创建</font>OLE<font
face="宋体" lang="ZH-CN">自动化服务器和控制器程序。本章通过例程介绍对象链接与嵌入的基本概念,</font>Delphi<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">自动化服务器和控制器。 </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">服务器中激活</font>OLE<font
face="宋体" lang="ZH-CN">对象,服务器程序在前台打开自己的窗体,并获得焦点。</font>OLE<font
face="宋体" lang="ZH-CN">窗体失去焦点,存在于单独的窗体之中。</p>
<p> </font>OLE2.0<font face="宋体" lang="ZH-CN">服务器采用“本地”</font>(in
place)<font face="宋体" lang="ZH-CN">激活方式。本地激活意味着服务器菜单与应用程序菜单要进行融合,服务器的状态条更换应用程序状态条,服务器的工具条更换应用程序工具条。</font>OLE<font
face="宋体" lang="ZH-CN">对象在应用程序窗体中进行编辑,但所有过程均由服务器处理。</p>
<p> 创建</font>OLE<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">的方式。 </p>
</font><p>8.1.2 <font face="宋体" lang="ZH-CN">链接与嵌入 </p>
<p> 链接对象的数据保存在</font>OLE<font face="宋体" lang="ZH-CN">服务器创建的文件中,嵌入对象的数据保存在</font>OLE<font
face="宋体" lang="ZH-CN">应用程序中。</p>
<p> 链接对象必须以文件形式保存,只有对</font>OLE<font face="宋体"
lang="ZH-CN">服务器已经创建好的</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">应用程序或其它程序进行修改,</font>OLE
<font face="宋体" lang="ZH-CN">服务器和其它</font>OLE<font face="宋体"
lang="ZH-CN">应用程序也可以访问和修改</font>OLE<font face="宋体"
lang="ZH-CN">对象。对象数据保存在某一处,但可以被多个应用程序访问。</p>
<p> </font>Delphi<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">应用程序中,其它应用程序不能访问该对象。只有在</font>OLE<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">数据不会被偶然地删除或修改。不足之处是应用程序的规模因为保存了</font>OLE<font
face="宋体" lang="ZH-CN">数据而增大了</font> <font face="宋体" lang="ZH-CN">。</p>
<p> 如果用户想保存对嵌入对象的修改,可以把OLE数据存入文件中,本章第3
节将详细讨论这个问题。</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> 这些修改反映到其他与源对 些修改反映在一个特定的应</p>
<p> 象链接的应用程序或文本中 用程序或文本中</font></p>
<font face="宋体" lang="ZH-CN"><p> 源对象可能被多个</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">应</p>
<p> 用程序应用程序频繁修改 用程序频繁修改</font></p>
<font face="宋体" lang="ZH-CN"><p> 源对象的文件不会被频繁移 源对象的文件可能被频繁移</p>
<p> 动,且不会被删除 </font> <font face="宋体" lang="ZH-CN">动,且不会被删除 </font></p>
<font face="宋体" lang="ZH-CN"><p> 对象很大,一般通过网络或 对象很小,或对象很大却无法</p>
<p> 电子邮件进行分配 通过网络或电子邮件进行分配</font></p>
<p><font face="宋体" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ </p>
</font><p>8.1.3 <font face="宋体" lang="ZH-CN">设计状态</font>OLE<font face="宋体"
lang="ZH-CN">对象的创建 </p>
<p> 在</font>Delphi<font face="宋体" lang="ZH-CN">中,可分别在设计状态或运行状态创建</font>OLE<font
face="宋体" lang="ZH-CN">对象,表</font>8.2<font face="宋体" lang="ZH-CN">说明了两种状态创建对象的差别。 </p>
</font><p><font face="宋体" lang="ZH-CN">表</font>8.2 <font face="宋体" lang="ZH-CN">设计、运行状态</font>OLE<font
face="宋体" lang="ZH-CN">对象的创建</font></p>
<p><font face="宋体" lang="ZH-CN">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</font></p>
<p><font face="宋体" lang="ZH-CN"> 设计状态</font>OLE<font face="宋体"
lang="ZH-CN">对象的创建 </font> <font face="宋体"
lang="ZH-CN">运行状态</font>OLE<font face="宋体" lang="ZH-CN">对象的创建</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">编译的程序的规模 </font> <font
face="宋体" lang="ZH-CN">才有,减小了编译程序的规模 </p>
</font><p><font face="宋体" lang="ZH-CN">开发者需在设计时访问</font>OLE<font
face="宋体" lang="ZH-CN">服务器 开发者不需要在设计时访问</font>OLE<font
face="宋体" lang="ZH-CN">服务器 </p>
</font><p><font face="宋体" lang="ZH-CN">运行时</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">对象已经创建,增加了运行</font></p>
<p><font face="宋体" lang="ZH-CN">运行时间 </font>
<font face="宋体" lang="ZH-CN">时间 </font></p>
<p>OLE<font face="宋体" lang="ZH-CN">对象在设计运行时间可行性编辑 </font>
OLE<font face="宋体" lang="ZH-CN">对象只能在运行时编辑</font></p>
<p><font face="宋体" lang="ZH-CN">应用程序的</font>OLE<font face="宋体"
lang="ZH-CN">对象数目在设计时已 </font> <font face="宋体" lang="ZH-CN">应用程序可以在运行时创建新的</font>OLE<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">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ </p>
<p> 在设计状态,</font>OLE<font face="宋体" lang="ZH-CN">服务器不能被本地激活,只能在自己的窗体内激活。但在运行状态,</p>
<p>只要</font>OLE<font face="宋体" lang="ZH-CN">服务器支持本地激活,就可以使用这种方式。 </p>
</font><p>8.1.4 OLE<font face="宋体" lang="ZH-CN">类、文件、项目 </p>
<p> </font>OLE<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">类也决定</font>OLE<font face="宋体" lang="ZH-CN">对象所包含的数据类型,链接或嵌入对象均要定义</font>OLE<font
face="宋体" lang="ZH-CN">类。</p>
<p> </font>OLE<font face="宋体" lang="ZH-CN">文件是包含</font>OLE<font
face="宋体" lang="ZH-CN">对象数据的源文件。链接对象必须使用对象文件,因为链接对象在文件中保存。如果应用程序从已存在的源文件中创建嵌入对象,也要使用</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">项目是代表链接或嵌入数据的</font>OLE<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">项目。</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">范围的网格,</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">设计状态</font>OLE<font face="宋体"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -