admin 管理员组文章数量: 1086019
2024年3月20日发(作者:网络编程是哪些专业)
维普资讯
2002年第23卷第5期 华北工学院学报
Vo1.23 No.5 2002
(总第85期) JOURNAL OF NORTH 垒 璺! ! !里 !!里 璺
(Sum No.85)
文章编号:1006—5431(2002)05-0373—03
动态数据交换技术在Delphi 5中的实现机制
尹志喜 ,刘红敏 ,余本国
(1.华北工学院应用数学系;2.华北工学院计算机科学与技术系,山西太原030051)
摘要: 目的研究动态数据交换技术在Delphi 5中的实现机制,从而为c/s结构软件的开发提供理论
指导.方法从分析基本概念入手,找到基本概念在Delphi 5中的映射概念,利用映射概念来实现一个动态
发现了动态数据交换技术在Delphi 5中的实现机制,并实现了一个简单的 数据交换的对话.结果与结论
对话.
关键词:映射;动态数据交换;会话
中图分类号:TP311.52 文献标识码:A
1 概述
在Windows这样的多任务环境下,应用程序之间的数据交换和信息共享就显得尤为重要.比如:有
时在程序中需要调用程序内部另一文档或另一应用程序的数据或信息,如何实现这种程序之间或者在程
序内部的信息共享呢?作为一种基于Windows的开发工具——Delphi 5,支持如下4种数据交换方式:
剪贴板,动态数据交换(DDE),对象链接和嵌入(OLE)以及动态链接库(DLL)[1].由于DDE在功能和
灵活性方面更具有代表性,故将DDE在Delphi 5中的实现机制单独列出加以分析,从而起到抛砖引玉
的作用.在分析动态数据交换技术在Delphi 5中的实现机制之前,首先了解一下动态数据交换中所涉及
的基本概念,动态数据交换的概念以及Windows动态数据交换的原理.
1.1基本概念[ ]
1)会话.当应用程序之间进行数据交换时,称之为应用程序之间的会话;
2)服务器.在DDE会话过程中,为客户程序提供服务的应用程序称为服务器;
3)客户.在DDE会话过程中,从服务器获得服务的应用程序称为客户;
4)主题.在DDE中,服务器所提供的数据的数据标题,通常为一个数据文件;
5)项目.是指在DDE过程中,所要传递的实际数据块;
6)链接.如果两个应用程序之间建立了会话,则称它们之间确立了链接.
1.2何谓动态数据交换
动态数据交换简称DDE,它是Windows环境下应用程序之间相互通信中较为常见的一种技术,它
能够实时地进行数据的更新.也就是说,数据可以连续而且自动地在两个或两个以上应用程序之间互相
传送,当一个应用程序的数据发生了变化,其他与之相关的应用程序的数据也将更新.该过程也可称为
DDE会话 引.DDE会话是由DDE客户程序和DDE服务程序组成的 引,他可以用3个特性(DDESer—
vices,DDEtopics,DDEitems)来描述.
・收稿日期:2001.12一10
作者简介:尹志喜(1978一).男,助教,从事专业:计算机软件开发,
维普资讯
374 华北工学院学报 2002年第5期
1.3 Windows的动态数据交换原理
动态数据交换机制基于Windows的消息机制,两个Windows应用程序通过相互之间传递DDE消
息进行DDE会话(Conversation),从而完成数据的请求、应答、传输,这两个应用程序分别称为服务器
(Server)和客户(Client).DDE会话由客户程序启动,客户把一条消息(WM—DDE—INITIATE)广播给
当前运行的所有Windows程序,这条消息指明了客户程序所需要的一般数据(应用程序、主题)拥有的
这些数据的DDE服务器可以响应这条被广播的消息,此时DDE会话就开始了L5].
由于在每个主题中,DDE服务器可以支持一个或多个数据项,所以客户请求数据时应同时指明应用
程序名、主题名和项目名(应用程序、主题、项目是DDE中3个最基本的概念).请注意:这3个最基本
的概念是和上面的DDE 3个特性相对应的.
2 Delphi 5中的DDE实现机制之初步
利用Windows本身提供的DDE消息和API进行DDE编程是一件相当棘手的问题.虽然利用
DDE管理库(Ddem1.dl1)可以在一定程度上减轻开发者的工作负担,但开发DDE程序仍不是一件轻松
的事情.恰在此时,Delphi 5的出现给开发者带来了福音!Delphi 5通过自身巧妙的设计使开发一个
DDE应用程序同开发一个普通程序一样快捷、方便,其实现机制如下:
Delphi将所有的DDE功能做到4个部件中,它们是:
1)TDDEClientConv.用于客户程序建立和维护一个DDE会话;
2)TDDEClientItem.用于客户程序建立和维护数据交换通道;
3)TDDEServerConv.用于服务器响应DDE会话;
4)TDDEServerltem.用于服务器维护数据交换通道.
其中1),2)用于建立一个DDE客户程序;3),4)用于建立一个DDE服务器程序,提供DDESer—
vices,DDEtopics和DDEitems特性,而由2),4)来维护数据交换通道.这样就实现了Windows的
DDE原理向Delphi中DDE实现机制的映射.因此,开发者只需对这4个部件进行操作即可方便快捷地
实现应用程序之间的动态数据交换.
3 Delphi 5中的DDE实现机制之深人
3.1 DDEClientConv组件的常用属性和方法
1)ConnectMode属性.该属性用于设置DDE会话的链接形式,属性值为DDEAutomat时,程序一
但运行就会自动建立与服务器的链接;属性值为DDEManual时,需要调用OpenLink方法才能建立链
接.
2)DdeService属性.该属性用于指定一个DDE服务程序,对一般的服务程序,属性值通常为可执
行文件不带exe后缀的文件名,若指定的服务程序是用Delphi开发的,也可以使用服务程序的不带dpr
后缀的项目名.
3)Ddetopic属性.该属性用于设置DDE会话的主题,通常是包括路径的完整文件名 若服务程序
是以Delphi为工具开发的,这个属性可以设置为DDEServerConv组件的组件名.
4)OpenLink方法.当ConnectMode属性值为DDEManual时,用于建立一个DDE会话,若建立成
功将返回True,否则返回False.
5)SetLink方法.当ConnectMode属性值为DDEAutoMatic时,用于指定服务程序名及会话主题,
该方法常用于在程序中动态地改变服务程序或主题.
6)CloseLink方法.用于结束会话并断开链接.
7)PokeData方法和PokeDateLines方法.都是用于将数据从客户程序发往服务程序.所不同的是,
当服务程序正在执行宏命令时,不能使用PokeData方法,而只能使用PokeDataLins方法
.
维普资讯
(总第85期) 动态数据交换技术在Delphi 5中的实现机制(尹志喜等) 375
3.2 DDEClientltem组件的常用属性
1)DdeConv属性.该属性用于指定预知相配合使用的DDEClientConv组件;
2)Ddeltem属性.该属性用于指定一个DDE会话项目,如果服务程序是用Delphi开发的,属性值
也可以是DDEServerConv组件的组件名;
3)Text属性和lines属性.均是用于记录DDE数据交换过程中交换的数据,区别在于Text属性最
多可以记录255个数据,如果超过这个数目,数据记录将存放在Lines属性中,而且属性Text是属性
lines的第一行.
3.3 ServerConv组件的常用事件
1)OnExecuteMarcro事件.当DDE客户程序发出宏命令时,该事件发生;
2)OnClose事件.当DDE会话被关闭时,该事件发生;
3)OnOpen事件.当DDE会话建立时,该事件发生.
3.4 DDEServerltem组件的常用属性
1)ServerConv属性.该属性用于指定与之相配合使用的DDEServerConv组件;
2)Text属性和Lines属性.同DDEClientltem的属性Text和Lines相同.
4动态数据交换会话的实现
依据上述介绍不难发现,只需设置以下属性即可建立一个简单的DDE会话.
DDEClientconv:DDEService,DDETopic(用于指定一般数据(应用程序、主题)).
DDEClientitem:DDEConv,DDEItem(Ddeconv用于建立DDEClientconv和DDEClientitem的关
DDEItem指明主题中的一个项目名).
DDEServerconv:name(主题名称,在一般数据中引用).
DDEServeritem:serverconv(在一般数据和项目之间建立关系).
参考文献:
[1]Maul M.Operating System:Theory and Practice[M].MacMillan Publishing Company,1986.
[2]钱程.DELPHI 5高级应用与开发[M].北京:人民邮电出版社,2000.
[3]汤子瀛,哲凤屏,汤小丹.计算机操作系统[M].西安:西安电子科技大学出版社,1996.
[4]王小华.DELPHI 5程序设计与控件参考[M].北京:电子工业出版社,2000.
[5]张永梅,陈立潮,马礼,等.三维数字地图的研究与设计口].华北工学院学报,2002,23(2):95—99.
Realization Method of DDE Technology in Delphi 5
YIN Zhi—xi ,LIU Hong—min。,YU Ben—guo
(1.Dept.of Applied Mathematic,North China Institute of Technology:
2.Dept.of Computer Science and Technology,North China Institute of Technology,Taiyuan 030051,China)
Abstract:Aim To study the realization of DDE technology in Delphi 5,and give advice for
developing c/s structure software.Methods Start from the primary concepts,finding their
equivalent concepts in Delphi 5,and make use of them to realize DDE conversation.Results
and Conclusion The realization method of DDE in Delphi 5 is found,and a simple DDE con—
versation is developed.
Key words:mappings;dynamic data exchange;conversation
版权声明:本文标题:动态数据交换技术在Delphi5中的实现机制 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710888948a578122.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论