本例效果图:
首先应该知道要接受文本的 Edit 的句柄, 这个有很多办法, 本例用了最简单的自我获取的办法.
程序1: 准备接受文本的程序
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text := IntToStr(Edit1.Handle); end; procedure TForm1.FormCreate(Sender: TObject); begin Text := '程序1'; Button1.Caption := '显示 Edit1 的句柄'; end; end.
程序2: 发送文本的程序
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var p: PChar; h: HWND; begin p := PChar(Edit1.Text); h := HWND(StrToIntDef(Edit2.Text, 0)); SendMessage(h, WM_SETTEXT, StrLen(p), Cardinal(p)); end; procedure TForm1.FormCreate(Sender: TObject); begin Text := '程序2'; Button1.Caption := '把 Edit1 中的内容发送到 Edit2 中句柄指示的文本控件中...'; Button1.WordWrap := True; {如果是 Delphi 2009 之前的版本, Button 可能不支持换行} end; end.
这是发送文本, 如果是从对方接收文本要稍麻烦些, 参见:
http://www.cnblogs.com/del/archive/2008/11/15/1334237.html
另外: 获取任意窗口(或控件)的句柄, 可以参见:
http://www.cnblogs.com/del/archive/2008/03/09/1097793.html