templates.lpr 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. program templates;
  2. {$mode objfpc}
  3. uses
  4. browserconsole, JS, Classes, SysUtils, Web, Rtl.TemplateLoader, browserapp;
  5. TYpe
  6. { TMyApp }
  7. TMyApp = Class(TBrowserApplication)
  8. FLoader : TTemplateLoader;
  9. procedure DoRUn; override;
  10. private
  11. procedure DoGlobalFail(Sender: TObject; const aTemplate, aError: String; aErrorcode: Integer);
  12. procedure DoGlobalLoaded(Sender: TObject; const aTemplate: String);
  13. procedure DoLocalFail(Sender: TObject; const aTemplate, aError: String; aErrorcode: Integer);
  14. procedure DoLocalLoaded(Sender: TObject; const aTemplate: String);
  15. end;
  16. { TMyApp }
  17. procedure TMyApp.DoRUn;
  18. begin
  19. FLoader:=TTemplateLoader.Create(Self);
  20. FLoader.OnLoad:=@DoGlobalLoaded;
  21. FLoader.OnLoadFail:=@DoGlobalFail;
  22. Floader.BaseURL:='templates/';
  23. FLoader.LoadTemplate('this','this.txt');
  24. FLoader.LoadTemplate('thistoo','thistoo.txt',@DoLocalLoaded,@DoLocalFail);
  25. FLoader.LoadTemplate('thisnot','thisnot.txt',@DoLocalLoaded,@DoLocalFail);
  26. FLoader.LoadTemplates(['one','this.txt','two','thistoo.txt','threenot','thisalsonot.txt'],@DoLocalLoaded,@DoLocalFail);
  27. end;
  28. procedure TMyApp.DoGlobalFail(Sender: TObject; const aTemplate, aError: String; aErrorcode: Integer);
  29. begin
  30. Writeln('GLobal fail load for : ',aTemplate,' Error: ',aError,' Code : ',aErrorCode);
  31. end;
  32. procedure TMyApp.DoGlobalLoaded(Sender: TObject; const aTemplate: String);
  33. begin
  34. Writeln('GLobal load OK: ',aTemplate,' Template text ',Floader.Templates[aTemplate]);
  35. end;
  36. procedure TMyApp.DoLocalFail(Sender: TObject; const aTemplate, aError: String; aErrorcode: Integer);
  37. begin
  38. Writeln('Local fail load for : ',aTemplate,' Error: ',aError,' Code : ',aErrorCode);
  39. end;
  40. procedure TMyApp.DoLocalLoaded(Sender: TObject; const aTemplate: String);
  41. begin
  42. Writeln('Local load OK: ',aTemplate,' Template text ',Floader.Templates[aTemplate]);
  43. end;
  44. begin
  45. With TMyApp.Create(Nil) do
  46. begin
  47. Initialize;
  48. run;
  49. end;
  50. end.