关于消息处理句柄的有关问题?多谢

关于消息处理句柄的问题?谢谢!
有如下两个消息处理句柄;

procedure   Mymsgmethod(var   message:Tmessage);   message   wm_keydown;
procedure   Mymsgmethod(var   message:Twmkeydown);   message   wm_keydown;
1:括号内的变量message与过程右边的指令字 "message "有什么不同?
2:Tmessage与Twmkeydown都是记录类型,二者之间有什么区别或联系?
3:message应该是一个指令字为什么可以做为变量名使用?
谢谢!




------解决方案--------------------
晕倒!
1\右边的指令字 "message是DELPHI规定的消息定义规则,括号内的变量message是一个自己定义的变量,你可以改成你想要的.....
2\Tmessage是总的消息定义记录,而Twmkeydown只是DELPHI为KEY事件发生时定义的消息记录.
3\整个WIN都由消息发送与收到构成的,就var message:Twmkeydown 而言,当键盘击下时,程序就会收到消息,于是用户可能根据需作出处理,比如,当你按了 "W "时,当在这个事件你可以改成 "Y "然后传出去,这样,你的控件收到就是 "Y "

------解决方案--------------------
晚了,同上
------解决方案--------------------
Twmkeydown类只是经过重新封装便于使用的Tmessage类,你也可以直接用
procedure Mymsgmethod(var message:Tmessage); message wm_keydown; "
------解决方案--------------------
这样跟你说啊,OBJ是基类,而TSTRINGS又从OBJ类继承来,所在在DELPHI中,
你可以用VAR X:TOBJECT;
X:=TSTRINGS.CREATE;
在使用时,再用TSTRINGS(X)使用!

"procedure Mymsgmethod(var message:Twmkeydown); message wm_keydown; "

Tmessage就是OBJ,而Twmkeydown就是那个TSTRINGS;



------解决方案--------------------
楼主可以研究下目标对象的Dispatch()发送消息方法