unit Unit1111;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
WM_MYMESSAGE = 1357;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure WMUser(var msg:TMessage); message WM_MYMESSAGE;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMUser(var msg:TMessage);
var
versionindex,verhavemap : integer;
begin
showmessage('.......');
if msg.Msg = WM_MYMESSAGE then begin
versionindex := msg.WParam;
verhavemap := msg.LParam;
showmessage('收到信息:'+ inttostr(versionindex));
showmessage('收到信息:'+ inttostr(verhavemap));
end;end;procedure TForm1.Button1Click(Sender: TObject);
begin
sendmessage(application.Handle,WM_MYMESSAGE,0,0);
end;end.
---------------------------------------------------
奇怪了
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
WM_MYMESSAGE = 1357;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure WMUser(var msg:TMessage); message WM_MYMESSAGE;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMUser(var msg:TMessage);
var
versionindex,verhavemap : integer;
begin
showmessage('.......');
if msg.Msg = WM_MYMESSAGE then begin
versionindex := msg.WParam;
verhavemap := msg.LParam;
showmessage('收到信息:'+ inttostr(versionindex));
showmessage('收到信息:'+ inttostr(verhavemap));
end;end;procedure TForm1.Button1Click(Sender: TObject);
begin
sendmessage(application.Handle,WM_MYMESSAGE,0,0);
end;end.
---------------------------------------------------
奇怪了
你在Button1的OnClick事件中向Application.Handle发一个自定义的消息,却期望Form1能收到,这怎么可能?
将
sendmessage(application.Handle,WM_MYMESSAGE,0,0);
修改为:
SendMessage(Handle, WM_MYMESSAGE, 0, 0);
即可