知识大全 剪贴板和动态数据交换(二)[4]

Posted

篇首语:送饥者一条鱼,只管一天不饿;教他学会捕鱼,能使他永不受饿。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 剪贴板和动态数据交换(二)[4]相关的知识,希望对你有一定的参考价值。

DELPHI基础教程:剪贴板和动态数据交换(二)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  procedure TDdeSrvrForm doMacro(Sender: TObject;Msg: TStrings)

  var

  Cmd: String;

  i: Integer;

  begin

  Cmd := ;

  if Msg Count = then Exit;

  for I := to Msg Count do

  begin

  Cmd := Msg Strings[i];

  if UpperCase(Cmd) = COPYDDE then

  DDETestItem CopyToClipboard

  else if UpperCase(Cmd) = CLEAR then

  Memo text: =

  else if UpperCase(Cmd) = WS_NORMAL then

  WindowState := wsNormal

  else if UpperCase(Cmd) = WS_MINIMIZED then

  WindowState := wsMinimized

  else if UpperCase(Cmd) = WS_MAXIMIZED then

  WindowState := wsMaximized

  else

  MessageDlg( Invalid Command mtWarning [mbOK] )

  end;

  end;

  下面的DDE客户程序 主要是为了验证上面的DDE服务器程序而设计的 但同时也提供了一个DDE客户程序设计的完整实例

  程序把接收到的DDE数据保存在一个TMemo类部件DDEDat中 而欲发送给服务器的数据和宏指令在另一个TMemo类部件PokeDat中输入 两个按钮PokeBtn ExecuteBtn用于发送数据和宏指令 两个菜单项File|New Link和Edit|Paste Link用于根据用户的输入建立新联接和从剪贴板上粘贴DDE联接

  DDE联接的建立通过调用SetLink方法实现

  建立新联接的实现代码如下

  procedure TFormD doNewLink(Sender: TObject)

  begin

  DDEClient SetLink (AppName Text TopicName Text)

  DDEClientItem DdeConv := DDEClient;

  DDEClientItem DDEItem := ItemName Text;

  end;

  通过从剪贴板粘贴联接信息来建立联接的实现代码如下

  procedure TFormD Edit Click(Sender: TObject)

  var

  Service Topic Item : String;

  begin

  PasteLink Enabled := GetPasteLinkInfo (Service Topic Item)

  end;

  procedure TFormD doPasteLink(Sender: TObject)

  var

  Service Topic Item : String;

  begin

  if GetPasteLinkInfo (Service Topic Item) then

  begin

  AppName Text := Service;

  TopicName Text := Topic;

  ItemName Text := Item;

  DDEClient SetLink (Service Topic)

  DDEClientItem DdeConv := DDEClient;

  DDEClientItem DdeItem := ItemName Text;

  end;

  end;

  在DDEClientItem的OnChange事件处理过程中把接收到的事件保存在DDEDat中

  procedure TFormD DDEClientItemChange(Sender: TObject)

  begin

  DDEDat Lines := DDEClientItem Lines;

  end;

  数据发送的实现代码如下

  procedure TFormD doPoke (Sender: TObject)

  var

  DDECli : TDDEClientConv;

  begin

  DDECli := DDEClientItem DdeConv;

  if DdeCli <> nil then

  DDECli PokeDataLines (DDEClientItem DDEItem PokeDat Lines)

  end;

  宏指令发送的实现代码如下

  procedure TFormD doMacro (Sender: TObject)

  var

  DDECli: TDDEClientConv;

  Cmd: String;

  begin

  DDECli := DDEClientItem DdeConv;

  if DDECli <> nil then

  begin

  Cmd := PokeDat Text + # # ;

  DDECli ExecuteMacroLines (PokeDat Lines True)

  end;

  end;

  运行以上两个程序 建立DDE联接 经测试 数据传输 数据发送和宏指令的发送与执行都达到预期要求

   小结

  剪贴板和DDE是Windows下数据通信的两种方法 Delphi以简便 友好的方式实现了相应的功能 为用户编程提供了方便 一般说来 剪贴板多用于静态数据传输 而DDE用于动态数据交换 控制其它程序运行等场合 这些内容对于多用户环境下的程序开发是很重要的

  返回目录 DELPHI基础教程

       编辑推荐

       Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

  Visual C++音频/视频技术开发与实战

  Oracle索引技术

  ORACLE G数据库开发优化指南

  Java程序性能优化 让你的Java程序更快 更稳定

  C嵌入式编程设计模式

  Android游戏开发实践指南

cha138/Article/program/Delphi/201311/25227

相关参考

知识大全 剪贴板和动态数据交换(二)[3]

DELPHI基础教程:剪贴板和动态数据交换(二)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 剪贴板和动态数据交换(二)[1]

DELPHI基础教程:剪贴板和动态数据交换(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 剪贴板和动态数据交换(一)[4]

DELPHI基础教程:剪贴板和动态数据交换(一)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 剪贴板和动态数据交换(一)[3]

DELPHI基础教程:剪贴板和动态数据交换(一)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 剪贴板和动态数据交换(一)[2]

DELPHI基础教程:剪贴板和动态数据交换(一)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 剪贴板和动态数据交换(一)[1]

DELPHI基础教程:剪贴板和动态数据交换(一)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 利用剪贴板实现高速导出数据到Excel

利用剪贴板实现高速导出数据到Excel  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在很多的时

知识大全 动态性能视图,Oracle数据库维护的好帮手(二)

动态性能视图,Oracle数据库维护的好帮手(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 数据结构考研分类复习真题 第八章 动态存储管理[4]

  .假设利用边界标识法并以首次拟合策略分配已知在某个时刻可利用空间表的状态如下图所示  (注存储块头部size域的值和申请分配的存储量均包括头部和尾部的存储空间)  请画出  ()当系统回收一个起始

知识大全 数据结构考研分类复习真题 第八章 动态存储管理[2]

  .二进制地址为大小为()和()块的伙伴地址分别为_________________【上海大学二(分)】  无用单元是指________例________【北方交通大学二(分)】  四应用题  .伙