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

В приведенном примере показано как определить нажата ли клавиша Shift при выборе строчки меню. Пример также содержит функции проверки состояния клавиш Alt, Ctrl.
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;
 
« Предыдущая статья   Следующая статья »