QuickConsoleMenu.dpr 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. program QuickConsoleMenu;
  2. {$APPTYPE CONSOLE}
  3. {$IFDEF FPC}
  4. {$MODE DELPHI}
  5. {$ENDIF}
  6. {$R *.res}
  7. uses
  8. SysUtils,
  9. Windows,
  10. Quick.Commons,
  11. Quick.Console;
  12. type
  13. TTest = class
  14. class procedure Option1;
  15. class procedure Option2;
  16. class procedure Option3;
  17. class procedure Option4;
  18. class procedure Option5;
  19. end;
  20. var
  21. conmenu : TConsoleMenu;
  22. Test : TTest;
  23. menuop : TConsoleMenuOption;
  24. i : Integer;
  25. { TTest }
  26. class procedure TTest.Option1;
  27. begin
  28. coutXY(10,10,'Option 1 pressed',etInfo);
  29. end;
  30. class procedure TTest.Option2;
  31. begin
  32. coutXY(10,10,'Option 2 pressed',etInfo);
  33. end;
  34. class procedure TTest.Option3;
  35. begin
  36. coutXY(10,10,'Option 3 pressed',etInfo);
  37. end;
  38. class procedure TTest.Option4;
  39. begin
  40. coutXY(10,10,'Option 4 pressed',etInfo);
  41. end;
  42. class procedure TTest.Option5;
  43. begin
  44. coutXY(10,10,'Option 5 pressed',etInfo);
  45. end;
  46. begin
  47. try
  48. conmenu := TConsoleMenu.Create;
  49. menuop.Caption := 'Option 1';
  50. menuop.Key := VK_F1;
  51. menuop.OnKeyPressed := Test.Option1;
  52. conmenu.AddMenu(menuop);
  53. conmenu.AddMenu('Option 2',VK_F2,Test.Option2);
  54. conmenu.AddMenu('Option 3',VK_F3,Test.Option3);
  55. conmenu.AddMenu('Option 4',VK_F4,Test.Option4);
  56. conmenu.AddMenu('Option 5',VK_F5,{$IFDEF FPC}Test.Option5);{$ELSE}procedure
  57. begin
  58. coutXY(10,10,'Option 5 pressed',etInfo);
  59. end);
  60. {$ENDIF}
  61. for i := 0 to 30 do writeln('hola que tal');
  62. conmenu.WaitForKeys;
  63. conmenu.Free;
  64. except
  65. on E: Exception do
  66. Writeln(E.ClassName, ': ', E.Message);
  67. end;
  68. end.