keyboard3.pp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. {
  2. Keyboard example for the PTCPas library
  3. This source code is in the public domain
  4. }
  5. program KeyboardExample3;
  6. {$MODE objfpc}
  7. uses
  8. ptc;
  9. procedure DumpKey(AKey: IPTCKeyEvent);
  10. begin
  11. Writeln('Code=', AKey.Code:3, ', Unicode=$', HexStr(AKey.Unicode, 4),
  12. ', Press=', AKey.Press:5, ', Shift=', AKey.Shift:5, ', Alt=', AKey.Alt:5,
  13. ', Control=', AKey.Control:5);
  14. end;
  15. var
  16. console: IPTCConsole;
  17. format: IPTCFormat;
  18. key: IPTCKeyEvent;
  19. Done: Boolean;
  20. begin
  21. try
  22. try
  23. { create console }
  24. console := TPTCConsoleFactory.CreateNew;
  25. { enable key release events }
  26. console.KeyReleaseEnabled := True;
  27. { create format }
  28. format := TPTCFormatFactory.CreateNew(32, $00FF0000, $0000FF00, $000000FF);
  29. { open the console }
  30. console.open('Keyboard example 3', format);
  31. { main loop }
  32. Done := False;
  33. repeat
  34. { check for key press/release }
  35. while console.KeyPressed do
  36. begin
  37. console.ReadKey(key);
  38. case key.code of
  39. PTCKEY_ESCAPE:
  40. begin
  41. Done := True;
  42. Break;
  43. end;
  44. else
  45. DumpKey(key);
  46. end;
  47. end;
  48. { update console }
  49. console.update;
  50. until Done;
  51. finally
  52. if Assigned(console) then
  53. console.close;
  54. end;
  55. except
  56. on error: TPTCError do
  57. { report error }
  58. error.report;
  59. end;
  60. end.