testapp.pp 2.4 KB

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