ProgParams.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include <Common.h>
  5. #include "ProgParams.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. //---------------------------------------------------------------------------
  9. // auto_ptr-like class
  10. class TProgramParamsOwner
  11. {
  12. public:
  13. TProgramParamsOwner() :
  14. FProgramParams(NULL)
  15. {
  16. }
  17. ~TProgramParamsOwner()
  18. {
  19. delete FProgramParams;
  20. }
  21. TProgramParams * Get()
  22. {
  23. if (FProgramParams == NULL)
  24. {
  25. FProgramParams = new TProgramParams();
  26. }
  27. return FProgramParams;
  28. }
  29. private:
  30. TProgramParams * FProgramParams;
  31. };
  32. //---------------------------------------------------------------------------
  33. TProgramParamsOwner ProgramParamsOwner;
  34. //---------------------------------------------------------------------------
  35. TProgramParams * __fastcall TProgramParams::Instance()
  36. {
  37. return ProgramParamsOwner.Get();
  38. }
  39. //---------------------------------------------------------------------------
  40. TProgramParams::TProgramParams()
  41. {
  42. UnicodeString CommandLine = CmdLine;
  43. UnicodeString Param;
  44. CutToken(CommandLine, Param);
  45. while (CutToken(CommandLine, Param))
  46. {
  47. Add(Param);
  48. }
  49. }