htmlutilsdemo.lpr 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. program htmlutilsdemo;
  2. {$mode objfpc}
  3. {$linklib ./htmlutils.js utils}
  4. {$modeswitch externalclass}
  5. uses
  6. JS, Web;
  7. type
  8. THTMLUtils = class external name 'Object' (TJSObject)
  9. Public
  10. DefaultClearID : String;
  11. Procedure SetPageTitle(aTitle : String);
  12. Procedure ClearPage(aBelowID : String);
  13. end;
  14. Function CreateUtils : THTMLUtils; external name 'utils.CreateUtils';
  15. Var
  16. BtnSetTitle,BtnClear : TJSHTMLButtonElement;
  17. edtTitle,edtBelowID,cbUseDefaultClearID : TJSHTMLInputElement;
  18. UtilsObj : THTMLUtils;
  19. function DoSetTitle(aEvent: TJSMouseEvent): boolean;
  20. begin
  21. Result:=False;
  22. UtilsObj.SetPageTitle(edtTitle.Value);
  23. end;
  24. function DoClear(aEvent: TJSMouseEvent): boolean;
  25. begin
  26. Result:=False;
  27. if cbUseDefaultClearID.Checked then
  28. begin
  29. UtilsObj.DefaultClearID:=edtBelowID.value;
  30. UtilsObj.ClearPage('');
  31. end
  32. else
  33. begin
  34. UtilsObj.DefaultClearID:='';
  35. UtilsObj.ClearPage(edtBelowID.value);
  36. end;
  37. end;
  38. Procedure BindElements;
  39. begin
  40. TJSElement(BtnSetTitle):=Document.getElementById('btnSetTitle');
  41. BtnSetTitle.OnClick:=@DoSetTitle;
  42. TJSElement(BtnClear):=Document.getElementById('btnClear');
  43. BtnClear.onclick:=@DoClear;
  44. TJSElement(edtTitle):=Document.getElementById('edtTitle');
  45. TJSElement(edtBelowID):=Document.getElementById('edtBelowID');
  46. TJSElement(cbUseDefaultClearID):=Document.getElementById('cbUseDefaultClearID');
  47. end;
  48. begin
  49. UtilsObj:=CreateUtils;
  50. BindElements;
  51. end.