其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

Delphi的消息处理[1]


发布日期:2018年03月31日
 
Delphi的消息处理[1]

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

[] []

               

上一篇:用Delphi监控IE浏览器[1]

下一篇:Delphi的消息处理[2]