Delphi下利用DDE实现同Word的交互

http://tech.ddvip.com   2006年07月31日    社区交流

本文详细介绍Delphi下利用DDE实现同Word的交互

  ·客户程序自动会话,服务器程序响应。

  ·客户和服务器用下述方法交换数据:

  ·服务器应客户的请求向客户发送数据;

  ·客户主动想服务器发送数据;

  ·客户要求服务器在数据修改时发送数据(热数据连接);

  ·客户要求服务器在数据修改后发送通知(温数据连接);

  ·在客户的要求下,服务器执行一个命令。

  ·由客户或服务器中止会话。

  三、 设计思路

  首先,在开发工具的选择上,选择了提供有现成的DDE 系列组件的 Borland Delphi 5.0。既然以Microsoft Word作为要连接的服务器,在与其建立连接之前要先设定好连接的服务与主题,由于本例只要求通过本程序控制Word的一些操作动作,如打开新文件、关闭文件、插入表格等等,所以可以分别设定这两项为:"Winword"和"System",当设置好连接后就可以通过Delphi提供的DDEClientConv组件的OpenLink函数打开与这个服务的连接,剩下的工作就是向Word服务器发送宏命令,并通过组件向其发送执行宏的命令即可,用该组件的函数ExecuteMacro来实现之。

  四、程序的实现

  (一) 加入DDE客户端组件

  新建一App工程WordDDE,然后在Component Palette组件条的System属性页里选择DdeClientConv组件,并把它拖放到窗体上。修改其Name 属性为DDEClient。

  (二) 添加同DDE服务进行交互的代码

  在工程上添加一个过程RunMacro,用于打开同Word服务器的链接,并通知服务器执行由Macro标识的宏命令,让Word按用户的意图完成响应的动作。完成之后由客户方断开这次连接,完成一次会话。下面是上述过程的实现代码:

  procedure TForm1.RunMacro(Macro:pChar);
var pMacro:array[0..80] of Char;
begin
DDEClient.SetLink('Winword','System');{设置连接}
DDEClient.OpenLink;{按设置打开连接}
StrPCopy(pMacro,Macro);
if Not DDEClient.ExecuteMacro(pMacro,false) then{执行宏命令}
ShowMessage('Unable to Execute Macro');
DDEClient.CloseLink;{断开连接}
end;

作者:郎锐    责编:豆豆技术应用

正在加载评论...