Вы наверняка сталкивались с проблемой быстро узнать какая кнопка нажата в данный момент. Стандартными средствами получается не хорошо, вы нажали на кнопку система среагировала, подождала некоторое время, и заработала дальше. Эту проблему можно решить несколькими способами, например, воспользоваться DirectInput, но это не самый лучший выход особенно если вы незнакомы с этой библиотекой, я предлагаю воспользоваться WinAPI функцией GetKeyboardState(var KeyState: TKeyboardState). У этой функции всего один параметр KeyState сюда вписывается состояние клавиатуры и даже кнопки мыши!
Воспользоваться этой функцией легко, я обычно пишу функцию которой передаю номер кнопки и если она нажата, то функция возвращает 1 иначе 0, вот пример такой функции:
Code
function KeyPressed(Key: byte): boolean;
var
keys: TKeyboardState;
begin
result:=false;
GetKeyboardState(keys);
if (keys[key]=128)or(keys[key]=129) then
result:=true;
end;
if (keys[key]=128)or(keys[key]=129) then странно почему два числа 128 и 129 дело в том, что Windows ведет как бы учет четный раз нажата кнопка или нечетный.