1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-04-07 06:50:04 +02:00

TChromium.OnClose parameter changed

- Fixed initialization issue in FMXExternalPumpBrowser
This commit is contained in:
Salvador Díaz Fau 2019-03-28 10:40:36 +01:00
parent bfc69072bf
commit 0ae96d07d5
63 changed files with 242 additions and 211 deletions

View File

@ -45,7 +45,6 @@ object WebBrowserFrm: TWebBrowserFrm
OnBeforePopup = chrmosrBeforePopup OnBeforePopup = chrmosrBeforePopup
OnAfterCreated = chrmosrAfterCreated OnAfterCreated = chrmosrAfterCreated
OnBeforeClose = chrmosrBeforeClose OnBeforeClose = chrmosrBeforeClose
OnClose = chrmosrClose
OnGetViewRect = chrmosrGetViewRect OnGetViewRect = chrmosrGetViewRect
OnGetScreenPoint = chrmosrGetScreenPoint OnGetScreenPoint = chrmosrGetScreenPoint
OnGetScreenInfo = chrmosrGetScreenInfo OnGetScreenInfo = chrmosrGetScreenInfo

View File

@ -89,7 +89,6 @@ type
procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure SnapshotBtnClick(Sender: TObject); procedure SnapshotBtnClick(Sender: TObject);
@ -301,13 +300,6 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TWebBrowserFrm.chrmosrClose( Sender : TObject;
const browser : ICefBrowser;
out Result : Boolean);
begin
Result := False;
end;
procedure TWebBrowserFrm.chrmosrCursorChange( Sender : TObject; procedure TWebBrowserFrm.chrmosrCursorChange( Sender : TObject;
const browser : ICefBrowser; const browser : ICefBrowser;
cursor : HICON; cursor : HICON;

View File

@ -92,7 +92,7 @@ type
var noJavascriptAccess: Boolean; var Result: Boolean); var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
@ -254,10 +254,10 @@ begin
end; end;
procedure TCookieVisitorFrm.Chromium1Close(Sender: TObject; procedure TCookieVisitorFrm.Chromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TCookieVisitorFrm.Chromium1ContextMenuCommand(Sender: TObject; procedure TCookieVisitorFrm.Chromium1ContextMenuCommand(Sender: TObject;

View File

@ -102,7 +102,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
private private
@ -342,10 +342,10 @@ begin
end; end;
procedure TDOMVisitorFrm.Chromium1Close(Sender: TObject; procedure TDOMVisitorFrm.Chromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TDOMVisitorFrm.Chromium1ContextMenuCommand(Sender: TObject; procedure TDOMVisitorFrm.Chromium1ContextMenuCommand(Sender: TObject;

View File

@ -49,7 +49,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFTypes, uCEFConstants, uCEFInterfaces, uCEFWorkScheduler; uCEFChromium, uCEFWindowParent, uCEFTypes, uCEFConstants, uCEFInterfaces, uCEFWorkScheduler,
uCEFWinControl;
type type
TExternalPumpBrowserFrm = class(TForm) TExternalPumpBrowserFrm = class(TForm)
@ -68,7 +69,7 @@ type
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1BeforePopup(Sender: TObject; procedure Chromium1BeforePopup(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
@ -177,10 +178,10 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TExternalPumpBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TExternalPumpBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TExternalPumpBrowserFrm.BrowserCreatedMsg(var aMessage : TMessage); procedure TExternalPumpBrowserFrm.BrowserCreatedMsg(var aMessage : TMessage);

View File

@ -198,6 +198,12 @@ begin
if not(Application.Terminated) and if not(Application.Terminated) and
(GlobalFMXWorkScheduler <> nil) then (GlobalFMXWorkScheduler <> nil) then
GlobalFMXWorkScheduler.ScheduleWork(TempMsg.lParam); GlobalFMXWorkScheduler.ScheduleWork(TempMsg.lParam);
CEF_AFTERCREATED :
if not(Application.Terminated) and
(Application.MainForm <> nil) and
(Application.MainForm is TFMXExternalPumpBrowserFrm) then
TFMXExternalPumpBrowserFrm(Application.MainForm).DoBrowserCreated;
end; end;
{$ENDIF} {$ENDIF}

View File

@ -107,8 +107,8 @@ object FMXExternalPumpBrowserFrm: TFMXExternalPumpBrowserFrm
object chrmosr: TFMXChromium object chrmosr: TFMXChromium
OnTooltip = chrmosrTooltip OnTooltip = chrmosrTooltip
OnBeforePopup = chrmosrBeforePopup OnBeforePopup = chrmosrBeforePopup
OnAfterCreated = chrmosrAfterCreated
OnBeforeClose = chrmosrBeforeClose OnBeforeClose = chrmosrBeforeClose
OnClose = chrmosrClose
OnGetViewRect = chrmosrGetViewRect OnGetViewRect = chrmosrGetViewRect
OnGetScreenPoint = chrmosrGetScreenPoint OnGetScreenPoint = chrmosrGetScreenPoint
OnGetScreenInfo = chrmosrGetScreenInfo OnGetScreenInfo = chrmosrGetScreenInfo

View File

@ -94,10 +94,10 @@ type
procedure chrmosrGetScreenInfo(Sender: TObject; const browser: ICefBrowser; var screenInfo: TCefScreenInfo; out Result: Boolean); procedure chrmosrGetScreenInfo(Sender: TObject; const browser: ICefBrowser; var screenInfo: TCefScreenInfo; out Result: Boolean);
procedure chrmosrPopupShow(Sender: TObject; const browser: ICefBrowser; show: Boolean); procedure chrmosrPopupShow(Sender: TObject; const browser: ICefBrowser; show: Boolean);
procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect); procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect);
procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Timer1Timer(Sender: TObject); procedure Timer1Timer(Sender: TObject);
procedure AddressEdtEnter(Sender: TObject); procedure AddressEdtEnter(Sender: TObject);
@ -237,7 +237,7 @@ end;
procedure TFMXExternalPumpBrowserFrm.FormDestroy(Sender: TObject); procedure TFMXExternalPumpBrowserFrm.FormDestroy(Sender: TObject);
begin begin
fResizeCS.Free; FResizeCS.Free;
if (FPopUpBitmap <> nil) then FreeAndNil(FPopUpBitmap); if (FPopUpBitmap <> nil) then FreeAndNil(FPopUpBitmap);
end; end;
@ -258,12 +258,8 @@ begin
begin begin
// opaque white background color // opaque white background color
chrmosr.Options.BackgroundColor := CefColorSetARGB($FF, $FF, $FF, $FF); chrmosr.Options.BackgroundColor := CefColorSetARGB($FF, $FF, $FF, $FF);
chrmosr.DefaultUrl := AddressEdt.Text;
if chrmosr.CreateBrowser then if not(chrmosr.CreateBrowser) then Timer1.Enabled := True;
DoBrowserCreated
else
Timer1.Enabled := True;
end; end;
end; end;
@ -484,11 +480,8 @@ procedure TFMXExternalPumpBrowserFrm.Timer1Timer(Sender: TObject);
begin begin
Timer1.Enabled := False; Timer1.Enabled := False;
if chrmosr.CreateBrowser then if not(chrmosr.CreateBrowser) and not(chrmosr.Initialized) then
DoBrowserCreated Timer1.Enabled := True;
else
if not(chrmosr.Initialized) then
Timer1.Enabled := True;
end; end;
procedure TFMXExternalPumpBrowserFrm.AddressEdtEnter(Sender: TObject); procedure TFMXExternalPumpBrowserFrm.AddressEdtEnter(Sender: TObject);
@ -496,6 +489,14 @@ begin
chrmosr.SendFocusEvent(False); chrmosr.SendFocusEvent(False);
end; end;
procedure TFMXExternalPumpBrowserFrm.chrmosrAfterCreated(Sender: TObject;
const browser: ICefBrowser);
begin
// Now the browser is fully initialized we can send a message to the
// main form to load the initial web page.
SendCompMessage(CEF_AFTERCREATED);
end;
procedure TFMXExternalPumpBrowserFrm.chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure TFMXExternalPumpBrowserFrm.chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
begin begin
FCanClose := True; FCanClose := True;
@ -520,11 +521,6 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TFMXExternalPumpBrowserFrm.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
begin
Result := False;
end;
procedure TFMXExternalPumpBrowserFrm.chrmosrCursorChange(Sender : TObject; procedure TFMXExternalPumpBrowserFrm.chrmosrCursorChange(Sender : TObject;
const browser : ICefBrowser; const browser : ICefBrowser;
cursor : HICON; cursor : HICON;
@ -864,6 +860,7 @@ begin
Caption := 'FMX External Pump Browser'; Caption := 'FMX External Pump Browser';
AddressPnl.Enabled := True; AddressPnl.Enabled := True;
Panel1.SetFocus; Panel1.SetFocus;
LoadURL;
end; end;
function TFMXExternalPumpBrowserFrm.getModifiers(Shift: TShiftState): TCefEventFlags; function TFMXExternalPumpBrowserFrm.getModifiers(Shift: TShiftState): TCefEventFlags;

View File

@ -5,7 +5,7 @@
<FrameworkType>FMX</FrameworkType> <FrameworkType>FMX</FrameworkType>
<MainSource>FMXToolBoxBrowser.dpr</MainSource> <MainSource>FMXToolBoxBrowser.dpr</MainSource>
<Base>True</Base> <Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config> <Config Condition="'$(Config)'==''">Release</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform> <Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>3</TargetedPlatforms> <TargetedPlatforms>3</TargetedPlatforms>
<AppType>Application</AppType> <AppType>Application</AppType>

View File

@ -60,7 +60,7 @@ type
procedure FMXChromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess, Result: Boolean); procedure FMXChromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess, Result: Boolean);
procedure FMXChromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure FMXChromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
protected protected
// Variables to control when can we destroy the form safely // Variables to control when can we destroy the form safely
@ -157,10 +157,10 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TChildForm.FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TChildForm.FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostCustomMessage(CEF_DESTROY, 0, BrowserID); PostCustomMessage(CEF_DESTROY, 0, BrowserID);
Result := True; aAction := cbaDelay;
end; end;
procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction); procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction);

View File

@ -49,7 +49,7 @@ uses
Controls, Forms, Dialogs, Controls, Forms, Dialogs,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFTypes, uCEFConstants, uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFTypes, uCEFConstants,
Vcl.ExtCtrls; Vcl.ExtCtrls, uCEFWinControl;
type type
TMainForm = class(TForm) TMainForm = class(TForm)
@ -78,7 +78,7 @@ type
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
private private
{ Private declarations } { Private declarations }
protected protected
@ -170,10 +170,10 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TMainForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TMainForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TMainForm.BrowserCreatedMsg(var aMessage : TMessage); procedure TMainForm.BrowserCreatedMsg(var aMessage : TMessage);

View File

@ -98,7 +98,7 @@ type
var noJavascriptAccess: Boolean; var Result: Boolean); var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
@ -216,10 +216,10 @@ begin
end; end;
procedure TJSEvalFrm.Chromium1Close(Sender: TObject; procedure TJSEvalFrm.Chromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSEvalFrm.Chromium1ContextMenuCommand(Sender : TObject; procedure TJSEvalFrm.Chromium1ContextMenuCommand(Sender : TObject;

View File

@ -50,7 +50,7 @@ uses
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes,
uCEFConstants, uCEFv8Value; uCEFConstants, uCEFv8Value, uCEFWinControl;
const const
JSDEMO_CONTEXTMENU_EXECFUNCTION = MENU_ID_USER_FIRST + 1; JSDEMO_CONTEXTMENU_EXECFUNCTION = MENU_ID_USER_FIRST + 1;
@ -87,7 +87,7 @@ type
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -211,10 +211,10 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TJSExecutingFunctionsFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TJSExecutingFunctionsFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSExecutingFunctionsFrm.Chromium1ContextMenuCommand( procedure TJSExecutingFunctionsFrm.Chromium1ContextMenuCommand(

View File

@ -49,7 +49,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
uCEFWinControl;
const const
MINIBROWSER_SHOWTEXTVIEWER = WM_APP + $100; MINIBROWSER_SHOWTEXTVIEWER = WM_APP + $100;
@ -93,7 +94,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -261,10 +262,10 @@ begin
end; end;
procedure TJSExtensionFrm.Chromium1Close(Sender: TObject; procedure TJSExtensionFrm.Chromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSExtensionFrm.Chromium1ContextMenuCommand(Sender: TObject; procedure TJSExtensionFrm.Chromium1ContextMenuCommand(Sender: TObject;

View File

@ -49,7 +49,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
uCEFWinControl;
type type
TJSExtensionWithFunctionFrm = class(TForm) TJSExtensionWithFunctionFrm = class(TForm)
@ -77,7 +78,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -178,10 +179,10 @@ begin
end; end;
procedure TJSExtensionWithFunctionFrm.Chromium1Close(Sender: TObject; procedure TJSExtensionWithFunctionFrm.Chromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSExtensionWithFunctionFrm.Chromium1ProcessMessageReceived( procedure TJSExtensionWithFunctionFrm.Chromium1ProcessMessageReceived(

View File

@ -49,7 +49,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
uCEFWinControl;
type type
TJSExtensionWithObjectParameterFrm = class(TForm) TJSExtensionWithObjectParameterFrm = class(TForm)
@ -73,7 +74,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -181,10 +182,10 @@ begin
end; end;
procedure TJSExtensionWithObjectParameterFrm.Chromium1Close( procedure TJSExtensionWithObjectParameterFrm.Chromium1Close(
Sender: TObject; const browser: ICefBrowser; out Result: Boolean); Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSExtensionWithObjectParameterFrm.FormCloseQuery( procedure TJSExtensionWithObjectParameterFrm.FormCloseQuery(

View File

@ -49,7 +49,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
uCEFWinControl;
type type
TJSSimpleExtensionFrm = class(TForm) TJSSimpleExtensionFrm = class(TForm)
@ -73,7 +74,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -218,10 +219,10 @@ begin
end; end;
procedure TJSSimpleExtensionFrm.Chromium1Close( procedure TJSSimpleExtensionFrm.Chromium1Close(
Sender: TObject; const browser: ICefBrowser; out Result: Boolean); Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSSimpleExtensionFrm.FormCloseQuery( procedure TJSSimpleExtensionFrm.FormCloseQuery(

View File

@ -50,7 +50,7 @@ uses
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes,
uCEFConstants, uCEFv8Value; uCEFConstants, uCEFv8Value, uCEFWinControl;
type type
TJSSimpleWindowBindingFrm = class(TForm) TJSSimpleWindowBindingFrm = class(TForm)
@ -74,7 +74,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -211,10 +211,10 @@ begin
end; end;
procedure TJSSimpleWindowBindingFrm.Chromium1Close( procedure TJSSimpleWindowBindingFrm.Chromium1Close(
Sender: TObject; const browser: ICefBrowser; out Result: Boolean); Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSSimpleWindowBindingFrm.FormCloseQuery( procedure TJSSimpleWindowBindingFrm.FormCloseQuery(

View File

@ -74,7 +74,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -192,10 +192,10 @@ begin
end; end;
procedure TJSSimpleWindowBindingFrm.Chromium1Close( procedure TJSSimpleWindowBindingFrm.Chromium1Close(
Sender: TObject; const browser: ICefBrowser; out Result: Boolean); Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSSimpleWindowBindingFrm.FormCloseQuery( procedure TJSSimpleWindowBindingFrm.FormCloseQuery(

View File

@ -49,7 +49,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
uCEFWinControl;
type type
TJSWindowBindingWithFunctionFrm = class(TForm) TJSWindowBindingWithFunctionFrm = class(TForm)
@ -73,7 +74,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -215,10 +216,10 @@ begin
end; end;
procedure TJSWindowBindingWithFunctionFrm.Chromium1Close( procedure TJSWindowBindingWithFunctionFrm.Chromium1Close(
Sender: TObject; const browser: ICefBrowser; out Result: Boolean); Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSWindowBindingWithFunctionFrm.FormCloseQuery( procedure TJSWindowBindingWithFunctionFrm.FormCloseQuery(

View File

@ -49,7 +49,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
uCEFWinControl;
type type
TJSWindowBindingWithObjectFrm = class(TForm) TJSWindowBindingWithObjectFrm = class(TForm)
@ -73,7 +74,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -216,10 +217,10 @@ begin
end; end;
procedure TJSWindowBindingWithObjectFrm.Chromium1Close( procedure TJSWindowBindingWithObjectFrm.Chromium1Close(
Sender: TObject; const browser: ICefBrowser; out Result: Boolean); Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TJSWindowBindingWithObjectFrm.FormCloseQuery( procedure TJSWindowBindingWithObjectFrm.FormCloseQuery(

View File

@ -57,7 +57,6 @@ object Form1: TForm1
OnTooltip = chrmosrTooltip OnTooltip = chrmosrTooltip
OnBeforePopup = chrmosrBeforePopup OnBeforePopup = chrmosrBeforePopup
OnBeforeClose = chrmosrBeforeClose OnBeforeClose = chrmosrBeforeClose
OnClose = chrmosrClose
OnGetViewRect = chrmosrGetViewRect OnGetViewRect = chrmosrGetViewRect
OnGetScreenPoint = chrmosrGetScreenPoint OnGetScreenPoint = chrmosrGetScreenPoint
OnGetScreenInfo = chrmosrGetScreenInfo OnGetScreenInfo = chrmosrGetScreenInfo

View File

@ -101,7 +101,6 @@ type
procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect); procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrBeforeContextMenu(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel); procedure chrmosrBeforeContextMenu(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel);
procedure chrmosrContextMenuCommand(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; commandId: Integer; eventFlags: Cardinal; out Result: Boolean); procedure chrmosrContextMenuCommand(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; commandId: Integer; eventFlags: Cardinal; out Result: Boolean);
@ -356,11 +355,6 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TForm1.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
begin
Result := False;
end;
procedure TForm1.chrmosrCursorChange( Sender : TObject; procedure TForm1.chrmosrCursorChange( Sender : TObject;
const browser : ICefBrowser; const browser : ICefBrowser;
cursor : HICON; cursor : HICON;

View File

@ -68,7 +68,7 @@ type
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
@ -143,10 +143,10 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0); PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0);
Result := False; aAction := cbaDelay;
end; end;
procedure TChildForm.Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean); procedure TChildForm.Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean);

View File

@ -50,7 +50,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Menus, Windows, Messages, SysUtils, Variants, Classes, Graphics, Menus,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Types, ComCtrls, ClipBrd, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Types, ComCtrls, ClipBrd,
{$ENDIF} {$ENDIF}
uMainForm, uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes; uMainForm, uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes,
uCEFWinControl;
type type
TChildForm = class(TForm) TChildForm = class(TForm)
@ -67,7 +68,7 @@ type
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
@ -142,10 +143,10 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0); PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0);
Result := False; aAction := cbaDelay;
end; end;
procedure TChildForm.Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean); procedure TChildForm.Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean);

View File

@ -65,9 +65,6 @@ begin
GlobalCEFApp.LogFile := 'debug.log'; GlobalCEFApp.LogFile := 'debug.log';
GlobalCEFApp.LogSeverity := LOGSEVERITY_INFO; GlobalCEFApp.LogSeverity := LOGSEVERITY_INFO;
GlobalCEFApp.EnableMediaStream := False;
GlobalCEFApp.EnableSpeechInput := False;
if GlobalCEFApp.StartMainProcess then if GlobalCEFApp.StartMainProcess then
begin begin
Application.Initialize; Application.Initialize;

View File

@ -141,6 +141,9 @@ object MiniBrowserFrm: TMiniBrowserFrm
'http://www.adobe.com/software/flash/about/' 'http://www.adobe.com/software/flash/about/'
'http://isflashinstalled.com/' 'http://isflashinstalled.com/'
'http://html5test.com/' 'http://html5test.com/'
'https://webrtc.github.io/samples/src/content/devices/input-outpu' +
't/'
'https://test.webrtc.org/' 'https://test.webrtc.org/'
'https://www.w3schools.com/' 'https://www.w3schools.com/'
'http://webglsamples.org/' 'http://webglsamples.org/'

View File

@ -195,7 +195,7 @@ type
out Result: TCefReturnValue); out Result: TCefReturnValue);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
procedure Chromium1RenderCompMsg(var aMessage : TMessage; var aHandled: Boolean); procedure Chromium1RenderCompMsg(var aMessage : TMessage; var aHandled: Boolean);
@ -437,15 +437,13 @@ begin
Result := False; Result := False;
end; end;
procedure TMiniBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TMiniBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
if (browser <> nil) and (Chromium1.BrowserId = browser.Identifier) then if (browser <> nil) and (Chromium1.BrowserId = browser.Identifier) then
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end end;
else
Result := False;
end; end;
procedure TMiniBrowserFrm.Chromium1ContextMenuCommand(Sender: TObject; procedure TMiniBrowserFrm.Chromium1ContextMenuCommand(Sender: TObject;

View File

@ -129,7 +129,6 @@ object OSRExternalPumpBrowserFrm: TOSRExternalPumpBrowserFrm
OnBeforePopup = chrmosrBeforePopup OnBeforePopup = chrmosrBeforePopup
OnAfterCreated = chrmosrAfterCreated OnAfterCreated = chrmosrAfterCreated
OnBeforeClose = chrmosrBeforeClose OnBeforeClose = chrmosrBeforeClose
OnClose = chrmosrClose
OnGetViewRect = chrmosrGetViewRect OnGetViewRect = chrmosrGetViewRect
OnGetScreenPoint = chrmosrGetScreenPoint OnGetScreenPoint = chrmosrGetScreenPoint
OnGetScreenInfo = chrmosrGetScreenInfo OnGetScreenInfo = chrmosrGetScreenInfo

View File

@ -97,7 +97,6 @@ type
procedure chrmosrPopupShow(Sender: TObject; const browser: ICefBrowser; show: Boolean); procedure chrmosrPopupShow(Sender: TObject; const browser: ICefBrowser; show: Boolean);
procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect); procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect);
procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
@ -343,11 +342,6 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TOSRExternalPumpBrowserFrm.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
begin
Result := False;
end;
procedure TOSRExternalPumpBrowserFrm.chrmosrCursorChange(Sender : TObject; procedure TOSRExternalPumpBrowserFrm.chrmosrCursorChange(Sender : TObject;
const browser : ICefBrowser; const browser : ICefBrowser;
cursor : HICON; cursor : HICON;

View File

@ -45,7 +45,6 @@ object ChildForm: TChildForm
OnTitleChange = Chromium1TitleChange OnTitleChange = Chromium1TitleChange
OnTooltip = Chromium1Tooltip OnTooltip = Chromium1Tooltip
OnBeforeClose = Chromium1BeforeClose OnBeforeClose = Chromium1BeforeClose
OnClose = Chromium1Close
OnGetViewRect = Chromium1GetViewRect OnGetViewRect = Chromium1GetViewRect
OnGetScreenPoint = Chromium1GetScreenPoint OnGetScreenPoint = Chromium1GetScreenPoint
OnGetScreenInfo = Chromium1GetScreenInfo OnGetScreenInfo = Chromium1GetScreenInfo

View File

@ -87,7 +87,6 @@ type
procedure Chromium1Tooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); procedure Chromium1Tooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; var popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; out Result: Boolean); procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; var popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; out Result: Boolean);
procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
protected protected
@ -355,11 +354,6 @@ begin
end; end;
end; end;
procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
begin
Result := False;
end;
procedure TChildForm.Chromium1CursorChange(Sender : TObject; procedure TChildForm.Chromium1CursorChange(Sender : TObject;
const browser : ICefBrowser; const browser : ICefBrowser;
cursor : HICON; cursor : HICON;

View File

@ -51,7 +51,7 @@ uses
Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFTypes, uCEFInterfaces, uCEFConstants, uBufferPanel, uCEFChromium, uCEFTypes, uCEFInterfaces, uCEFConstants, uBufferPanel,
uCEFWindowParent; uCEFWindowParent, uCEFWinControl;
type type
TChildForm = class(TForm) TChildForm = class(TForm)
@ -65,7 +65,7 @@ type
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
protected protected
@ -179,10 +179,10 @@ begin
end; end;
end; end;
procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TChildForm.Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); procedure TChildForm.Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);

View File

@ -78,7 +78,6 @@ object Form1: TForm1
Height = 439 Height = 439
Align = alClient Align = alClient
TabOrder = 1 TabOrder = 1
ExplicitHeight = 395
end end
object Memo1: TMemo object Memo1: TMemo
Left = 0 Left = 0

View File

@ -79,7 +79,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
@ -371,10 +371,10 @@ begin
end; end;
procedure TForm1.Chromium1Close(Sender: TObject; procedure TForm1.Chromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TForm1.BrowserCreatedMsg(var aMessage : TMessage); procedure TForm1.BrowserCreatedMsg(var aMessage : TMessage);

View File

@ -74,7 +74,6 @@ object ResponseFilterBrowserFrm: TResponseFilterBrowserFrm
Caption = 'Go' Caption = 'Go'
TabOrder = 0 TabOrder = 0
OnClick = GoBtnClick OnClick = GoBtnClick
ExplicitTop = -1
end end
object RscNameEdt: TEdit object RscNameEdt: TEdit
Left = 176 Left = 176

View File

@ -77,7 +77,7 @@ type
procedure Chromium1GetResourceResponseFilter(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const response: ICefResponse; out Result: ICefResponseFilter); procedure Chromium1GetResourceResponseFilter(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const response: ICefResponse; out Result: ICefResponseFilter);
procedure Chromium1ResourceLoadComplete(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const response: ICefResponse; status: TCefUrlRequestStatus; receivedContentLength: Int64); procedure Chromium1ResourceLoadComplete(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const response: ICefResponse; status: TCefUrlRequestStatus; receivedContentLength: Int64);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1LoadStart(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; transitionType: Cardinal); procedure Chromium1LoadStart(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; transitionType: Cardinal);
procedure Chromium1BeforeResourceLoad(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const callback: ICefRequestCallback; out Result: TCefReturnValue); procedure Chromium1BeforeResourceLoad(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const callback: ICefRequestCallback; out Result: TCefReturnValue);
@ -462,10 +462,10 @@ begin
end; end;
end; end;
procedure TResponseFilterBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TResponseFilterBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TResponseFilterBrowserFrm.Chromium1GetResourceResponseFilter( Sender : TObject; procedure TResponseFilterBrowserFrm.Chromium1GetResourceResponseFilter( Sender : TObject;

View File

@ -87,7 +87,7 @@ type
var noJavascriptAccess: Boolean; var Result: Boolean); var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
private private
@ -169,10 +169,10 @@ begin
end; end;
procedure TSchemeRegistrationBrowserFrm.Chromium1Close(Sender: TObject; procedure TSchemeRegistrationBrowserFrm.Chromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TSchemeRegistrationBrowserFrm.Chromium1ContextMenuCommand( procedure TSchemeRegistrationBrowserFrm.Chromium1ContextMenuCommand(

View File

@ -74,7 +74,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
protected protected
@ -181,10 +181,10 @@ begin
end; end;
procedure TForm1.Chromium1Close(Sender: TObject; procedure TForm1.Chromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TForm1.BrowserCreatedMsg(var aMessage : TMessage); procedure TForm1.BrowserCreatedMsg(var aMessage : TMessage);

View File

@ -5,7 +5,7 @@
<FrameworkType>FMX</FrameworkType> <FrameworkType>FMX</FrameworkType>
<MainSource>SimpleFMXBrowser.dpr</MainSource> <MainSource>SimpleFMXBrowser.dpr</MainSource>
<Base>True</Base> <Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config> <Config Condition="'$(Config)'==''">Release</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform> <Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>3</TargetedPlatforms> <TargetedPlatforms>3</TargetedPlatforms>
<AppType>Application</AppType> <AppType>Application</AppType>

View File

@ -63,7 +63,7 @@ type
procedure Timer1Timer(Sender: TObject); procedure Timer1Timer(Sender: TObject);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure FMXChromium1Close(Sender: TObject; procedure FMXChromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure FMXChromium1BeforeClose(Sender: TObject; procedure FMXChromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
procedure FMXChromium1BeforePopup(Sender: TObject; procedure FMXChromium1BeforePopup(Sender: TObject;
@ -164,10 +164,10 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TSimpleFMXBrowserFrm.FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TSimpleFMXBrowserFrm.FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostCustomMessage(CEF_DESTROY); PostCustomMessage(CEF_DESTROY);
Result := True; aAction := cbaDelay;
end; end;
function TSimpleFMXBrowserFrm.PostCustomMessage(aMessage, wParam : cardinal; lParam : integer) : boolean; function TSimpleFMXBrowserFrm.PostCustomMessage(aMessage, wParam : cardinal; lParam : integer) : boolean;

View File

@ -22,11 +22,11 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<TopLine Value="83"/> <TopLine Value="94"/>
<CursorPos X="43" Y="92"/> <CursorPos Y="100"/>
<UsageCount Value="42"/> <UsageCount Value="42"/>
<Bookmarks Count="1"> <Bookmarks Count="1">
<Item0 X="40" Y="252" ID="4"/> <Item0 X="40" Y="251" ID="4"/>
</Bookmarks> </Bookmarks>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
@ -206,11 +206,19 @@
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit24> </Unit24>
</Units> </Units>
<JumpHistory Count="1"> <JumpHistory Count="3" HistoryIndex="2">
<Position1> <Position1>
<Filename Value="usimplelazosrbrowser.pas"/> <Filename Value="usimplelazosrbrowser.pas"/>
<Caret Line="204" Column="63" TopLine="19"/> <Caret Line="204" Column="63" TopLine="19"/>
</Position1> </Position1>
<Position2>
<Filename Value="usimplelazosrbrowser.pas"/>
<Caret Line="100" Column="24" TopLine="89"/>
</Position2>
<Position3>
<Filename Value="usimplelazosrbrowser.pas"/>
<Caret Line="279" Column="33" TopLine="273"/>
</Position3>
</JumpHistory> </JumpHistory>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>

View File

@ -16,7 +16,7 @@ object Form1: TForm1
OnHide = FormHide OnHide = FormHide
OnShow = FormShow OnShow = FormShow
Position = poScreenCenter Position = poScreenCenter
LCLVersion = '2.0.0.3' LCLVersion = '2.0.0.4'
object NavControlPnl: TPanel object NavControlPnl: TPanel
Left = 0 Left = 0
Height = 21 Height = 21
@ -114,7 +114,6 @@ object Form1: TForm1
OnBeforePopup = chrmosrBeforePopup OnBeforePopup = chrmosrBeforePopup
OnAfterCreated = chrmosrAfterCreated OnAfterCreated = chrmosrAfterCreated
OnBeforeClose = chrmosrBeforeClose OnBeforeClose = chrmosrBeforeClose
OnClose = chrmosrClose
OnGetViewRect = chrmosrGetViewRect OnGetViewRect = chrmosrGetViewRect
OnGetScreenPoint = chrmosrGetScreenPoint OnGetScreenPoint = chrmosrGetScreenPoint
OnGetScreenInfo = chrmosrGetScreenInfo OnGetScreenInfo = chrmosrGetScreenInfo

View File

@ -97,7 +97,6 @@ type
procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var aText: ustring; out Result: Boolean); procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var aText: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrIMECompositionRangeChanged(Sender: TObject; const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect); procedure chrmosrIMECompositionRangeChanged(Sender: TObject; const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect);
@ -279,11 +278,6 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TForm1.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
begin
Result := False;
end;
procedure TForm1.chrmosrCursorChange(Sender : TObject; procedure TForm1.chrmosrCursorChange(Sender : TObject;
const browser : ICefBrowser; const browser : ICefBrowser;
aCursor : HICON; aCursor : HICON;

View File

@ -8,10 +8,10 @@
<Unit0> <Unit0>
<Filename Value="SimpleLazarusBrowser.lpr"/> <Filename Value="SimpleLazarusBrowser.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/> <TopLine Value="16"/>
<TopLine Value="5"/>
<CursorPos X="43" Y="5"/> <CursorPos X="43" Y="5"/>
<UsageCount Value="43"/> <UsageCount Value="43"/>
<Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="usimplelazarusbrowser.pas"/> <Filename Value="usimplelazarusbrowser.pas"/>
@ -21,10 +21,11 @@
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="uSimpleLazarusBrowser"/> <UnitName Value="uSimpleLazarusBrowser"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<EditorIndex Value="-1"/> <EditorIndex Value="1"/>
<TopLine Value="26"/> <TopLine Value="159"/>
<CursorPos Y="40"/> <CursorPos X="27" Y="164"/>
<UsageCount Value="43"/> <UsageCount Value="43"/>
<Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="..\..\source\uCEFChromium.pas"/> <Filename Value="..\..\source\uCEFChromium.pas"/>
@ -402,10 +403,12 @@
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit51> </Unit51>
</Units> </Units>
<General> <JumpHistory Count="1">
<ActiveWindowIndexAtStart Value="-1"/> <Position1>
</General> <Filename Value="usimplelazarusbrowser.pas"/>
<JumpHistory HistoryIndex="-1"/> <Caret Line="67" Column="29" TopLine="57"/>
</Position1>
</JumpHistory>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>
<Modes Count="0" ActiveMode="default"/> <Modes Count="0" ActiveMode="default"/>

View File

@ -64,8 +64,8 @@ type
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings; var client: ICefClient; var settings: TCefBrowserSettings;
var noJavascriptAccess: Boolean; var Result: Boolean); var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
@ -157,10 +157,10 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TForm1.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TForm1.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEF_DESTROY, 0, 0); PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
procedure TForm1.FormShow(Sender: TObject); procedure TForm1.FormShow(Sender: TObject);

View File

@ -53,7 +53,6 @@ object Form1: TForm1
'https://www.briskbard.com' 'https://www.briskbard.com'
'https://frames-per-second.appspot.com/' 'https://frames-per-second.appspot.com/'
'file:///transparency.html') 'file:///transparency.html')
ExplicitWidth = 909
end end
object Panel2: TPanel object Panel2: TPanel
Left = 912 Left = 912
@ -101,7 +100,6 @@ object Form1: TForm1
TabOrder = 1 TabOrder = 1
OnClick = SnapshotBtnClick OnClick = SnapshotBtnClick
OnEnter = SnapshotBtnEnter OnEnter = SnapshotBtnEnter
ExplicitLeft = 38
end end
end end
end end
@ -135,7 +133,6 @@ object Form1: TForm1
OnBeforePopup = chrmosrBeforePopup OnBeforePopup = chrmosrBeforePopup
OnAfterCreated = chrmosrAfterCreated OnAfterCreated = chrmosrAfterCreated
OnBeforeClose = chrmosrBeforeClose OnBeforeClose = chrmosrBeforeClose
OnClose = chrmosrClose
OnGetViewRect = chrmosrGetViewRect OnGetViewRect = chrmosrGetViewRect
OnGetScreenPoint = chrmosrGetScreenPoint OnGetScreenPoint = chrmosrGetScreenPoint
OnGetScreenInfo = chrmosrGetScreenInfo OnGetScreenInfo = chrmosrGetScreenInfo

View File

@ -104,7 +104,6 @@ type
procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrIMECompositionRangeChanged(Sender: TObject; const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect); procedure chrmosrIMECompositionRangeChanged(Sender: TObject; const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect);
@ -348,11 +347,6 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TForm1.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
begin
Result := False;
end;
procedure TForm1.chrmosrCursorChange(Sender : TObject; procedure TForm1.chrmosrCursorChange(Sender : TObject;
const browser : ICefBrowser; const browser : ICefBrowser;
cursor : HICON; cursor : HICON;

View File

@ -92,7 +92,7 @@ type
procedure Chromium_OnAfterCreated(Sender: TObject; const browser: ICefBrowser); procedure Chromium_OnAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Chromium_OnAddressChange(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const url: ustring); procedure Chromium_OnAddressChange(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const url: ustring);
procedure Chromium_OnTitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); procedure Chromium_OnTitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
procedure Chromium_OnClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure Chromium_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure Chromium_OnBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure Chromium_OnBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
@ -413,14 +413,12 @@ begin
PageControl1.Pages[TempPageIndex].Caption := title; PageControl1.Pages[TempPageIndex].Caption := title;
end; end;
procedure TMainForm.Chromium_OnClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TMainForm.Chromium_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
var var
TempPageIndex : integer; TempPageIndex : integer;
begin begin
if GetPageIndex(Sender, TempPageIndex) then if GetPageIndex(Sender, TempPageIndex) then
PostMessage(Handle, CEFBROWSER_DESTROYWNDPARENT, 0, TempPageIndex); PostMessage(Handle, CEFBROWSER_DESTROYWNDPARENT, 0, TempPageIndex);
Result := False;
end; end;
procedure TMainForm.Chromium_OnBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure TMainForm.Chromium_OnBeforeClose(Sender: TObject; const browser: ICefBrowser);

View File

@ -50,7 +50,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, ExtCtrls, Controls, Forms, Dialogs, ExtCtrls,
{$ENDIF} {$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes, uMainForm; uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes, uMainForm,
uCEFWinControl;
type type
TChildForm = class(TForm) TChildForm = class(TForm)
@ -64,7 +65,7 @@ type
procedure Chromium1AfterCreated(Sender: TObject; procedure Chromium1AfterCreated(Sender: TObject;
const browser: ICefBrowser); const browser: ICefBrowser);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
out Result: Boolean); var aAction : TCefCloseBrowserAction);
procedure Chromium1PreKeyEvent(Sender: TObject; procedure Chromium1PreKeyEvent(Sender: TObject;
const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: PMsg; const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: PMsg;
out isKeyboardShortcut, Result: Boolean); out isKeyboardShortcut, Result: Boolean);
@ -139,10 +140,10 @@ begin
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);
end; end;
procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0); PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0);
Result := False; aAction := cbaDelay;
end; end;
procedure TChildForm.Chromium1KeyEvent(Sender: TObject; procedure TChildForm.Chromium1KeyEvent(Sender: TObject;

View File

@ -34,8 +34,8 @@
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<TopLine Value="58"/> <TopLine Value="152"/>
<CursorPos X="13" Y="97"/> <CursorPos X="31" Y="163"/>
<UsageCount Value="21"/> <UsageCount Value="21"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
@ -62,7 +62,7 @@
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit5> </Unit5>
</Units> </Units>
<JumpHistory Count="28" HistoryIndex="27"> <JumpHistory Count="29" HistoryIndex="28">
<Position1> <Position1>
<Filename Value="uchildform.pas"/> <Filename Value="uchildform.pas"/>
<Caret Line="61" Column="3" TopLine="54"/> <Caret Line="61" Column="3" TopLine="54"/>
@ -175,6 +175,10 @@
<Filename Value="uchildform.pas"/> <Filename Value="uchildform.pas"/>
<Caret Line="214" Column="46" TopLine="187"/> <Caret Line="214" Column="46" TopLine="187"/>
</Position28> </Position28>
<Position29>
<Filename Value="uchildform.pas"/>
<Caret Line="67" Column="79" TopLine="59"/>
</Position29>
</JumpHistory> </JumpHistory>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>

View File

@ -64,7 +64,7 @@ type
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean); procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure Chromium1KeyEvent(Sender: TObject; const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: TCefEventHandle; out Result: Boolean); procedure Chromium1KeyEvent(Sender: TObject; const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: TCefEventHandle; out Result: Boolean);
procedure Chromium1PreKeyEvent(Sender: TObject; const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: TCefEventHandle; out isKeyboardShortcut: Boolean; out Result: Boolean); procedure Chromium1PreKeyEvent(Sender: TObject; const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: TCefEventHandle; out isKeyboardShortcut: Boolean; out Result: Boolean);
@ -151,10 +151,10 @@ begin
end; end;
procedure TChildForm.Chromium1Close(Sender: TObject; procedure TChildForm.Chromium1Close(Sender: TObject;
const browser: ICefBrowser; out Result: Boolean); const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0); PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0);
Result := False; aAction := cbaDelay;
end; end;
procedure TChildForm.Chromium1KeyEvent(Sender: TObject; procedure TChildForm.Chromium1KeyEvent(Sender: TObject;

View File

@ -70,6 +70,9 @@
<DCC_S>false</DCC_S> <DCC_S>false</DCC_S>
<DCC_F>false</DCC_F> <DCC_F>false</DCC_F>
<DCC_K>false</DCC_K> <DCC_K>false</DCC_K>
<DCC_UnitSearchPath>..\source;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
<VerInfo_Locale>3082</VerInfo_Locale>
<VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=CEF4Delphi;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=CEF4Delphi;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName)</VerInfo_Keys>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Base_Win32)'!=''"> <PropertyGroup Condition="'$(Base_Win32)'!=''">
<DCC_UsePackage>rtl;vcl;fmx;$(DCC_UsePackage)</DCC_UsePackage> <DCC_UsePackage>rtl;vcl;fmx;$(DCC_UsePackage)</DCC_UsePackage>
@ -258,6 +261,8 @@
<DCCReference Include="..\source\uCEFLinkedWindowParent.pas"/> <DCCReference Include="..\source\uCEFLinkedWindowParent.pas"/>
<DCCReference Include="..\source\uCEFUrlRequestClientEvents.pas"/> <DCCReference Include="..\source\uCEFUrlRequestClientEvents.pas"/>
<DCCReference Include="..\source\uCEFUrlRequestClientComponent.pas"/> <DCCReference Include="..\source\uCEFUrlRequestClientComponent.pas"/>
<DCCReference Include="..\source\uCEFOSRIMEHandler.pas"/>
<DCCReference Include="..\source\uCEFAudioHandler.pas"/>
<BuildConfiguration Include="Base"> <BuildConfiguration Include="Base">
<Key>Base</Key> <Key>Base</Key>
</BuildConfiguration> </BuildConfiguration>
@ -283,9 +288,10 @@
<Source Name="MainSource">CEF4Delphi.dpk</Source> <Source Name="MainSource">CEF4Delphi.dpk</Source>
</Source> </Source>
<Excluded_Packages> <Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dclIPIndyImpl250.bpl">IP Abstraction Indy Implementation Design Time</Excluded_Packages> <Excluded_Packages Name="$(BDSBIN)\dclIPIndyImpl260.bpl">IP Abstraction Indy Implementation Design Time</Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k250.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> <Excluded_Packages Name="$(BDSBIN)\DataExplorerDBXPluginEnt260.bpl">DBExpress Enterprise Data Explorer Integration</Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dclofficexp250.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> <Excluded_Packages Name="$(BDSBIN)\dcloffice2k260.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
<Excluded_Packages Name="$(BDSBIN)\dclofficexp260.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
</Excluded_Packages> </Excluded_Packages>
</Delphi.Personality> </Delphi.Personality>
<Deployment Version="3"> <Deployment Version="3">

Binary file not shown.

View File

@ -5,7 +5,7 @@
<ProjectVersion>18.5</ProjectVersion> <ProjectVersion>18.5</ProjectVersion>
<FrameworkType>VCL</FrameworkType> <FrameworkType>VCL</FrameworkType>
<Base>True</Base> <Base>True</Base>
<Config Condition="'$(Config)'==''">Release</Config> <Config Condition="'$(Config)'==''">Debug</Config>
<Platform Condition="'$(Platform)'==''">Win32</Platform> <Platform Condition="'$(Platform)'==''">Win32</Platform>
<TargetedPlatforms>3</TargetedPlatforms> <TargetedPlatforms>3</TargetedPlatforms>
<AppType>Package</AppType> <AppType>Package</AppType>

Binary file not shown.

View File

@ -3258,12 +3258,34 @@ end;
{$ENDIF} {$ENDIF}
function TChromium.doOnClose(const browser: ICefBrowser): Boolean; function TChromium.doOnClose(const browser: ICefBrowser): Boolean;
var
TempAction : TCefCloseBrowserAction;
begin begin
Result := False; Result := False;
TempAction := cbaClose;
if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True; // TempAction values
// -----------------
// cbaCancel : stop closing the browser
// cbaClose : continue closing the browser
// cbaDelay : stop closing the browser momentarily. Used when the application
// needs to execute some custom processes before closing the
// browser. This is usually needed to destroy a TCEFWindowParent
// in the main thread before closing the browser.
if Assigned(FOnClose) then FOnClose(Self, browser, TempAction);
if Assigned(FOnClose) then FOnClose(Self, browser, Result); case TempAction of
cbaCancel : Result := True;
cbaDelay :
begin
Result := True;
if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True;
end;
else
if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True;
end;
end; end;
procedure TChromium.doOnBeforeClose(const browser: ICefBrowser); procedure TChromium.doOnBeforeClose(const browser: ICefBrowser);

View File

@ -106,7 +106,7 @@ type
TOnBeforePopup = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean) of object; TOnBeforePopup = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean) of object;
TOnAfterCreated = procedure(Sender: TObject; const browser: ICefBrowser) of object; TOnAfterCreated = procedure(Sender: TObject; const browser: ICefBrowser) of object;
TOnBeforeClose = procedure(Sender: TObject; const browser: ICefBrowser) of object; TOnBeforeClose = procedure(Sender: TObject; const browser: ICefBrowser) of object;
TOnClose = procedure(Sender: TObject; const browser: ICefBrowser; out Result: Boolean) of object; TOnClose = procedure(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction) of object;
// ICefRequestHandler // ICefRequestHandler
TOnBeforeBrowse = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean; out Result: Boolean) of object; TOnBeforeBrowse = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean; out Result: Boolean) of object;

View File

@ -81,7 +81,7 @@ type
procedure OnBeforeCloseMsg(var aMessage : TMessage); message CEF_DOONBEFORECLOSE; procedure OnBeforeCloseMsg(var aMessage : TMessage); message CEF_DOONBEFORECLOSE;
procedure OnAfterCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED; procedure OnAfterCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED;
{$ENDIF} {$ENDIF}
procedure WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure WebBrowser_OnBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure WebBrowser_OnBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure WebBrowser_OnAfterCreated(Sender: TObject; const browser: ICefBrowser); procedure WebBrowser_OnAfterCreated(Sender: TObject; const browser: ICefBrowser);
@ -189,14 +189,14 @@ begin
Result := (FChromium <> nil) and FChromium.Initialized; Result := (FChromium <> nil) and FChromium.Initialized;
end; end;
procedure TChromiumWindow.WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); procedure TChromiumWindow.WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
begin begin
Result := False; aAction := cbaClose;
{$IFDEF MSWINDOWS} {$IFDEF MSWINDOWS}
if assigned(FOnClose) then if assigned(FOnClose) then
begin begin
PostMessage(Handle, CEF_DOONCLOSE, 0, 0); PostMessage(Handle, CEF_DOONCLOSE, 0, 0);
Result := True; aAction := cbaDelay;
end; end;
{$ENDIF} {$ENDIF}
end; end;

View File

@ -350,6 +350,16 @@ type
Build : uint16; Build : uint16;
end; end;
// Used in TChromium.Onclose
// -------------------------
// cbaCancel : stop closing the browser
// cbaClose : continue closing the browser
// cbaDelay : stop closing the browser momentarily. Used when the application
// needs to execute some custom processes before closing the
// browser. This is usually needed to destroy a TCEFWindowParent
// in the main thread before closing the browser.
TCefCloseBrowserAction = (cbaClose, cbaDelay, cbaCancel);
TCefProcessType = (ptBrowser, ptRenderer, ptZygote, ptGPU, ptOther); TCefProcessType = (ptBrowser, ptRenderer, ptZygote, ptGPU, ptOther);
TCefAplicationStatus = (asLoading, TCefAplicationStatus = (asLoading,

View File

@ -2829,12 +2829,34 @@ begin
end; end;
function TFMXChromium.doOnClose(const browser: ICefBrowser): Boolean; function TFMXChromium.doOnClose(const browser: ICefBrowser): Boolean;
var
TempAction : TCefCloseBrowserAction;
begin begin
Result := False; Result := False;
TempAction := cbaClose;
if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True; // TempAction values
// -----------------
// cbaCancel : stop closing the browser
// cbaClose : continue closing the browser
// cbaDelay : stop closing the browser momentarily. Used when the application
// needs to execute some custom processes before closing the
// browser. This is usually needed to destroy a TCEFWindowParent
// in the main thread before closing the browser.
if Assigned(FOnClose) then FOnClose(Self, browser, TempAction);
if Assigned(FOnClose) then FOnClose(Self, browser, Result); case TempAction of
cbaCancel : Result := True;
cbaDelay :
begin
Result := True;
if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True;
end;
else
if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True;
end;
end; end;
procedure TFMXChromium.doOnBeforeClose(const browser: ICefBrowser); procedure TFMXChromium.doOnBeforeClose(const browser: ICefBrowser);

View File

@ -218,14 +218,10 @@ begin
if not(FStopped) then if not(FStopped) then
begin begin
{$IFDEF MSWINDOWS} {$IFDEF MSWINDOWS}
{$IFDEF DELPHI17_UP}
TempHandle := ApplicationHWND;
{$ELSE}
if (Application <> nil) and (Application.MainForm <> nil) then if (Application <> nil) and (Application.MainForm <> nil) then
TempHandle := FmxHandleToHWND(Application.MainForm.Handle) TempHandle := FmxHandleToHWND(Application.MainForm.Handle)
else else
TempHandle := 0; TempHandle := 0;
{$ENDIF}
if (TempHandle <> 0) then if (TempHandle <> 0) then
WinApi.Windows.PostMessage(TempHandle, CEF_PUMPHAVEWORK, 0, LPARAM(delay_ms)); WinApi.Windows.PostMessage(TempHandle, CEF_PUMPHAVEWORK, 0, LPARAM(delay_ms));

View File

@ -1,8 +1,8 @@
{ {
"UpdateLazPackages" : [ "UpdateLazPackages" : [
{ {
"ForceNotify" : false, "ForceNotify" : true,
"InternalVersion" : 1, "InternalVersion" : 2,
"Name" : "cef4delphi_lazarus.lpk", "Name" : "cef4delphi_lazarus.lpk",
"Version" : "73.1.12.0" "Version" : "73.1.12.0"
} }