发送消息(200分)

  • 主题发起人 主题发起人 Kule
  • 开始时间 开始时间
K

Kule

Unregistered / Unconfirmed
GUEST, unregistred user!
我的控件中生成一个新的窗体,当此新窗体关闭时我想接受返回值怎么解决?
可不可以定义自己的消息,当窗体关闭时发送到我的控件中,或是有什么别的办法?
 
定义个全局变量,在新的窗体的Close中写代码给全局变量赋值不行吗?
 
const my_message=wm_user+101;
......
procedure myclose(sender:tobject);
begin
sendmessage(handle,my_message,0,0);
end;
在定义新窗体时
newform.onclose:=myclose;
在原窗体中截取这个消息
在pravite中加上
procedure mymessage(var msg:tmessage);message my_message;
.......
procedure tform1.mymessage(var msg:tmessage);
begin
在这里加上自己要处理的事情
end;
 
王江的方法应该可行,不过我还试过 :)

to 王江:你的自我介绍写得太客气了吧 :)
 
en,王江的方法不错。
 
王江的方法是把消息发到窗体上,如果需要发到指定的地方,注意第一个参数:
sendmessage(handle,my_message,0,0);
handale是希望发送的目的地的句柄,
一般情况下实现你的目的都是把消息发到某个确定的窗体,因为我们可以很好的控制窗体类
的消息处理,就象王江的方法一样,只要在窗体类的声明处声明一个处理特定消息的函数即
可以
 
省了我十本书钱。
 
多人接受答案了。
 
但是这个目的窗口句柄如何获取,如果不知道的话,我看还是得用BroadcastWindowMessage,而且
还得注册消息RegisterWindowMessage
 
后退
顶部