-1
Program Example3;
uses Crt;

{ Program to demonstrate the ReadKey function. }

var
  ch : char;
begin
  writeln('Press Left/Right, Esc=Quit');
  repeat
    ch:=ReadKey;
      case ch of
      #0 : begin
             ch:=ReadKey; {Read ScanCode}
             case ch of
             #32: Writeln ('Space');
             #75 : WriteLn('Left');
             #77 : WriteLn('Right');
             end;
           end;
      #27 : WriteLn('ESC');
      end;
  until ch=#27 {Esc}
end.                         

这是 Lazarus IDE 帕斯卡。我想扩展从文档复制的示例的功能,以便程序识别空间,而不仅仅是左/右/esc 键。

我找到了一个程序,可以在您按下按键时写出代码。它说 32 空间。我在上面的 switch 语句中添加了#32 case。为什么按空格键还是看不到输出?

4

1 回答 1

0
case ch of
#0 : begin
       ch:=ReadKey; {Read ScanCode}
       case ch of
       #75 : WriteLn('Left');
       #77 : WriteLn('Right');
       end;
     end;
#27 : WriteLn('ESC');
#32 : WriteLn('Space'); {<- space case should go HERE}
end;

空格不是扩展键,因此前面没有#0。我们不会将#32 案例放入#0 案例中,而是放在它旁边。

于 2014-03-28T20:23:42.240 回答