第12章使用Microsoft自动化组件-Read.doc
文本预览下载声明
PAGE 310 Delphi 6应用开发指南
第12章 使用Microsoft自动化组件 PAGE 311
第12章 使用Microsoft自动化组件
在Servers页面上的组件是TOleServer的子类。类型库(.TLB)被引入到Delphi中。一个类型库是一种描述一个自动化服务器接口的特殊文件。当一个TLB被引入到Delphi的时候,Delphi将这个类型库封装到一个组件类中;这个组件可以被安装到VCL中。在组件面板中Servers属性页上的组件是自动化服务器,每个自动化服务器代表Microsoft Office中一个特定的应用程序部分。
注意:本章包括一个摘自Evil Empire详细材料的讨论。建议你学习这门技术。如果您是一个反Microsoft的成员,您可以跳过本章,但是要记住Inprise为我们提供代表这些应用程序服务器的组件有它足够的理由。如果要使用Delphi控制Microsoft Office可以帮助您的话,考虑使用这些组件。
自动化是COM协议的一部分。自动化描述了服务器应用程序怎样将接口提供给客户应用程序以及客户端怎样通过编程控制服务器。客户应用程序被叫做自动化控制器。自动化控制器可以是使用任何支持自动化的语言编写的应用程序或者动态链接库。您可以很容易地在Delphi中创建客户端控制器和自动化服务器。
本章介绍了怎样使用当今世界上一些最具有特色的对象——Microsoft Office应用程序。绝大多数,可能是全部的Office都可以用作自动化服务器。这意味着它们可以被用作独立的应用程序或者应用程序服务器。使用这些功能强大的应用程序服务器可以使开发者能够提供功能强大的文字处理、数据库、数字处理和关系管理的能力,这取代了许多用户已经购买的一些现有的代码。
12.1 TOleServer
TOleServer是TComponent的子类。OleServer对象具有TComponent的所有特性和方法,并且这些特性和方法都在TOleServer类中被定义了。Servers属性页上的组件是Microsoft Offiec自动化服务器,TOleServer是这些组件的直接祖先类,所以很好的理解ToleServer可以使您有一个更高的起点。表12.1列出了OleServer中所有的特性,表12.2列出了OleServer中所有的方法。除了OleServer特性,TOleServer的每一个子类将引入在类型库中定义的行为和数据。我们将在本章的后面部分作详细的介绍。
表12.1 TOleServer特性,其中AutoConnect,ConnectKind和
RemoteMachineName是由TOleServer引入的公开特性
特性说明AutoConnect如果这个特性为True,服务器在运行时连接。如果在运行时将其特性改为False将不会在运行时产生影响ConnectKind由TConnectKind枚举定义,描述服务器怎样被连接。比如说,ckRunningOrNew将连接到服务器的一个运行实例或者开始一个新的实例。可以选择的项为:ckRunningOrNew,ckNewInstance, ckRunningInstance, ckRemote,ckAttach ToInterfaceEventDispatch保护特性,可以被为COM事件特性服务的子孙类所使用RemoteMachineName指定运行服务器的机器名,将ConnectKind特性设置为ckRemote,您将连接到其他独立计算机的服务器上ServerData保护的记录特性,它保存了有关连接到的自动化服务器的信息下面用表12.1的特性作一个示范,遵循下面所列的步骤,将连接到您的网络中其他计算机上的一个Microsoft Word实例(需要远程计算机的名称,并且远程计算机必须有一个Microsoft Word的一个拷贝。在“控制面板”中的“网络”小应用程序中的“标识”属性页中的“计算机名”域中可以找到计算机名称)。
1.创建一个新的Delphi应用程序。
2.在窗体上的任何位置放置一个TButton组件。
3.在窗体上放置一个TWordDocument组件。
4.在Object Inspector中(可以按F11打开),将WordDocument组件的Remote MachineName特性设置为安装有Microsoft Word的计算机名称(在“控制面板”中的“网络”小应用程序中的“标识”属性页中的“计算机名”域中可以找到计算机名称或者你也可以使用机器中相应于RemoteMachineName的IP地址)。
5.第4步将ConnectKind特性改变为ckRemote。
6.双击第2步中
显示全部