第14章对象的链接与嵌入 对象链接与嵌入控件OLE( bject linking and Embedding),可以使VB应用程序访问 Windows 环境中其他应用程序的对象,从而使VB能够使 用其他应用程序的数据。例如Word文档、 Exce工作表等,这类对象称为OLE对象。VB能 够访问的OLE对象取决于用户系统所安装的 Windows的应用程序。OLE对象可以通过VB工具 箱中提供的OLE控件进行加载 cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 第14章 对象的链接与嵌入 n 对象链接与嵌入控件OLE(Object Linking and Embedding),可以使VB应用程序访问Windows 环境中其他应用程序的对象,从而使VB能够使 用其他应用程序的数据。例如Word文档、 Excel工作表等,这类对象称为OLE对象。VB能 够访问的OLE对象取决于用户系统所安装的 Windows的应用程序。OLE对象可以通过VB工具 箱中提供的OLE控件进行加载
14.1OLE控件概述 ■OLE控件处于工具箱中,它的作用是在VB应用程序中插入OLE对象, 就像一个容器一样,所以又称它为OLE容器控件 使用OLE控件,可以进行如下应用: ¤(1)在应用程序中,为对象创建一个占位符。运行时创建出现在OLE 容器控件中的对象,或者改变已在设计时置于OLE容器控件中的对 象 口(2)在应用程序中,创建链接对象。 ¤(③3)把OLE容器控件与数据库绑定 ¤(4)如果在OLE容器控件中移动、调整对象大小或者更新对象,那么 执行相应的操作 口(5)从复制到剪贴板上的数据中创建对象。 cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 14.1 OLE控件概述 n OLE控件处于工具箱中,它的作用是在VB应用程序中插入OLE对象, 就像一个容器一样,所以又称它为OLE容器控件。 n 使用OLE控件,可以进行如下应用: q (1)在应用程序中,为对象创建一个占位符。运行时创建出现在OLE 容器控件中的对象,或者改变已在设计时置于OLE容器控件中的对 象。 q (2)在应用程序中,创建链接对象。 q (3)把OLE容器控件与数据库绑定。 q (4)如果在OLE容器控件中移动、调整对象大小或者更新对象,那么 执行相应的操作。 q (5)从复制到剪贴板上的数据中创建对象
14.1.1使用OLE控件 ■使用OLE控件插入对象,既可以是对象链接,也可以是对象嵌入。 而且在OLE控件中所插入的对象,既可以插入整个文件,也可以插 入文件的部分内容 在窗体上添加一个OLE控件,与其他控件不同的是,此时会弹出 个“插入对象”对话框,如图14.1所示,此对话框给出了所有OLE 对象类型。我们也可以通过双击OLE控件,弹出一个“插入对象 对话框,或激活OLE控件,右击鼠标,屏幕出现快捷菜单,如图 14.2所示,选中“插入对象”命令,屏幕显示“插入对象”对话 框 在“插入对象”对话框中,有几个可供选用的单选按钮、命令按 钮和复选框,先说明其作用。 cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 14.1.1 使用OLE控件 n 使用OLE控件插入对象,既可以是对象链接,也可以是对象嵌入。 而且在OLE控件中所插入的对象,既可以插入整个文件,也可以插 入文件的部分内容。 n 在窗体上添加一个OLE控件,与其他控件不同的是,此时会弹出一 个“插入对象”对话框,如图14.1所示,此对话框给出了所有OLE 对象类型。我们也可以通过双击OLE控件,弹出一个“插入对象” 对话框,或激活OLE控件,右击鼠标,屏幕出现快捷菜单,如图 14.2所示,选中“插入对象”命令,屏幕显示“插入对象”对话 框。 n 在“插入对象”对话框中,有几个可供选用的单选按钮、命令按 钮和复选框,先说明其作用
单选按钮、命令按钮和复选框的作用 口(1)“新建”单选按钮:为缺省按钮。如果原来没有准备好要嵌入的对象,就 需要选择“新建”。VB就会立即启动用户在“对象类型”中选择的应用程序, 在应用程序中创建所需的对象。例如,若在“对象类型”中,选择 “ Microsoft Word文档” 就会启动Word,然后在Word中建立一个新文档作 为OLE对象,用户可以在其中输入文档内容 此单进按钮(时单选接左侧的圆内有一立了要嵌入的对象,则应选择 口(2)“从文件创建”单选按钮:如果用户已 即显示 图14.3所示的对话框,可以在“文件”框中,输入所要嵌入的对象 ¤(3)“浏览”命令按钮:单击“浏览”按钮,屏幕会出现浏览窗口,此时用户 可以从中选择要插入的对象。如果选中了“链接”选项,则表示对象的插入方 式是链接方式,否则是嵌入方式 口(4)“显示为图标”复选框:如果选择它,插入到OLE控件中的对象是以图标的 方式显示。此时,‘插入对象”对话框出现了“更改图标”按钮,用户可以通 过单击它来更改图标。 a【例14.1】在OLE控件中,插入一个Word文档的全部内容。 例14.2】将一个文件的部分内容插入到OLE控件中 cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 单选按钮、命令按钮和复选框的作用: q (1)“新建”单选按钮:为缺省按钮。如果原来没有准备好要嵌入的对象,就 需要选择“新建”。VB就会立即启动用户在“对象类型”中选择的应用程序, 在应用程序中创建所需的对象。例如,若在“对象类型”中,选择了 “Microsoft Word文档” ,VB就会启动Word,然后在Word中建立一个新文档作 为OLE对象,用户可以在其中输入文档内容。 q (2)“从文件创建”单选按钮:如果用户已经建立了要嵌入的对象,则应选择 此单选按钮(此时单选按钮左侧的圆圈内有一个黑点),屏幕上会立即显示出如 图14.3所示的对话框,可以在“文件”框中,输入所要嵌入的对象。 q (3)“浏览”命令按钮:单击“浏览”按钮,屏幕会出现浏览窗口,此时用户 可以从中选择要插入的对象。如果选中了“链接”选项,则表示对象的插入方 式是链接方式,否则是嵌入方式。 q (4)“显示为图标”复选框:如果选择它,插入到OLE控件中的对象是以图标的 方式显示。此时, “插入对象”对话框出现了“更改图标”按钮,用户可以通 过单击它来更改图标。 q 【例14.1】在OLE控件中,插入一个Word文档的全部内容。 q 【例14.2】将一个文件的部分内容插入到OLE控件中
14.1.2对象链接与嵌入的区别 链接与嵌入的不同之处在于插入到OLE控件的对象(数据)所存放的位置。 例如,当把一个Word文档链接到VB应用程序时,VB是将Word文档的指针 (即地址)插入而不是对象本身。对象本身仍然由创建它的Word应用程序 管理,存储在OLE控件之外。在调用该文档时根据该地址去访问被链接的 Word文档。如果word文档数据源中的数据发生变化时,应用程序所调用 的数据也随之变化,如果数据源移动了位置、更改了名称或遭到了破坏, 在VB应用程序中都将不能正确调用它。当我们将一个Word文档嵌入到VB 应用程序中时,VB是将Word文档本身插入到应用程序中,并将该Word随 VB应用程序一起存储。其他的程序是不允许访问被嵌入对象的。 可见,链接与嵌入各有优缺点。嵌入到OLE控件中的数据不会丢失,但它 是以占用更多的空间为代价的。链接到OLE控件中的数据虽然占用较少的 空间,但是数据源容易受外界的影响而丢失。 cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 14.1.2 对象链接与嵌入的区别 n 链接与嵌入的不同之处在于插入到OLE控件的对象(数据)所存放的位置。 n 例如,当把一个Word文档链接到VB应用程序时,VB是将Word文档的指针 (即地址)插入而不是对象本身。对象本身仍然由创建它的Word应用程序 管理,存储在OLE控件之外。在调用该文档时根据该地址去访问被链接的 Word文档。如果Word文档数据源中的数据发生变化时,应用程序所调用 的数据也随之变化,如果数据源移动了位置、更改了名称或遭到了破坏, 在VB应用程序中都将不能正确调用它。当我们将一个Word文档嵌入到VB 应用程序中时,VB是将Word文档本身插入到应用程序中,并将该Word随 VB应用程序一起存储。其他的程序是不允许访问被嵌入对象的。 n 可见,链接与嵌入各有优缺点。嵌入到OLE控件中的数据不会丢失,但它 是以占用更多的空间为代价的。链接到OLE控件中的数据虽然占用较少的 空间,但是数据源容易受外界的影响而丢失
14.20LE控件常用属性与方法 14.2.1OE控件的属性 口1.OLE容器控件的常用属性 (1) Action属性 ¤该属性设置一个值,用来通知系统进行何种操作。此属性只 能在程序中使用,在设计阶段不可用。 Action属性共有14个 值可供选择,含义如下: cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 14.2 OLE控件常用属性与方法 n 14.2.1 OLE控件的属性 q 1.OLE容器控件的常用属性 n (1)Action属性 q 该属性设置一个值,用来通知系统进行何种操作。此属性只 能在程序中使用,在设计阶段不可用。Action属性共有14个 值可供选择,含义如下:
Action属性14个值的含义如下: 0:生成内嵌对象。 1:生成链接对象 4:将对象的数据和属性复制到系统剪贴板。 5:将系统剪贴板中的数据粘贴到OLE容器控件。 6:从应用程序中获取当前数据并修改OLE容器控件的内容 7:激活OLE控件 9:关闭OLE对象。 10:删除OLE对象。 11:将对象保存到数据文件中 12:加载保存到数据文件中的OLE对象。 14:显示“插入对象”对话框。 15:显示“特殊粘贴”对话框 17:更新对象支持的谓词列表 18:将对象以 OLEVersion1.0版本的文件格式保存。 cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 Action属性14个值的含义如下: § 0:生成内嵌对象。 § 1:生成链接对象。 § 4:将对象的数据和属性复制到系统剪贴板。 § 5:将系统剪贴板中的数据粘贴到OLE容器控件。 § 6:从应用程序中获取当前数据并修改OLE容器控件的内容。 § 7:激活OLE控件。 § 9:关闭OLE对象。 § 10:删除OLE对象。 § 11:将对象保存到数据文件中。 § 12:加载保存到数据文件中的OLE对象。 § 14:显示“插入对象”对话框。 § 15:显示“特殊粘贴”对话框。 § 17:更新对象支持的谓词列表。 § 18:将对象以OLEVersion1.0版本的文件格式保存
(2) Applsrunning属性 该属性表示源应用程序是否正在运行。设为 True时,源应用程序在运行,设为 False时, 关闭源应用程序。这种方法可以使对象激活的 更快。通常在对象失去焦点时,可以将这个属 性设为 False来关闭源应用程序。 cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 (2)AppIsRunning属性 n 该属性表示源应用程序是否正在运行。设为 True时,源应用程序在运行,设为False时, 关闭源应用程序。这种方法可以使对象激活的 更快。通常在对象失去焦点时,可以将这个属 性设为False来关闭源应用程序
(3) AutoActivate属性 该属性用来确定对象激活的方式。取值及含义如下: ¤0:手工激活。对象不能自动激活,要使用 DoVer方法来激活对象。 口1:焦点激活。如果对象不支持单击激活,那么OLE容器控件接收到焦点时激活 源应用程序 ¤2:(缺省)双击激活。当OLE容器控件拥有焦点时,如果双击OLE容器控件或者 按回车键,那么激活源应用程序。这种情况下双击OLE容器控件不会产生 Dblclick事件。 3:自动激活。当OLE容器控件拥有焦点或者双击控件时,将根据对象的激活方 法来激活源应用程序。 (4) Class属性 该属性确定在OLE控件中插入的对象的类。 在“属性”窗口中,选中该属性,单击其右侧出现的按钮,则打开“选定类”对话 框,如图14.9所示,其中列出了系统中可用的类名。选定其中要插入的对象,按 “确定”按钮。也可以用代码的方式为 Class属性赋值 口例如,要插入Word文档,需要指定类名为Word. Docment.8。若要插入 Excel工 作表,则需要指定类名为 Excel. Sheet.8 cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 (3)AutoActivate属性 n 该属性用来确定对象激活的方式。取值及含义如下: q 0:手工激活。对象不能自动激活,要使用DoVerb方法来激活对象。 q 1:焦点激活。如果对象不支持单击激活,那么OLE容器控件接收到焦点时激活 源应用程序。 q 2:(缺省)双击激活。当OLE容器控件拥有焦点时,如果双击OLE容器控件或者 按回车键,那么激活源应用程序。这种情况下双击OLE容器控件不会产生 DblClick事件。 q 3:自动激活。当OLE容器控件拥有焦点或者双击控件时,将根据对象的激活方 法来激活源应用程序。 q (4)Class属性 n 该属性确定在OLE控件中插入的对象的类。 n 在“属性”窗口中,选中该属性,单击其右侧出现的按钮,则打开“选定类”对话 框,如图14.9所示,其中列出了系统中可用的类名。选定其中要插入的对象,按 “确定”按钮。也可以用代码的方式为Class属性赋值。 q 例如,要插入Word文档,需要指定类名为Word.Docment.8。若要插入Excel工 作表,则需要指定类名为Excel.Sheet.8
(5) Display type属性 该属性确定对象在OLE控件中的显示方式。 a取值为0表示显示对象的内容。 a取值为1表示显示对象的图标。 cauae basic语言程序设计
Visual Basic 语 言 程 序 设 计 (5)DisplayType属性 n 该属性确定对象在OLE控件中的显示方式。 q 取值为0表示显示对象的内容。 q 取值为1表示显示对象的图标