testapp.pp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. {$mode objfpc}
  2. {$h+}
  3. program testapp;
  4. uses custapp,classes;
  5. Const
  6. ShortOpts = 'iabc:d:012';
  7. Longopts : Array[1..7] of String = (
  8. 'insensitive','add:','append','delete:','verbose','create:','file:');
  9. Type
  10. TTestApp = Class(TCustomApplication)
  11. Procedure DoRun ; Override;
  12. end;
  13. Procedure TTestApp.DoRun;
  14. Var
  15. I : Integer;
  16. S : String;
  17. Opts,FN,Args : TStrings;
  18. begin
  19. CaseSensitiveOptions:=not HasOption('i','insensitive');
  20. Writeln('Exe name : ',ExeName);
  21. Writeln('Help file : ',HelpFile);
  22. Writeln('Terminated : ',Terminated);
  23. Writeln('Title : ',Title);
  24. Writeln('Console app : ',ConsoleApplication);
  25. Writeln('Location : ',Location);
  26. Writeln('ParamCount : ',ParamCount);
  27. For I:=0 to ParamCount do
  28. Writeln('Params [',I:3,'] : ',Params[i]);
  29. Writeln('Option char : ',OptionChar);
  30. Writeln('Case sensitive opts : ',CaseSensitiveOptions);
  31. Writeln('StopOnException : ',StopOnException);
  32. Writeln('----------------------------------------');
  33. Writeln('Simple options check');
  34. S:=CheckOptions(ShortOpts,LongOpts);
  35. If (S<>'') then
  36. Writeln(S);
  37. Writeln('Longer options check');
  38. Opts:=TstringList.Create;
  39. FN:=TStringList.Create;
  40. Args:=TStringList.Create;
  41. Try
  42. For I:=1 to 6 do
  43. Opts.Add(LongOpts[i]);
  44. S:=CheckOptions(ShortOpts,Opts,Args,FN);
  45. Writeln('Found ',Args.Count,' options and ',FN.Count,' non-options (filenames)');
  46. For I:=0 to Args.Count-1 do
  47. Writeln('Option ',I:2,': ',Args[i]);
  48. For I:=0 to FN.Count-1 do
  49. Writeln('Non-Option ',I:2,': ',FN[i]);
  50. Writeln('Getting option value "add"');
  51. S:=GetOptionValue('add');
  52. Writeln('Value for "add": ',S);
  53. Writeln('Testing Hasoption "a"');
  54. Writeln('Option append found: ',HasOption('append'));
  55. Writeln('Option a or append found: ',HasOption('a','append'));
  56. Writeln('-----------------------');
  57. Opts.Clear;
  58. GetEnvironmentList(Opts,True);
  59. Writeln('Found ',Opts.Count,' environment variables');
  60. For I:=0 to Opts.Count-1 do
  61. Writeln(I:3,': ',Opts[i],' with value "',EnvironmentVariable[Opts[i]],'"');
  62. Finally
  63. Opts.Free;
  64. FN.Free;
  65. Args.Free;
  66. end;
  67. Terminate;
  68. Writeln('-------------------------');
  69. Writeln('After terminate, "terminated" is ',Terminated);
  70. end;
  71. Var
  72. App : TTestApp;
  73. begin
  74. App:=TTestApp.Create(Nil);
  75. App.Initialize;
  76. App.Title:='CustomApplication class test application.';
  77. App.Run;
  78. App.Free;
  79. end.