unit fbrowser;
{$mode delphi}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs,
uWVBrowser, uWVWindowParent, uWVLoader, uWVBrowserBase, uWVTypes, uWVEvents,
Messages;
type
{ TfrBrowser }
TfrBrowser = class(TForm)
WVBrowser1: TWVBrowser;
WVWindowParent1: TWVWindowParent;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormResize(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure WVBrowser1AfterCreated(Sender: TObject);
private
FTextContent: string;
procedure setBrowserContent(AValue: string);
procedure Initialize;
public
property HTMLText : string write setBrowserContent;
constructor Create(AnOwner:TComponent; TextContent: string);
protected
procedure WMMove(var aMessage: TWMMove); message WM_MOVE;
procedure WMMoving(var aMessage: TMessage); message WM_MOVING;
end;
var
frBrowser: TfrBrowser;
implementation
{$R *.lfm}
procedure TfrBrowser.WVBrowser1AfterCreated(Sender: TObject);
begin
WVWindowParent1.UpdateSize;
Caption := 'View responses';
end;
procedure TfrBrowser.setBrowserContent(AValue: string);
begin
WVBrowser1.NavigateToString(UTF8Decode(AValue));
end;
procedure TfrBrowser.Initialize;
begin
if GlobalWebView2Loader.InitializationError then
showmessage(UTF8Encode(GlobalWebView2Loader.ErrorMessage))
else
if GlobalWebView2Loader.Initialized then begin
WVBrowser1.CreateBrowser(WVWindowParent1.Handle);
end
else begin
showmessage('initialization failed');
exit;
end;
end;
constructor TfrBrowser.Create(AnOwner: TComponent; TextContent: string);
begin
inherited Create(AnOwner);
FTextContent := TextContent;
end;
procedure TfrBrowser.FormShow(Sender: TObject);
begin
if GlobalWebView2Loader.InitializationError then
showmessage(UTF8Encode(GlobalWebView2Loader.ErrorMessage))
else
if GlobalWebView2Loader.Initialized then begin
WVBrowser1.CreateBrowser(WVWindowParent1.Handle);
end
else begin
showmessage('initialization failed');
exit;
end;
end;
procedure TfrBrowser.FormResize(Sender: TObject);
begin
WVBrowser1.NavigateToString(fTextContent);
end;
procedure TfrBrowser.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
CloseAction := caFree;
end;
procedure TfrBrowser.WMMove(var aMessage : TWMMove);
begin
inherited;
if (WVBrowser1 <> nil) then
WVBrowser1.NotifyParentWindowPositionChanged;
end;
procedure TfrBrowser.WMMoving(var aMessage : TMessage);
begin
inherited;
if (WVBrowser1 <> nil) then
WVBrowser1.NotifyParentWindowPositionChanged;
end;
initialization
GlobalWebView2Loader := TWVLoader.Create(nil);
GlobalWebView2Loader.UserDataFolder := UTF8Decode(ExtractFileDir(Application.ExeName) + '\CustomCache');
GlobalWebView2Loader.StartWebView2;
end.