拦截消息的方法定义:
procedure 自定义方法名(var Msg: TMessage); message 待拦截的消息常量;
当你想拦截某个消息时,只需按上边的方法结构声明即可.
比如响应移动消息的方法命名:
procedure CustMove(var Msg: TMessage); message WM_MOVE;
为什么窗口大小改变后,就会触发 WM_SIZE 消息????
Delphi中关键字message的用法???
怎么定义自己的消息??
转自Lhttp://bbs.csdn.net/topics/390392261 //无聊时狂下论坛,总有收获的。
里面提到一段代码
procedure
TForm1
.
Button1Click(Sender: TObject);
var
Size:
Integer
;
begin
{ 先将按钮自身移到窗口左上角,以免窗口缩小后被遮挡 }
(Sender
as
TButton).Left :=
0
; //这个 Sender 从代码中理解就是 触发该单击事件的对象。
(Sender
as
TButton).Top :=
0
; //再将该对象强制转换为 TButton 类型,再调用类型中的方法。
{ 获取一个随机数,可正可负 }
Randomize;
Size := Random(
100
) -
50
;
{ 设置窗口的新大小 }
Width := Width + Size;
Height := Height + Size;
{ 当窗口大小改变后,就会触发 WM_SIZE 消息,从而调用我们定义的 TForm1.Refresh }
end
;