熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Delphi的消息處理[1]

2013-11-23 17:41:02  來源: Delphi編程 

  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

[]  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/24883.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.