Programowanie w języku Delphi » FAQ

Jak sprawdzić, czy klawisze Num Lock, Caps Lock, Scroll Lock, Insert są włączone

  • 2007-02-08 23:18
  • 6 komentarzy
  • 1399 odsłon
  • Oceń ten tekst jako pierwszy
Umieść na formularzu cztery komponenty CheckBox. W zdarzeniu OnCreate formy wpisz:

CheckCapsLock.Checked := (GetKeyState(VK_CAPITAL) and 1) <> 0; // CapsLock
CheckNumLock.Checked := (GetKeyState(VK_NUMLOCK) and 1) <> 0; // NumLock
CheckScrollLock.Checked := (GetKeyState(VK_SCROLL) and 1) <> 0; // ScrollLock
CheckInsert.Checked := (GetKeyState(VK_INSERT) and 1) <> 0; // Insert

6 komentarzy

sochalewski 2007-02-20 14:47

zgadzam się w 100% z Mr.Hania [sorry za bezmyslne skopiowanie nicku]
xD

Mr.Hania 2007-02-09 12:40

MSC - ten artykuł działa. Po prostu musisz pozmieniać nazwy checkboxów na CheckNumLock, CheckCapsLock, CheckInsert, CheckScrollLock. Albo pozamieniać nazwy w kodzie na CheckBox1, CheckBox2 itd. Programowanie to nie tylko bezmyślne kopiowanie kodu, trzeba też wiedzieć jak go użyć ;)

Format 2007-02-08 23:15

Zastanawiam się po co jest ten "and 1" ? Następujący kod przecież działa równie dobrze:

CheckCapsLock.Checked := GetKeyState(VK_CAPITAL) <> 0; // CapsLock
CheckNumLock.Checked := GetKeyState(VK_NUMLOCK) <> 0; // NumLock
CheckScrollLock.Checked := GetKeyState(VK_SCROLL) <> 0; // ScrollLock
CheckInsert.Checked := GetKeyState(VK_INSERT) <> 0; // Insert 

...na wszelki wypadek poprawiam w artykule tylko nie domknięty nawias...

Coldpeer 2006-12-02 21:30

crop: a co miałby niby dać taki sam kod, tylko że RadioButtony umieszczone na Panelach zamiast na formie? :-/

endrique 2004-04-05 01:56

a jak je zaświecać i gasić?

MSC 2003-08-30 11:28

TEN ARTYKUŁ CHYBA NIE DZIAŁA...:/