2
0

Parameters.dpr 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. program Parameters;
  2. {$APPTYPE CONSOLE}
  3. {$R *.res}
  4. uses
  5. System.SysUtils,
  6. Quick.Commons,
  7. Quick.Console,
  8. Quick.Parameters;
  9. type
  10. TCommand = (Copy, Move, Remove);
  11. TMyMode = (mdAdd, mdSelect, mdRemove);
  12. [CommandDescription('Simple console application example with Quick.Parameters')]
  13. TMyParameter = class(TParameters)
  14. private
  15. fCommand : TCommand;
  16. fHost : string;
  17. fPort : Integer;
  18. fRetries : Integer;
  19. fUseTCP : Boolean;
  20. fConfigFile: string;
  21. fSilent: Boolean;
  22. fMyMode: TMyMode;
  23. fLogErrorsConsole: Boolean;
  24. fLogErrors: Boolean;
  25. fShowReport: Boolean;
  26. published
  27. [ParamCommand(1)]
  28. [ParamRequired]
  29. [ParamHelp('Command action.','command-action')]
  30. property Command : TCommand read fCommand write fCommand;
  31. [ParamName('HostName'),ParamRequired]
  32. [ParamHelp('Define host to connect.','host')]
  33. property Host : string read fHost write fHost;
  34. [ParamName('Port','p')]
  35. [ParamValueIsNextParam]
  36. [ParamHelp('Define Port to connect (default 80)','port')]
  37. property Port : Integer read fPort write fPort;
  38. [ParamHelp('Number of max retries.')]
  39. property Retries : Integer read fRetries write fRetries;
  40. [ParamHelp('Path to config.','path')]
  41. [ParamName('Config-file')]
  42. property ConfigFile : String read fConfigFile write fConfigFile;
  43. [ParamHelp('Use TCP connection if present.')]
  44. property UseTCP : Boolean read fUseTCP write fUseTCP;
  45. [ParamHelp('Silent mode.')]
  46. property Silent : Boolean read fSilent write fSilent;
  47. [ParamHelp('Modes (mdAdd, mdSelect, mdRemove)')]
  48. property Mode : TMyMode read fMyMode write fMyMode;
  49. [ParamHelp('Show report on finish.')]
  50. property ShowReport : Boolean read fShowReport write fShowReport;
  51. [ParamHelp('Log errors to file.')]
  52. [ParamName('LogErrors-to-file')]
  53. property LogErrorsFile : Boolean read fLogErrors write fLogErrors;
  54. [ParamHelp('Log errors to console.')]
  55. [ParamName('LogErrors-to-console')]
  56. property LogErrorsConsole : Boolean read fLogErrorsConsole write fLogErrorsConsole;
  57. end;
  58. var
  59. params : TMyParameter;
  60. begin
  61. try
  62. params := TMyParameter.Create;
  63. if params.Help then Exit;
  64. coutFmt('Command = %d',[Integer(params.Command)],etInfo);
  65. coutFmt('Host = %s',[params.Host],etInfo);
  66. coutFmt('Port = %d',[params.Port],etInfo);
  67. coutFmt('Retries = %d',[params.Retries],etInfo);
  68. coutFmt('Config-File = %s',[params.ConfigFile],etInfo);
  69. coutFmt('Mode = %d',[Integer(params.Mode)],etInfo);
  70. if params.UseTCP then cout('Use tcp detected',ccYellow);
  71. if params.Silent then cout('Silent mode detected',ccYellow);
  72. if params.ShowReport then cout('ShowReport detected',ccYellow);
  73. if params.LogErrorsFile then cout('LogErrorsFile detected',ccYellow);
  74. if params.LogErrorsConsole then cout('LogErrorsConsole detected',ccYellow);
  75. cout('Press <ENTER> to Exit',ccYellow);
  76. ConsoleWaitForEnterKey;
  77. except
  78. on E: Exception do
  79. begin
  80. cout('%s : %s',[E.ClassName,e.Message],etError);
  81. cout('Type "Parameters --help" to get documentation',ccYellow);
  82. end;
  83. end;
  84. end.