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 Pascal。我想扩展从文档中复制的示例的功能,以便程序识别空间,而不仅仅是左/右/ esc键。
我找到了一个程序,当你按下按键时会写出代码。它说空间为32。我在上面的switch语句中添加了#32 case。为什么按空格时仍然看不到输出?
答案 0 :(得分: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案例中,而是紧挨着它。