QuickConsoleMenu.dpr 1.4 KB

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