一个BUTTON1按下后,向另一个BUTTON2发送了一条自定义消息,BUTTON2的接受消息的过程怎么写?下面代码中我想让BUTTON2响应,我觉得应该是可以。
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 const
MYMESSAGE = WM_USER+200 ;
type
  TForm1 = class(TForm)
     Button1: TButton;
     Button2: TButton;
    procedure  getmess(var msg : TMessage); message  MYMESSAGE ;
    procedure Button1Click(Sender: TObject);  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}
procedure tform1.getmess(var msg : TMessage) ;
begin
showmessage('i have got it');
end;procedure TForm1.Button1Click(Sender: TObject);
begin
postmessage(form1.Handle ,MYMESSAGE,0,0);
end;end.

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;const
      MYMESSAGE = WM_USER+200 ;type
      TMainForm = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        FOldWndProc: TWndMethod;    procedure NewWndProc(var Msg: TMessage);
      public
        { Public declarations }
      end;var
      MainForm: TMainForm;implementation{$R *.dfm}procedure TMainForm.FormCreate(Sender: TObject);
    begin
      FOldWndProc := Button2.WindowProc;
      Button2.WindowProc := NewWndProc;
    end;procedure TMainForm.NewWndProc(var Msg: TMessage);
    begin
      if Msg.Msg = MYMESSAGE then
        ShowMessage('I have got it')
      else
        FOldWndProc(Msg);
    end;procedure TMainForm.Button1Click(Sender: TObject);
    begin
      SendMessage(Button2.Handle, MYMESSAGE, 0, 0);
    end;end.不过没什么必要
      

  2.   

    我在测试DLL的时候,我改变了DLL中函数的参数,可是怎么更新测试程序啊??