unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, WMCopyDataUnit, end_uses; type TForm1 = class(TForm) Memo1: TMemo; Memo2: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private FWMCopyDataConnection: TWMCopyDataConnection; procedure WMCopyData(var msg: TWMCopyData); message WM_COPYDATA; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); public { Public 錾 } end; var Form1: TForm1; implementation {$R *.dfm} const WMCopyDataKey: DWORD = $00000001; procedure TForm1.FormCreate(Sender: TObject); begin FWMCopyDataConnection := TWMCopyDataConnection.Create; end; procedure TForm1.FormDestroy(Sender: TObject); begin FWMCopyDataConnection.Free; end; procedure TForm1.Button1Click(Sender: TObject); begin // ShowMessage(IntToStr(Length(Memo1.Text))); FWMCopyDataConnection.SendText(Self.Handle, WMCopyDataKey, Memo1.Text); end; procedure TForm1.WMCopyData(var msg: TWMCopyData); var ReceiveText: String; begin if FWMCopyDataConnection.ReceiveText(msg, WMCopyDataKey, ReceiveText) then begin Memo2.Text := ReceiveText; end else begin inherited; end; end; end.