知识大全 剪贴板和动态数据交换(二)[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相关参考
DELPHI基础教程:剪贴板和动态数据交换(二)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
DELPHI基础教程:剪贴板和动态数据交换(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
DELPHI基础教程:剪贴板和动态数据交换(一)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
DELPHI基础教程:剪贴板和动态数据交换(一)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
DELPHI基础教程:剪贴板和动态数据交换(一)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
DELPHI基础教程:剪贴板和动态数据交换(一)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
利用剪贴板实现高速导出数据到Excel 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在很多的时
知识大全 动态性能视图,Oracle数据库维护的好帮手(二)
动态性能视图,Oracle数据库维护的好帮手(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 数据结构考研分类复习真题 第八章 动态存储管理[4]
.假设利用边界标识法并以首次拟合策略分配已知在某个时刻可利用空间表的状态如下图所示 (注存储块头部size域的值和申请分配的存储量均包括头部和尾部的存储空间) 请画出 ()当系统回收一个起始
知识大全 数据结构考研分类复习真题 第八章 动态存储管理[2]
.二进制地址为大小为()和()块的伙伴地址分别为_________________【上海大学二(分)】 无用单元是指________例________【北方交通大学二(分)】 四应用题 .伙