123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- program demohtmlfragment;
- {$mode objfpc}
- uses
- browserapp, JS, Classes, SysUtils, Web, htmlfragment;
- type
- TMyHTMLFragment = Class(THTMLFragment)
- end;
- { TMyApplication }
- TMyApplication = class(TBrowserApplication)
- FFragment : TMyHTMLFragment;
- FBtnShow : TJSHTMLButtonElement;
- FBtnHide : TJSHTMLButtonElement;
- procedure doRun; override;
- private
- procedure BindElements;
- procedure CreateFragment;
- function DoHideClick(aEvent: TJSMouseEvent): boolean;
- procedure DoHTMLLoaded(Sender: TObject);
- procedure DoRendered(Sender: TObject);
- function DoShowClick(aEvent: TJSMouseEvent): boolean;
- procedure DoUnRendered(Sender: TObject);
- end;
- procedure TMyApplication.BindElements;
- begin
- FBtnShow:=TJSHTMLButtonElement(GetHTMLElement('btnShow'));
- FBtnShow.OnClick:=@DoShowClick;
- FBtnHide:=TJSHTMLButtonElement(GetHTMLElement('btnHide'));
- FBtnHide.OnClick:=@DoHideClick;
- end;
- Procedure TMyApplication.CreateFragment;
- begin
- FFragment:=TMyHTMLFragment.CreateNew(Self);
- FFragment.Name:='login';
- FFragment.ParentID:='form-parent';
- FFragment.HTMLFileName:='login.html';
- FFragment.OnHTMLLoaded:=@DoHTMLLoaded;
- FFragment.OnRendered:=@DoRendered;
- FFragment.OnUnRendered:=@DoUnRendered;
- end;
- function TMyApplication.DoHideClick(aEvent: TJSMouseEvent): boolean;
- begin
- FFragment.Hide;
- end;
- procedure TMyApplication.DoHTMLLoaded(Sender: TObject);
- begin
- FBtnShow.classList.Remove('is-primary');
- FBtnShow.classList.Add('is-info');
- end;
- procedure TMyApplication.DoRendered(Sender: TObject);
- begin
- FbtnShow.disabled:=True;
- FbtnHide.disabled:=False;
- end;
- function TMyApplication.DoShowClick(aEvent: TJSMouseEvent): boolean;
- begin
- if not Assigned(FFragment) then
- CreateFragment;
- FFragment.Show;
- end;
- procedure TMyApplication.DoUnRendered(Sender: TObject);
- begin
- FbtnShow.disabled:=False;
- FbtnHide.disabled:=True;
- end;
- procedure TMyApplication.doRun;
- begin
- Terminate;
- BindElements;
- end;
- var
- Application : TMyApplication;
- begin
- Application:=TMyApplication.Create(nil);
- Application.Initialize;
- Application.Run;
- end.
|