该实例使用的是windows的WM_KEYDOWN消息,当按键按下时,发出beep声音。
创建一个窗口,代码部分如下:
当按下任意键时,系统会产生beep的声音。(前提是在选中该窗口的时候)。
procedure keydown(var Msg:TWMKeydown);message WM_KEYDOWN;
这是一个消息处理函数,参数是一个TWMKeydown类型的形参(也可以是TMessage,如果是其他的消息,怎使用相应的特殊消息记录)。声明的时候,后面要跟message消息指示符,然后添上消息常量,以表明这个函数是处理什么消息的。
补充:Delphi把Windows的TMsg记录中的信息映射成为TMessage记录,除此之外,Delhi为每个Windows消息定义了一个特殊的消息记录,这样就不必从wParam域和lParam域中分解出有关信息。这些特殊的记录可以在Message单元中找到。消息记录的命名是在消息标识符的前面加上大写字母T并去掉下划线。例如,与消息WM_KEYDOWN对应的消息记录名称叫TWMKeydown。TMessage记录对所有的消息都是适用的,而特殊的消息记录只适用于某些消息。
在实现部分有这么一个关键字inherited,这是将消息传递给祖先类,使得祖先类来处理。(打个比方,有个人通知你XX要来,你对XX的反应是赶紧躲起来,但XX是你父亲的好友。有两种选择,一是你躲起来,但不调用inherited通知你父亲。还有一种选择就是你躲起来,顺便调用inherited,把这消息告诉你父亲,他爱怎么处理就怎么处理。)