全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1825
推到 Plurk!
推到 Facebook!

取得鍵盤狀態碼

 
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-02-26 22:51:55 IP:61.219.xxx.xxx 未訂閱
Delphi 可以調用 Win API 的 Getkeyboardstate() 函數。         常量                  按鍵名稱
VK_INSERT                Insert 鍵
VK_NUMLOCK               Num Lock 鍵
VK_CAPITAL               Caps Lock 鍵
VK_SCROLL                Scroll Lock 鍵          鍵盤緩沖區每一位都有一位特定的格式,對于狀態鍵來說,最低位是1時表示狀態鍵處于 ON 狀態,
你可以使用 odd() 函數來確定這一位的狀態,以下是一個簡單的例子請參考。例子中放置一個 Timer 控
件、一個 StayusBar1 狀態條。    unit Unit1;
interface
uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, 
ComCtrls;
type
    TForm1 = class(TForm)
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    private
       { Private declarations }
    public
       { Public declarations }
end;
var
    Form1: TForm1;
implementation
{$R *.DFM}     procedure TForm1.Timer1Timer(Sender: TObject);
var
    ks:tkeyboardstate;
begin
    getkeyboardstate(ks);  //檢測鍵盤函數
    if odd(ks[VK_NUMLOCK]) then statusbar1.panels.items[0].text:='NUM'
       else statusbar1.panels.items[0].text:='';
    if odd(ks[VK_INSERT]) then statusbar1.panels.items[1].text:='INSERT'
       else statusbar1.panels.items[1].text:='';
    if odd(ks[VK_CAPITAL]) then statusbar1.panels.items[2].text:='CAPITAL'
       else statusbar1.panels.items[2].text:='' ;
    if odd(ks[VK_SCROLL]) the statusbar1.panels.items[3].text:='SCROLL'
       else statusbar1.panels.items[3].text:='';
end;
end.    
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-11-23 5:50:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!