home *** CD-ROM | disk | FTP | other *** search
/ PC Format Collection 48 / SENT14D.ISO / tech / delphi / disk14 / doc.pak / DDEMAN.INT < prev    next >
Encoding:
Text File  |  1995-08-24  |  4.4 KB  |  132 lines

  1. {*******************************************************}
  2. {                                                       }
  3. {       Delphi Visual Component Library                 }
  4. {                                                       }
  5. {       Copyright (c) 1995 Borland International        }
  6. {                                                       }
  7. {*******************************************************}
  8.  
  9. unit DdeMan;
  10.  
  11. interface
  12.  
  13. uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, DDEML, StdCtrls;
  14.  
  15. type
  16.   TDataMode = (ddeAutomatic, ddeManual);
  17.   TDdeServerConv = class;
  18.  
  19.   TMacroEvent = procedure(Sender: TObject; Msg: TStrings) of object;
  20.  
  21.   TDdeClientItem = class;
  22.  
  23.   { TDdeClientConv }
  24.  
  25.   TDdeClientConv = class(TComponent)
  26.   protected
  27.     function CreateDdeConv(FHszApp: HSZ; FHszTopic: HSZ): Boolean;
  28.     function GetCliItemByName(const ItemName: string): TPersistent;
  29.     function GetCliItemByCtrl(ACtrl: TDdeClientItem): TPersistent;
  30.     procedure Loaded; override;
  31.     procedure DefineProperties(Filer: TFiler); override;
  32.     procedure ReadLinkInfo (Reader: TReader);
  33.     procedure WriteLinkInfo (Writer: TWriter);
  34.     function OnSetItem(aCtrl: TDdeClientItem; const S: String): Boolean;  
  35.     procedure OnAttach(aCtrl: TDdeClientItem);  
  36.     procedure OnDetach(aCtrl: TDdeClientItem);
  37.     procedure Close; dynamic;
  38.     procedure Open; dynamic;
  39.     function ChangeLink(const App: string; const Topic: string; 
  40.       const Item: string): Boolean;
  41.     procedure ClearItems;
  42.     procedure Notification(AComponent: TComponent;
  43.       Operation: TOperation); override;
  44.   public
  45.     constructor Create(AOwner: TComponent); override;
  46.     destructor Destroy; override;
  47.     function PasteLink: Boolean;
  48.     function OpenLink: Boolean;
  49.     function SetLink(const Service: string; const Topic: string): Boolean;
  50.     procedure CloseLink;
  51.     function StartAdvise: Boolean;
  52.     function PokeDataLines(const Item: string; Data: TStrings): Boolean;  
  53.     function PokeData(const Item: string; Data: PChar): Boolean;  
  54.     function ExecuteMacroLines(Cmd: TStrings; waitFlg: Boolean): Boolean;  
  55.     function ExecuteMacro(Cmd: PChar; waitFlg: Boolean): Boolean;
  56.     function RequestData(const Item: string): PChar;
  57.     property DdeFmt: Integer;
  58.     property WaitStat: Boolean;
  59.     property Conv: HConv;
  60.     property DataMode: TDataMode;
  61.   published
  62.     property ServiceApplication: String;
  63.     property DdeService: String;
  64.     property DdeTopic: String;
  65.     property ConnectMode: TDataMode default ddeAutomatic;
  66.     property FormatChars: Boolean default False;
  67.     property OnClose: TNotifyEvent;
  68.     property OnOpen: TNotifyEvent;
  69.   end;
  70.  
  71.   TDdeClientItem = class(TComponent)
  72.   protected
  73.     procedure Notification(AComponent: TComponent;      
  74.       Operation: TOperation); override;                 
  75.   public
  76.     constructor Create(AOwner: TComponent); override;
  77.     destructor Destroy; override;
  78.   published
  79.     property Text: String;
  80.     property Lines: TStrings;
  81.     property DdeConv: TDdeClientConv;
  82.     property DdeItem: String;
  83.     property OnChange: TNotifyEvent;
  84.   end;
  85.  
  86.  
  87.   { TDdeServerConv }
  88.  
  89.   TDdeServerConv = class(TComponent)
  90.   protected
  91.     procedure Connect; dynamic;
  92.     procedure Disconnect; dynamic;
  93.   public
  94.     constructor Create(AOwner: TComponent); override;
  95.     destructor Destroy; override;
  96.     function ExecuteMacro(Data: HDdeData): LongInt;
  97.   published
  98.     property OnOpen: TNotifyEvent;
  99.     property OnClose: TNotifyEvent;
  100.     property OnExecuteMacro: TMacroEvent;
  101.   end;
  102.  
  103.   { TDdeServerItem }
  104.  
  105.   TDdeServerItem = class(TComponent)
  106.   protected
  107.     function GetText: string;
  108.     procedure SetText(const Item: string);
  109.     procedure SetLines(Value: TStrings);
  110.     procedure SetServerConv(SConv: TDdeServerConv);
  111.     procedure Notification(AComponent: TComponent;
  112.       Operation: TOperation); override;
  113.   public
  114.     constructor Create(AOwner: TComponent); override;
  115.     destructor Destroy; override;
  116.     function PokeData(Data: HDdeData): LongInt;
  117.     procedure CopyToClipboard;
  118.     procedure Change; dynamic;
  119.     property Fmt: Integer;
  120.   published
  121.     property ServerConv: TDdeServerConv;
  122.     property Text: string;
  123.     property Lines: TStrings;
  124.     property OnChange: TNotifyEvent;
  125.     property OnPokeData: TNotifyEvent;
  126.   end;
  127.  
  128.   function GetPasteLinkInfo(var Service: String; var Topic: String;
  129.                             var Item: String): Boolean;
  130.  
  131. implementation
  132.