Как определить, нажата ли в данный момент клавиша Shift, Ctrl или Alt?

Следующий пример демонстрирует проверку состояния клавиши Shift (нажата она или нет), в то время когда выделен пункт меню. А так же в примере содержатся функции, позволяющие определить состояние клавишь Alt, Ctrl, и shift:

function CtrlDown : Boolean;

var

 State : TKeyboardState;

begin

 GetKeyboardState(State);

 Result := ((State[vk_Control] And 128) <> 0);

end;

function ShiftDown : Boolean;

var

 State : TKeyboardState;

begin

 GetKeyboardState(State);

 Result := ((State[vk_Shift] and 128) <> 0);

end;

function AltDown : Boolean;

var

 State : TKeyboardState;

begin

 GetKeyboardState(State);

 Result := ((State[vk_Menu] and 128) <> 0);

end;

procedure TForm1.MenuItem12Click(Sender: TObject);

begin

 if ShiftDown then

  Form1.Caption := 'Shift' else

  Form1.Caption := '';

end;

Взято из http://forum.sources.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...