当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 7.2.1 Windows的DDE原理Windows的DDE机制基于Windows的消息机制。
 

 

 ·delphi控制excel2000    »显示摘要«
    摘要: 类 别:com & activex(一) 使用动态创建的方法首先创建 excel 对象,使用comobj:var excelapp: variant;excelapp := createoleobject( excel.application );1) 显示当前窗口:excelapp.visible := true;2) 更改 excel 标题栏:excelapp.caption := ......
    摘要: abort 函数 引起放弃的意外处理abs 函数 绝对值函数addexitproc 函数 将一过程添加到运行时库的结束过程表中addr 函数 返回指定对象的地址adjustlinebreaks 函数 将给定字符串的行分隔符调整为cr/lf序列align 属性 使控件位于窗口某部分alignment 属性 控件标签的文字位置allocmem 函数 在堆栈上分配给定大小的块allowgrayed 属......


Windows的DDE原理
7.2.1 windows的dde原理 

【程序编程相关:mscomm32的简单应用

【推荐阅读:程序关联实现

windows的dde机制基于windows的消息机制.两个windows应用程序通过相互之间传递dde消息进行dde会话(conversation),从而完成数据的请求.应答.传输.这两个应用程序分别称为服务器(server)与客户(client).服务器是数据的提供者,客户是数据的请求与接受者. 【扩展信息:深入理解Delphi的消息机制

dde会话由客户程序启动.客户程序把一条消息(wm_dde_initiate)传播给当前运行的所有windows程序.这条消息指明了客户程序所需要的一般数据(应用程序.主题).拥有这些数据的dde服务器可以响应这条被传播的消息.此时,dde会话就开始了.

由于在每个主题中,dde服务器可以支持一个或多个数据项,所以在客户请求数据时应同时指明应用程序名.主题名与项目名.应用程序.主题.项目是dde中三个最基本的概念.

利用windows本身提供的dde消息与api进行dde编程是一件相当棘手的问题. 虽然使用dde管理库(ddeml.dll)可以一定程度上减轻开发者的工作负担,但开发dde程序仍不是一件轻松的事情.

此时delphi出现了!delphi通过其自身巧妙的设计使开发一个dde应用程序同开发一个普通程序一样地快捷.方便.

7.2.2 delphi的dde实现机制简介 

delphi把所有的dde功能做到四个部件中,它们是:

● tddeclientconv : 用于客户程序建立与维护一个dde会话

● tddeclientitem : 用于客户程序建立与维护数据交换通道

● tddeserverconv : 用于服务器程序响应dde会话

● tddeserveritem : 用于服务器程序维护数据交换通道

  前两个部件用于生成一个dde客户程序,后两个部件用于生成一个dde服务器程序.如果一个应用程序同时拥有这些部件,则这一程序既可以充当dde客户,也可以充当dde服务器.

会话部件tddeclientconv.tddeserverconv用于建立与维护一个dde会话.dde会话包括dde服务与dde主题两部分.

dde服务是dde服务器的名称,即在一般的windows dde机制中所讲的应用程序名.一般说来这一名称是dde服务器应用程序执行文件名去掉 .exe后缀.比如你的应用程序要与word 6.0建立会话,则dde服务为winword.但也不尽然.比如你的应用程序要与borland reportsmith ( rptsmith.exe ) 建立会话,则dde 服务为 report smith.dde服务到底如何,读者可参看相关的dde服务器应用程序文档.

dde主题是一个包含了联接信息的数据单元.一般说来dde 主题是一个包括扩展名的完整文件名.例如与excel中的一个文件建立dde会话,则主题可能是 

topic = c:\excel\example\sale.xls 

如果服务器是一个delphi应用程序,缺省情况下主题是包含欲联接数据窗体的标题.如果服务器使用了ddeserverconv部件,则要求使用部件ddeserverconv的名称作为dde主题.

项目部件tddeclientitem.tddeserveritem用于建立与维护dde数据的传输通道. dde项目中包含着实际欲传输的数据.dde项目的格式取决于dde服务器应用程序.一个可能的dde项目例子是电子表格中的单元与数据库表中的域.如果服务器是delphi应用程序,则项目是连接的 ddeserveritem部件的名称.

delphi的dde实现机制方便.实用,但也有一个令人遗憾的缺陷:只能传输文本数据以及命令.宏,而不能传输图像数据.在这一点上微软公司推出的visual basic 要略胜一筹.不过在目前文本数据的使用仍是最广泛的,而且图像传输可以利用剪贴板与ole来实现,则这一缺陷也并无很大的影响. 

7.3 dde客户程序的实现 

dde客户程序启动dde会话,向服务器请求并从服务器接收数据.同时还可以向服务器发送数据.命令.宏,改变服务器的状态并控制服务器的运行. 

7.3.1 联接模式(connectmode) 

  delphi的dde提供了两种联接模式:自动与人工.这可以通过ddeclinetconv 部件的connectmode属性进行设置.如下表所示.

表 7.5 dde的联接模式

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

     值           意      义

───────────────────────────────

   ddeautomatic 在运行中当包含tddeclientconv部件的窗口创建时联接自动建立

   ddemanual 只有当调用openlink方法时联接才建立

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

不同联接模式,dde客户程序的实现方式不同.

对于自动模式:

1. 向窗体中加入ddeclientconv与ddeclientitem部件并命名;

2. 把ddeclientitem部件的ddeconv属性设置为ddeclientconv部件的名称;

如果在设计时建立,则通过对象观察器进行选择;如果在运行时建立联系, 则通过如下的一条语句设置属性的值:

ddeclientitem1.ddeconv := ddeclientconv1 ; 

3. 与服务器建立联系,实现数据共享.

对于人工模式:


...   下一页
 ·daily build实践    »显示摘要«
    摘要: daily build 实践 daily build作为软件开发的最佳实践之一,微软甚至将它称为项目管理的心跳,可见其在软件开发中的重要作用。为什么会有这么高的评价? 除了平常提到的一些显著改进外,主要是因为实现daily build前有一些先决条件,即意味着你至少已经实现下列scm管理: 1. 源代码管理 2. 单元测试 3. 版本管理 4. bug管理 在上述基......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE