我在一个窗口中自定义一个消息。procedure tform2.myownermessage(var msg:tWMmymessage);
begin
if (msg.Name = 'test')and (msg.Time = 110) then
showmessage('收到消息');
end;procedure TForm2.Button1Click(Sender: TObject);
var
s1:String;
s:pointer;
begin
s1 :='test';
s:=pointer(s1);
sendmessage(handle,WM_mymessage,Integer(s),110);
end;
这样当button1click时,可以接受到消息。但是我在另外一个窗口发送消息的时候,为什么接受到的消息参数不对??
如下:procedure TForm1.Button1Click(Sender: TObject);
var
s1:String;
s:^string;
Hwd:THandle;
begin
Hwd:= findwindow('TForm2',nil);
if Hwd<>0 then
begin
s1 :='test';
getmem(s,length(s1)+1);
s:=@s1;
sendmessage(hwd,WM_User+$100,integer(s),110);
end;
end;Form2可以接受到消息,但是为什么参数s得到的不对,即不是test.
该如何修改??
begin
if (msg.Name = 'test')and (msg.Time = 110) then
showmessage('收到消息');
end;procedure TForm2.Button1Click(Sender: TObject);
var
s1:String;
s:pointer;
begin
s1 :='test';
s:=pointer(s1);
sendmessage(handle,WM_mymessage,Integer(s),110);
end;
这样当button1click时,可以接受到消息。但是我在另外一个窗口发送消息的时候,为什么接受到的消息参数不对??
如下:procedure TForm1.Button1Click(Sender: TObject);
var
s1:String;
s:^string;
Hwd:THandle;
begin
Hwd:= findwindow('TForm2',nil);
if Hwd<>0 then
begin
s1 :='test';
getmem(s,length(s1)+1);
s:=@s1;
sendmessage(hwd,WM_User+$100,integer(s),110);
end;
end;Form2可以接受到消息,但是为什么参数s得到的不对,即不是test.
该如何修改??
a:^string;
begin
getmem(a,8); //申请空间
a^:='abcd'; //赋值
dispose(a); //释放指针