Delphi 剪贴板和动态数据交换(三)

2008-02-23 07:16:56来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

7.3.5 控制服务器应用程序的执行 

客户程序控制服务器应用程序的一个方面是:必要的时候客户程序可以启动服务器程序,并装载会话主题。

而客户程序控制服务器应用程序更重要的一点是向服务器发送服务器承认的宏命令,来完成对服务器应用程序的各种操作。服务器到底支持哪些宏命令,可参阅服务器应用程序文档。

发送宏命令要使用DDEClientConv的两个方法 ExecuteMacroExecuteMacroLines ,它们的语法如下: 

function ExecuteMacro(Cmd: PChar; WaitFlag: Boolean): Boolean;

function ExecuteMacroLines(Cmd: TStrings;WaitFlag: Boolean): Boolean; 

Cmd是欲发送的宏命令字符串或宏命令字符串链表。WaitFlag决定了在DDE 服务器程序执行宏命令时客户程序的行为。如果WaitFlag设置为True,则在服务器宏命令执行完毕前,不允许对ExecuteMacroExecuteMacroLinesPokeDataPokeDataLines这些方法的成功调用,它们都不向服务器发送数据并返回False。如果WaitFlag设置为False,则调用的方法在第一个宏执行完毕前即试图向服务器发送数据。

WaitFalg的设置也取决于服务器应用程序。一些应用程序当在第一个宏执行完之前就试图向它发送数据或命令时,可能导致第一个宏执行失败或导致不可预料的后果。具体情况可查阅服务器应用程序文档。

函数返回值表示命令串是否被成功传输。而宏命令执行是否成功客户是无法检测到的。 

7.3.6 格式化文本 

DDEClientConv有一个布尔属性FormartChars,用于决定是否格式化文本。所谓格式化文本是指从传输来的文本数据中过滤掉BackSpace(8) Tab(7) Linefeed(10) Return(13)等字符。括号内是字符的ASCII码。许多时候这些字符将导致DDE客户数据显示的混乱。

  FormatChars的缺省值是False。 

7.3.7 响应DDE事件 

部件DDEClientConv有两个事件OnOpenOnClose,分别在DDE 会话建立和中止时触发。部件DDEClientItem有一个OnChange事件。这一事件常用于DDE项目数据的转储和显示,如(7.3.1)节所示。

在自动模式下,OnOpen事件在包含DDEClientConv部件的窗口创建时触发,或在调用SetLink方法时触发,OnClose事件在客户程序或服务器程序关闭时触发。

在人工模式下,OnOpen事件在调用OpenLink 方法时触发,OnClose事件在调用ColseLink方法时触发。 

7.3.8 利用客户程序和Excel交换数据   

下面我们建立一个DDE客户程序,并利用这一程序与Excel中的一个工作表交换数据。程序设计界面

界面中包含一个DDE会话部件DDEClientConv1DDE项目部件DDEClientItem1,用于建立和维护DDE联接;一个RadioGroup控件和其中的两个无线电按钮AutoRadioManualRadio,用于设置联接模式;一个GrouPBox控件和其中的两个按钮RequestBtnPokeBtn,用于控制数据的申请和发送,其中RequestBtn

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:开发Delphi对象式数据管理功能(八)

下一篇:Delphi 与SQL编程(二)