Показать сообщение отдельно

  #8  
Старый 30.03.2009, 22:09
art2222
Участник форума
Регистрация: 28.04.2008
Сообщений: 172
С нами: 9492347

Репутация: 270
По умолчанию

Цитата:
Как сделать так , чтобы при нажатии на батон три огонька на клавиатуре поочередно зажигались и гасли (типа гирлянда)
[code]
type
TKeyType = (ktCapsLock, ktNumLock, ktScrollLock);

procedure SetLedState(KeyCode: TKeyType; bOn: Boolean);
var
KBState: TKeyboardState;
Code: Byte;
begin
case KeyCode of
ktScrollLock: Code := VK_SCROLL;
ktCapsLock: Code := VK_CAPITAL;
ktNumLock: Code := VK_NUMLOCK;
end;
GetKeyboardState(KBState);
if (Win32Platform = VER_PLATFORM_WIN32_NT) then
begin
if Boolean(KBState[Code]) <> bOn then
begin
keybd_event(Code,
MapVirtualKey(Code, 0),
KEYEVENTF_EXTENDEDKEY,
0);
keybd_event(Code,
MapVirtualKey(Code, 0),
KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,
0);
end;
end
else
begin
KBState
Код:
 := Ord(bOn);
    SetKeyboardState(KBState);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  SetLedState(ktCapsLock, True);  // CapsLock on
  SetLedState(ktNumLock, True);  // NumLock on
  SetLedState(ktScrollLock, True);  // ScrollLock on
end;
пользуй.

Последний раз редактировалось art2222; 30.03.2009 в 22:12..
 
Ответить с цитированием