home *** CD-ROM | disk | FTP | other *** search
/ PC Format Collection 48 / SENT14D.ISO / tech / delphi / disk15 / ddedemo.pak / DDCLI.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-08-24  |  2.4 KB  |  110 lines

  1. unit Ddcli;
  2.  
  3. interface
  4.  
  5. uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, StdCtrls, Menus,
  6.      DdeMan;
  7.  
  8. type
  9.   TFormD = class(TForm)
  10.  
  11.     MainMenu1: TMainMenu;
  12.     File1: TMenuItem;
  13.     Edit1: TMenuItem;
  14.     PasteLink1: TMenuItem;
  15.     GroupBox1: TGroupBox;
  16.     DdeDatLabel: TLabel;
  17.     Label2: TLabel;
  18.     Label3: TLabel;
  19.     Label4: TLabel;
  20.     AppName: TEdit;
  21.     TopicName: TEdit;
  22.     ItemName: TEdit;
  23.     NewLink1: TMenuItem;
  24.     GroupBox2: TGroupBox;
  25.     Button3: TButton;
  26.     Button4: TButton;
  27.     DdeClient: TDdeClientConv;
  28.     DdeClientItem: TDdeClientItem;
  29.     XEdit: TMemo;
  30.     DdeDat: TMemo;
  31.  
  32.     procedure doPoke(Sender: TObject);
  33.     procedure doMacro (Sender: TObject);
  34.     procedure doPasteLink(Sender: TObject);
  35.     procedure doNewLink(Sender: TObject);
  36.     procedure DdeClientItemChange(Sender: TObject);
  37.     procedure Edit1Click(Sender: TObject);
  38.   private
  39.     { Private declarations }
  40.   public
  41.     { Public declarations }
  42.   end;
  43.  
  44. var
  45.   FormD: TFormD;
  46.  
  47. implementation
  48.  
  49. uses Dialogs, SysUtils;
  50.  
  51. {$R *.DFM}
  52.  
  53. procedure TFormD.Edit1Click(Sender: TObject);
  54. var
  55.   Service, Topic, Item : String;
  56. begin
  57.   PasteLink1.Enabled :=  GetPasteLinkInfo (Service, Topic, Item);
  58. end;
  59.  
  60. procedure TFormD.doPasteLink(Sender: TObject);
  61. var
  62.   Service, Topic, Item : String;
  63. begin
  64.   if  GetPasteLinkInfo (Service, Topic, Item) then
  65.   begin
  66.     AppName.Text       := Service;
  67.     TopicName.Text     := Topic;
  68.     ItemName.Text      := Item;
  69.     DdeClient.SetLink (Service, Topic);
  70.     DdeClientItem.DdeConv := DdeClient;
  71.     DdeClientItem.DdeItem := ItemName.Text;
  72.   end;
  73. end;
  74.  
  75. procedure TFormD.doNewLink(Sender: TObject);
  76. begin
  77.   DdeClient.SetLink (AppName.Text, TopicName.Text);
  78.   DdeClientItem.DdeConv := DdeClient;
  79.   DdeClientItem.DdeItem := ItemName.Text;
  80. end;
  81.  
  82. procedure TFormD.doPoke (Sender: TObject);
  83. var
  84.   DdeCli : TDdeClientConv;
  85. begin
  86.   DdeCli := DdeClientItem.DdeConv;
  87.   if DdeCli <> Nil then
  88.     DdeCli.PokeDataLines (DdeClientItem.DdeItem, XEdit.Lines);
  89. end;
  90.  
  91. procedure TFormD.doMacro (Sender: TObject);
  92. var
  93.   DdeCli : TDdeClientConv;
  94.   Cmd    : String;
  95. begin
  96.   DdeCli := DdeClientItem.DdeConv;
  97.   if DdeCli <> Nil then
  98.   begin
  99.     Cmd := XEdit.Text + #13#10;
  100.     DdeCli.ExecuteMacroLines (XEdit.Lines, True);
  101.   end;
  102. end;
  103.  
  104. procedure TFormD.DdeClientItemChange(Sender: TObject);
  105. begin
  106.   DdeDat.Lines := DdeClientItem.Lines;
  107. end;
  108.  
  109. end.
  110.