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