程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第七章-剪貼板和動態數據交換(二)(5)

第七章-剪貼板和動態數據交換(二)(5)

編輯:Delphi

DDE聯接的建立通過調用SetLink方法實現。

建立新聯接的實現代碼如下。 

procedure TFormD.doNewLink(Sender: TObject);

begin

DDEClient.SetLink (AppName.Text, TopicName.Text);

DDEClientItem.DdeConv := DDEClient;

DDEClientItem.DDEItem := ItemName.Text;

end; 

通過從剪貼板粘貼聯接信息來建立聯接的實現代碼如下。 

procedure TFormD.Edit1Click(Sender: TObject);

var

Service, Topic, Item : String;

begin

PasteLink1.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 + #13#10;

DDECli.ExecuteMacroLines (PokeDat.Lines, True);

end;

end; 

運行以上兩個程序,建立DDE聯接。經測試,數據傳輸、數據發送和宏指令的發送與執行都達到預期要求。

7.4.4 小結 

剪貼板和DDE是Windows下數據通信的兩種方法。Delphi以簡便、友好的方式實現了相應的功能,為用戶編程提供了方便。一般說來,剪貼板多用於靜態數據傳輸,而DDE用於動態數據交換、控制其它程序運行等場合。這些內容對於多用戶環境下的程序開發是很重要的

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved