第10章数据交换技术 内容提要 区剪贴板及其应用 区OLE编程 ccccccMccccccccccc:cMMH
第10章 数据交换技术 内容提要 剪贴板及其应用 OLE编程
第10章数据交换技术 Delphi7作为一个基于 Windows下的开发工具,提供了多种 数据交换方式:剪贴板、动态数据交换(DDE)、对象 的链接和嵌入(OLE)以及动态链接库(DLLs)。本章 主要介绍剪贴板编程和对象的链接和嵌入的编程。 10.1剪贴板及其应用 剪贴板就是计算机中的一块内存。当一个程序需要把数 据传给剪贴板时,可以通过一个句柄找到该内存块,把 数据放到内存块中,其他的应用程序也使用同样的方法 找到该内存块,并从中读取数据,实现应用程序之间的 数据传递。 ccccccMccccccccccc:cMMH
第10章 数据交换技术 Delphi 7 作为一个基于Windows下的开发工具,提供了多种 数据交换方式:剪贴板、动态数据交换(DDE)、对象 的链接和嵌入(OLE)以及动态链接库(DLLs)。本章 主要介绍剪贴板编程和对象的链接和嵌入的编程。 10.1 剪贴板及其应用 剪贴板就是计算机中的一块内存。当一个程序需要把数 据传给剪贴板时,可以通过一个句柄找到该内存块,把 数据放到内存块中,其他的应用程序也使用同样的方法 找到该内存块,并从中读取数据,实现应用程序之间的 数据传递
10.1剪贴板及其应用 1011 Clipboard类 Delph的 Clipbrd pas单元中定义了一个类 CLipboard,它封 装了 Windows剪贴板,简化了大量复杂的处理过程 Clipboard是由系统自动实例化的一个对象,通过该对象 可以操作剪贴板,可以存取和清除剪贴板的内容 1. CLipboard对象的常用属性 (1) AsText属性。该属性用于返回剪贴板中的文本内容 (2) FormatCount属性。该只读属性返回剪贴板中有几种 格式的数据 (3) Formats属性。该只读属性用于访问剪贴板中的各种 数据格式,剪贴板中的数据格式有25种。(常用的见课 本 ccccccMccccccccccc:cMMH
10.1 剪贴板及其应用 10.1.1 Tclipboard类 Delphi的Clipbrd.pas单元中定义了一个类TClipboard,它封 装了Windows剪贴板,简化了大量复杂的处理过程。 Clipboard是由系统自动实例化的一个对象,通过该对象 可以操作剪贴板,可以存取和清除剪贴板的内容。 1. TClipboard对象的常用属性 (1)AsText属性。该属性用于返回剪贴板中的文本内容。 (2)FormatCount属性。该只读属性返回剪贴板中有几种 格式的数据。 (3)Formats属性。该只读属性用于访问剪贴板中的各种 数据格式,剪贴板中的数据格式有25种。 (常用的见课 本)
1011 Clipboard类 2.常用方法 (1) Assign过程。该过程用于把 Source参数只读的对象复制到剪贴板中 (2) Clear过程。该过程用于清空剪贴板。 (3) Close过程。该过程用于关闭打开的剪贴板。 (4) Getashandle函数。该函数用于返回剪贴板指定格式数据的句柄。 (8) Get Component函数。该函数用于从剪贴板中得到一个组件。 (9) GetTextBuf函数。该函数将剪贴板中的内容复制到 Buffer指定的缓冲 区中。 (10) HasFormat函数。该函数用于判断剪贴板中的内容格式是否是指定的 格式 (11)0pen过程。如果需要在剪贴板中存放多个内容,即向剪贴板中复制新 内容时,旧内容不能被覆盖时,就需要使用Open过程 ccccccMccccccccccc:cMMH
2. 常用方法 (1)Assign过程。该过程用于把Source参数只读的对象复制到剪贴板中。 (2)Clear过程。该过程用于清空剪贴板。 (3)Close过程。该过程用于关闭打开的剪贴板。 (4)GetAsHandle函数。该函数用于返回剪贴板指定格式数据的句柄。 (8)GetComponent函数。该函数用于从剪贴板中得到一个组件。 (9)GetTextBuf函数。该函数将剪贴板中的内容复制到Buffer指定的缓冲 区中。 (10)HasFormat函数。该函数用于判断剪贴板中的内容格式是否是指定的 格式。 (11)Open过程。如果需要在剪贴板中存放多个内容,即向剪贴板中复制新 内容时,旧内容不能被覆盖时,就需要使用Open过程。 10.1.1 Tclipboard类
1011 Clipboard类 2.常用方法 (12) Setashandle过程。该过程通过句柄把一个指定格式的数据放到 剪贴板中,执行该过程后不用删除句柄,剪贴板根据情况会自动删除句 柄 (13) SetComponent过程。该过程把指定的 Component组件复制到剪 贴板中。 (14) SettextBuf过程。该过程把 Buffer中的文本内容复制到剪贴板中 ccccccMccccccccccc:cMMH
2. 常用方法 (12)SetAsHandle过程。该过程通过句柄把一个指定格式的数据放到 剪贴板中,执行该过程后不用删除句柄,剪贴板根据情况会自动删除句 柄。 (13) SetComponent过程。该过程把指定的Component组件复制到剪 贴板中。 (14)SetTextBuf过程。该过程把Buffer中的文本内容复制到剪贴板中。 10.1.1 Tclipboard类
101.12剪贴板的应用 2.常用方法 (12) Setashandle过程。该过程通过句柄把一个指定格式的数据放到 剪贴板中,执行该过程后不用删除句柄,剪贴板根据情况会自动删除句 柄 (13) SetComponent过程。该过程把指定的 Component组件复制到剪 贴板中。 (14) SettextBuf过程。该过程把 Buffer中的文本内容复制到剪贴板中 ccccccMccccccccccc:cMMH
2. 常用方法 (12)SetAsHandle过程。该过程通过句柄把一个指定格式的数据放到 剪贴板中,执行该过程后不用删除句柄,剪贴板根据情况会自动删除句 柄。 (13) SetComponent过程。该过程把指定的Component组件复制到剪 贴板中。 (14)SetTextBuf过程。该过程把Buffer中的文本内容复制到剪贴板中。 10.1.12 剪贴板的应用
10.2OLE编程 OLE就是对象链接与嵌入( Object Linking and Embeding),是 组服务功能,它提供了一种应用程序之间交换数据和 互相操作的方式。这里涉及的对象几乎可以是所有的信 息类型,如文字、位图、矢量图形,甚至于声音注解和 录像剪辑等 1.OLE服务器 Windows附件中的书写器是应用OLE的实例,使用单击 【对象】→【插入】菜单项,书写器弹出插入对话框, 对话框中列出了多个OLE服务器程序,如公式编辑工具, 绘图工具,报表生成工具。用户双击鼠标左键,可激活 个OLE服务器。在OLE服务器中可编辑OLE对象,当 用户返回到书写器中时,在书写器文档中将出现OLE对 象 崛cccccccccccccccccccEEEHH
10.2 OLE 编程 OLE就是对象链接与嵌入(Object Linking and Embeding),是 一组服务功能,它提供了一种应用程序之间交换数据和 互相操作的方式。这里涉及的对象几乎可以是所有的信 息类型,如文字、位图、矢量图形,甚至于声音注解和 录像剪辑等。 1. OLE服务器 Windows附件中的书写器是应用OLE的实例,使用单击 【对象】→ 【插入】菜单项, 书写器弹出插入对话框, 对话框中列出了多个OLE服务器程序,如公式编辑工具, 绘图工具,报表生成工具。用户双击鼠标左键,可激活 一个OLE服务器。在OLE服务器中可编辑OLE对象,当 用户返回到书写器中时,在书写器文档中将出现OLE对 象
10.2OLE编程 2.链接对象与嵌入对象 链接对象的数据保存在OLE服务器创建的文件中,嵌入 对象的数据保存在OLE应用程序中。 链接对象必须以文件形式保存,只有对OLE服务器已经 创建好的OLE对象,才能进行OLE链接,链接的OLE对 象文件可被OLE应用程序或其它程序进行修改,OLE服 务器和其它OLE应用程序也可以访问和修改OLE对象。 嵌入对象保存在OLE应用程序中,其它应用程序不能访 问该对象。只有在OE应用程序中激活OLE对象才能对 其进行编辑 ccccccMccccccccccc:cMMH
10.2 OLE 编程 2. 链接对象与嵌入对象 链接对象的数据保存在OLE服务器创建的文件中,嵌入 对象的数据保存在OLE应用程序中。 链接对象必须以文件形式保存,只有对OLE服务器已经 创建好的OLE对象, 才能进行OLE链接,链接的OLE对 象文件可被OLE应用程序或其它程序进行修改,OLE 服 务器和其它OLE应用程序也可以访问和修改OLE对象。 嵌入对象保存在OLE应用程序中,其它应用程序不能访 问该对象。只有在OLE应用程序中激活OLE对象才能对 其进行编辑
10.2OLE编程 3. TOle Contaner组件 要创建一个OLE客户程序,需要在窗体中加入 TOle Container组件,并设置他的位置和大小,然后双击 TOle Container组件, Delphi7会出现如下对话框。在对话 框中选择需要的OLE对象的类型,单击“确定”按钮 该类型的对象就被插入到OLE容器中 插入对象 ? 对象类型〔 确定 G新建Q 取消 C由文件创建)M crosoft exce1工作表 Microsoft Excel图表 Microsoft Graph图表 :2r2时额签箱「显示为图标 Microsoft Word 图片 Microsoft"ord文档 结果 将一个新的 Carrot Document对象插入您的 ccccccMccccccccccc:cMMH
10.2 OLE 编程 3. TOleContaner组件 要创建一个OLE客户程序,需要在窗体中加入 TOleContainer组件,并设置他的位置和大小,然后双击 TOleContainer组件,Delphi 7会出现如下对话框。在对话 框中选择需要的OLE对象的类型,单击“确定”按钮, 该类型的对象就被插入到OLE容器中
10.2OLE编程 3. TOle Contaner组件 如果创建一个链接的OLE对象,就可以在“插入对象” 对话框中选择“由文件创建”单选按钮,这时的插入对 象对话框如图10-5所示。在“文件”框中输入文件名或 单击“浏览”按钮指定一个文件名,并选中“链接”复 选按钮,畄圭“确定”控钮 插入对象 确定 C新建Q 文件 取消 由文件创) rogram Files Borland\Delphi7 浏览①),厂链接) 厂显示为图标① 结果 将文件内容作为对象插入您的文档,以便用 创建它的程序来启动它。 ccccccMccccccccccc:cMMH
10.2 OLE 编程 3. TOleContaner组件 如果创建一个链接的OLE对象,就可以在“插入对象” 对话框中选择“由文件创建”单选按钮,这时的插入对 象对话框如图10-5所示。在“文件”框中输入文件名或 单击“浏览”按钮指定一个文件名,并选中“链接”复 选按钮,单击“确定”按钮