如何把一个程序中 Edit 中的文本赋给另一个程序的 Edit ? - 回复 "Disk_" 的问题


本例效果图:

如何把一个程序中 Edit 中的文本赋给另一个程序的 Edit ? - 回复 "Disk_" 的问题

首先应该知道要接受文本的 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

你可能感兴趣的:(it)