So ähnliches wollte ich auch gerade schreiben. Möglicherweise gibt es in deinem Programmcode
eine Stelle (Schleife While oder For oä.) was dein Programm "blockiert" und die Tastatureingabe nicht abarbeitet.
Eine Application.ProcessMessages könnte in diesem Falle helfen.
Delphi-Quellcode:
function KeyPressed: Integer;
var
i: Integer;
buf: TKeyboardState;
begin
Result := -1;
if GetKeyboardState(buf) then
for i := 0 to High(buf) do
if (buf[i] and $80)<>0 then
begin
Result := i;
Exit;
end;
end;
procedure TFormX.Steuerung...
begin
repeat
case KeyPressed of
VK_UP: ;
VK_DOWN: ;
VK_LEFT: ;
VK_RIGHT: ;
end;
Application.ProcessMessages;
until KeyPressed = VK_ESCAPE;
end;