tevent.pp 867 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. program test_event;
  2. {$MODE OBJFPC}
  3. uses
  4. ncurses, sysutils;
  5. var
  6. ch: chtype;
  7. begin
  8. try
  9. initscr();
  10. noecho();
  11. clear();
  12. cbreak();
  13. keypad(stdscr, TRUE);
  14. meta(stdscr, TRUE);
  15. mousemask(1, nil);
  16. mvaddstr(1, 1,'press F10 or q to exit');
  17. mvaddstr(2, 1,'press 1 to cbreak mode');
  18. mvaddstr(3, 1,'press 2 to raw mode');
  19. mvaddstr(4, 1,'press 3 to halfdelay(10) mode');
  20. repeat
  21. ch := getch;
  22. mvaddstr(LINES - 1, 1,' ');
  23. case ch of
  24. ERR: mvaddstr(LINES - 1, 1,'timeout: 1 sec');
  25. chtype('1'): cbreak();
  26. chtype('2'): raw();
  27. chtype('3'): halfdelay(10);
  28. else
  29. mvaddstr(LINES - 1, 1,PChar(Format('name:%-14s code:%d', [ keyname(ch), ch ] )));
  30. end;
  31. until (ch = chtype('q')) OR (ch = KEY_F(10));
  32. finally
  33. endwin();
  34. end;
  35. end.