使用 ServerSocket 和 ClientSocket 进行连接,发送字符串即可。或者使用 NMUDP 控件发送也很好。这是在远程或本地机都可以的方法。要是本地机,直接使用共享内存的方法,看看CreateSharedMemory 函数的说明吧。

解决方案 »

  1.   

    你可以setwindowtext
    你可以sendmessage
      

  2.   

    form2.button1click(sender:TObject);
    begin
     sendmessage(findwindowEx(findwindow('tform1','form1'),0,'tmemo1','memo1'),
      wm_settext,0,'hello,World!');
    end;
      

  3.   

    呵呵,很多的方法,用消息可以,DDE也可以,共享内存也可以,用WM_SetTEXT也可以.....
      

  4.   

    为什么BigBen(江南草) 的代码运行完出现Incompatible types:'Integer' and 'String'错误?
      

  5.   

    是向Memo发送指定的字符,并不是从INI加载。
      

  6.   

    'hello,World!'改成integer(pchar('Hello,World!'))就可以了.
      

  7.   

    sendmessage(findwindowEx(findwindow('TForm1','Form1'),0,'tmemo1','memo1'),
      wm_settext,0,integer(pchar('helloWorld!')));
    用上面的代码无法实现,大虾请赐教!
      

  8.   

    具体方法是:一个程序改了一块共享内存后再发消息给另一个程序。。1。改共享内存。
    2。postmessage(handle,WM_USER(自定义),0,0)另一个程序收到消息后再去都这块内存。再窗口中添加过程,
     procedure RecvMsg(Msg:TMessage);message WM_USER;再这个过程中去查询那个内存的值
      

  9.   

    这里我再把我的代码关键的部分拿出来,欢迎大家批评指正....这是发送的部分:主窗口上包含两个Button ,一个输入Edit1,一个提示Label.
    procedure TfrmSendMsg.Button1Click(Sender: TObject);
    var
      Win:HWND;
      Post:Pointer;
      pStr:PShortString;
      Str:String;
    begin
      Str:=Edit1.Text;
      MapHandle:=CreateFileMapping(DWord(-1),nil,PAGE_READWRITE,0,250,'summer');
      if (MapHandle>0) then
        begin
          Post:=MapViewOfFile(MapHandle,FILE_MAP_WRITE,0,0,0);
          pStr:=Post;
          pStr^:=Str;  //写共享内存
        end;
      Win:=FindWindow('TfrmRecvMsg',nil);
      If Win>0 then
        Begin
          PostMessage(Win,WM_USER+100,0,0);  //发消息给接收程序的主窗口...
          Edit1.SetFocus;
          Label2.Caption:='发送完成!';
        end
      Else
        Begin
          Label2.Caption:='接收器没有运行!';
        end;
    end;这是接收部分:
    主窗口包含一个Memo1.unit RecvMsg;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TfrmRecvMsg = class(TForm)
        Memo1: TMemo;
        Label1: TLabel;
      private
        procedure GetMsg(var Msg: TMessage);Message WM_USER+100; //在这里增加接收的过程
        { Private declarations }
      public
        { Public declarations }
      end;var
      frmRecvMsg: TfrmRecvMsg;implementation{$R *.DFM}{ TfrmRecvMsg }procedure TfrmRecvMsg.GetMsg(var Msg: TMessage);
    var
      MapHandle:THandle;
      pStr:Pointer;
      Str:String;
    begin
      MapHandle:=CreateFileMapping(DWord(-1),nil,PAGE_READWRITE,0,255,'summer');
      if (MapHandle>0) then
        begin
          pStr:=MapViewOfFile(MapHandle,FILE_MAP_READ,0,0,10); //得到共享内存的指针
          Memo1.Lines.Add('收到一条消息!!');
          Memo1.Lines.Add(Pchar(pStr));
        end;
      CloseHandle(MapHandle);
    end;end.
      

  10.   

    谢谢大家!感谢summernightrain(夏夜雨)我已经收到你的邮件了,谢谢!