Delphi是Borland公司的一种面向对象的可视化软件开发工具
Delphi集中了Visual C + +和Visual Basic两者的优点容易上手功能强大特别是在界面设计数据库编程网络编程方面更有其独特的优势
Delphi中的消息
消息是Windows发出的一个通知它告诉应用程序某个事件发生了在Delphi中大多数情况下Windows的消息被封装在VCL的事件中我们只需处理相应的VCL事件就可以了但如果我们需要编写自己的控件截获或过滤消息就必须深入研究Win的消息处理机制
在Delphi中消息以TMessage记录的方式定义打开Messagepas文件我们可以看到Tmessage是这样定义的
type
TMessage = packed record
Msg: Cardinal;
case Integer of
: (WParam: Longint;
LParam: Longint;
Result: Longint);
: (WParamLo: Word;
WParamHi: Word;
LParamLo: Word;
LParamHi: Word;
ResultLo: Word;
ResultHi: Word);
end;
其中Msg是区别于其他消息的常量值这些常量值可以是Windows单元中预定义的常量也可以是用户自己定义的常量Wparam通常是一个与消息有关的常量值也可以是窗口或控件的句柄LParam通常是一个指向内存中数据的指针
Result是消息处理的返回值WparamLparam和Result都是位的如果想访问其中的低位或高位可以分别使用WparamLoWparamHi LParamLoLparamHiResultLo和ResultHi
在Delphi中除了通用的Tmessage外还为每个Windows定义了一个特殊的消息记录我们可以浏览Messagepas文件下面是键盘的消息记录
TWMKey = packed record
Msg: Cardinal;
CharCode: Word;
Unused: Word;
KeyData: Longint;
Result: Longint;
与键盘相关的消息如WM_KEYDOWN WM_KEYUP WM_CHAR WM_SYSKEYDOWN WM_SYSKEYUP WM_SYSCHAR的记录也被定义为TWMkey在Messagepas文件中有以下声明
TWMChar = TWMkey TWMKeyDown =
TWMkeyTWMKeyUp = TWMkey TWMSys
KeyDown = TWMkey; TWMSysKeyUp =
TWMkeyTWMSysChar = TWMkey
[] []