You've already forked CEF4Delphi
mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2025-08-04 21:32:54 +02:00
TabbedBrowser2 demos now use the Chrome style
This commit is contained in:
@ -217,7 +217,6 @@ object BrowserFrame: TBrowserFrame
|
||||
OnBeforePopup = Chromium1BeforePopup
|
||||
OnAfterCreated = Chromium1AfterCreated
|
||||
OnBeforeClose = Chromium1BeforeClose
|
||||
OnClose = Chromium1Close
|
||||
OnOpenUrlFromTab = Chromium1OpenUrlFromTab
|
||||
Left = 40
|
||||
Top = 72
|
||||
|
@ -45,7 +45,6 @@ type
|
||||
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure Chromium1AddressChange(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const url: ustring);
|
||||
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction);
|
||||
procedure Chromium1LoadError(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; errorCode: TCefErrorCode; const errorText, failedUrl: ustring);
|
||||
procedure Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean);
|
||||
procedure Chromium1StatusMessage(Sender: TObject; const browser: ICefBrowser; const value: ustring);
|
||||
@ -88,7 +87,6 @@ type
|
||||
procedure SetPendingCanGoForward(aValue : boolean);
|
||||
|
||||
procedure BrowserCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED;
|
||||
procedure BrowserDestroyMsg(var aMessage : TMessage); message CEF_DESTROY;
|
||||
procedure BrowserUpdateCaptionMsg(var aMessage : TMessage); message CEF_UPDATECAPTION;
|
||||
procedure BrowserUpdateAddressMsg(var aMessage : TMessage); message CEF_UPDATEADDRESS;
|
||||
procedure BrowserUpdateStateMsg(var aMessage : TMessage); message CEF_UPDATESTATE;
|
||||
@ -134,12 +132,10 @@ uses
|
||||
|
||||
// Destruction steps
|
||||
// =================
|
||||
// 1. TBrowserFrame.CloseBrowser sets CanClose to FALSE calls TChromium.CloseBrowser
|
||||
// which triggers the TChromium.OnClose event.
|
||||
// 2. TChromium.OnClose sends a CEFBROWSER_DESTROY message to destroy CEFWindowParent1
|
||||
// in the main thread, which triggers the TChromium.OnBeforeClose event.
|
||||
// 3. TChromium.OnBeforeClose triggers the TBrowserFrame.OnBrowserDestroyed event
|
||||
// which sends a CEF_DESTROYTAB message with the TabID to the main form.
|
||||
// 1. TBrowserFrame.FormCloseQuery sets CanClose to FALSE, destroys CEFWindowParent1
|
||||
// and calls TChromium.CloseBrowser which triggers the TChromium.OnBeforeClose event.
|
||||
// 2. TChromium.OnBeforeClose sets FCanClose := True and sends a CEF_DESTROYTAB
|
||||
// message with the TabID to the main form.
|
||||
|
||||
constructor TBrowserFrame.Create(AOwner : TComponent);
|
||||
begin
|
||||
@ -273,7 +269,6 @@ end;
|
||||
procedure TBrowserFrame.CreateBrowser;
|
||||
begin
|
||||
Chromium1.DefaultURL := FHomepage;
|
||||
Chromium1.RuntimeStyle := CEF_RUNTIME_STYLE_ALLOY;
|
||||
Chromium1.CreateBrowser(CEFWindowParent1);
|
||||
end;
|
||||
|
||||
@ -284,6 +279,7 @@ begin
|
||||
FClosing := True;
|
||||
NavControlPnl.Enabled := False;
|
||||
Chromium1.CloseBrowser(True);
|
||||
FreeAndNil(CEFWindowParent1);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -332,7 +328,8 @@ end;
|
||||
|
||||
procedure TBrowserFrame.Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
|
||||
begin
|
||||
if assigned(FOnBrowserDestroyed) then FOnBrowserDestroyed(self);
|
||||
if assigned(FOnBrowserDestroyed) then
|
||||
FOnBrowserDestroyed(self);
|
||||
end;
|
||||
|
||||
procedure TBrowserFrame.Chromium1BeforePopup( Sender : TObject;
|
||||
@ -369,14 +366,6 @@ begin
|
||||
TBrowserTab(Parent).DoOpenUrlFromTab(targetUrl, targetDisposition);
|
||||
end;
|
||||
|
||||
procedure TBrowserFrame.Chromium1Close( Sender : TObject;
|
||||
const browser : ICefBrowser;
|
||||
var aAction : TCefCloseBrowserAction);
|
||||
begin
|
||||
PostMessage(Handle, CEF_DESTROY, 0, 0);
|
||||
aAction := cbaDelay;
|
||||
end;
|
||||
|
||||
procedure TBrowserFrame.Chromium1LoadError( Sender : TObject;
|
||||
const browser : ICefBrowser;
|
||||
const frame : ICefFrame;
|
||||
@ -436,11 +425,6 @@ begin
|
||||
NavControlPnl.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TBrowserFrame.BrowserDestroyMsg(var aMessage : TMessage);
|
||||
begin
|
||||
CEFWindowParent1.Free;
|
||||
end;
|
||||
|
||||
procedure TBrowserFrame.BrowserUpdateCaptionMsg(var aMessage : TMessage);
|
||||
begin
|
||||
if assigned(FOnBrowserTitleChange) then
|
||||
|
@ -125,22 +125,26 @@ procedure TBrowserTab.CreateBrowser(const aHomepage : string);
|
||||
begin
|
||||
CreateFrame(aHomepage);
|
||||
|
||||
if (FBrowserFrame <> nil) then FBrowserFrame.CreateBrowser;
|
||||
if (FBrowserFrame <> nil) then
|
||||
FBrowserFrame.CreateBrowser;
|
||||
end;
|
||||
|
||||
procedure TBrowserTab.CloseBrowser;
|
||||
begin
|
||||
if (FBrowserFrame <> nil) then FBrowserFrame.CloseBrowser;
|
||||
if (FBrowserFrame <> nil) then
|
||||
FBrowserFrame.CloseBrowser;
|
||||
end;
|
||||
|
||||
procedure TBrowserTab.ShowBrowser;
|
||||
begin
|
||||
if (FBrowserFrame <> nil) then FBrowserFrame.ShowBrowser;
|
||||
if (FBrowserFrame <> nil) then
|
||||
FBrowserFrame.ShowBrowser;
|
||||
end;
|
||||
|
||||
procedure TBrowserTab.HideBrowser;
|
||||
begin
|
||||
if (FBrowserFrame <> nil) then FBrowserFrame.HideBrowser;
|
||||
if (FBrowserFrame <> nil) then
|
||||
FBrowserFrame.HideBrowser;
|
||||
end;
|
||||
|
||||
procedure TBrowserTab.BrowserFrame_OnBrowserDestroyed(Sender: TObject);
|
||||
|
@ -29,7 +29,6 @@ object ChildForm: TChildForm
|
||||
OnBeforePopup = Chromium1BeforePopup
|
||||
OnAfterCreated = Chromium1AfterCreated
|
||||
OnBeforeClose = Chromium1BeforeClose
|
||||
OnClose = Chromium1Close
|
||||
OnOpenUrlFromTab = Chromium1OpenUrlFromTab
|
||||
Left = 24
|
||||
Top = 56
|
||||
|
@ -32,7 +32,6 @@ type
|
||||
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; popup_id: Integer; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
|
||||
procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
|
||||
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
|
||||
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure Chromium1OpenUrlFromTab(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; out Result: Boolean);
|
||||
|
||||
@ -77,11 +76,9 @@ uses
|
||||
|
||||
// Destruction steps
|
||||
// =================
|
||||
// 1. FormCloseQuery sets CanClose to FALSE calls TChromium.CloseBrowser which
|
||||
// triggers the TChromium.OnClose event.
|
||||
// 2. TChromium.OnClose sends a CEFBROWSER_DESTROY message to destroy CEFWindowParent1
|
||||
// in the main thread, which triggers the TChromium.OnBeforeClose event.
|
||||
// 3. TChromium.OnBeforeClose sets FCanClose := True and sends WM_CLOSE to the form.
|
||||
// 1. FormCloseQuery sets CanClose to FALSE, destroys CEFWindowParent1 and calls
|
||||
// TChromium.CloseBrowser which triggers the TChromium.OnBeforeClose event.
|
||||
// 2. TChromium.OnBeforeClose sets FCanClose := True and sends WM_CLOSE to the form.
|
||||
|
||||
procedure TChildForm.AfterConstruction;
|
||||
begin
|
||||
@ -170,12 +167,6 @@ begin
|
||||
Result := not(TMainForm(Owner).DoOpenUrlFromTab(targetUrl, targetDisposition));
|
||||
end;
|
||||
|
||||
procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
|
||||
begin
|
||||
PostMessage(Handle, CEF_DESTROY, 0, 0);
|
||||
aAction := cbaDelay;
|
||||
end;
|
||||
|
||||
procedure TChildForm.Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
|
||||
begin
|
||||
try
|
||||
@ -236,6 +227,7 @@ begin
|
||||
FClosing := True;
|
||||
Visible := False;
|
||||
Chromium1.CloseBrowser(True);
|
||||
FreeAndNil(CEFWindowParent1);
|
||||
end;
|
||||
end
|
||||
else
|
||||
|
@ -108,13 +108,10 @@ implementation
|
||||
// TBrowserFrame has all the usual code to close CEF4Delphi browsers following
|
||||
// a similar destruction sequence than the MiniBrowser demo :
|
||||
//
|
||||
// 1. TBrowserTab.CloseBrowser calls TChromium.CloseBrowser which triggers the
|
||||
// TChromium.OnClose event.
|
||||
// 2. TChromium.OnClose sends a CEF_DESTROY message to destroy CEFWindowParent1
|
||||
// in the main thread, which triggers the TChromium.OnBeforeClose event.
|
||||
// 3. TChromium.OnBeforeClose executes the TBrowserFrame.OnBrowserDestroyed
|
||||
// event which will be used in TBrowserTab to send a CEF_DESTROYTAB message
|
||||
// to the main form to free the tab.
|
||||
// 1. TBrowserFrame.FormCloseQuery sets CanClose to FALSE, destroys CEFWindowParent1
|
||||
// and calls TChromium.CloseBrowser which triggers the TChromium.OnBeforeClose event.
|
||||
// 2. TChromium.OnBeforeClose sets FCanClose := True and sends a CEF_DESTROYTAB
|
||||
// message with the TabID to the main form.
|
||||
|
||||
// This demo also uses custom forms to open popup browsers in the same way as
|
||||
// the PopupBrowser2 demo. Please, read the code comments in that demo for all
|
||||
@ -239,7 +236,6 @@ begin
|
||||
while (i >= 0) do
|
||||
begin
|
||||
// Only count the fully initialized browser tabs and not the one waiting to be used.
|
||||
|
||||
if TBrowserTab(BrowserPageCtrl.Pages[i]).Initialized then
|
||||
inc(Result);
|
||||
|
||||
|
@ -85,7 +85,7 @@ object BrowserFrame: TBrowserFrame
|
||||
end
|
||||
end
|
||||
object URLEditPnl: TPanel
|
||||
Left = 121
|
||||
Left = 123
|
||||
Height = 35
|
||||
Top = 0
|
||||
Width = 774
|
||||
@ -96,11 +96,11 @@ object BrowserFrame: TBrowserFrame
|
||||
TabOrder = 1
|
||||
object URLCbx: TComboBox
|
||||
Left = 0
|
||||
Height = 21
|
||||
Height = 23
|
||||
Top = 5
|
||||
Width = 770
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
ItemHeight = 0
|
||||
ItemHeight = 15
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'https://www.google.com'
|
||||
@ -153,7 +153,7 @@ object BrowserFrame: TBrowserFrame
|
||||
end
|
||||
end
|
||||
object ConfigPnl: TPanel
|
||||
Left = 895
|
||||
Left = 897
|
||||
Height = 35
|
||||
Top = 0
|
||||
Width = 35
|
||||
@ -181,8 +181,8 @@ object BrowserFrame: TBrowserFrame
|
||||
end
|
||||
object StatusBar1: TStatusBar
|
||||
Left = 0
|
||||
Height = 19
|
||||
Top = 651
|
||||
Height = 23
|
||||
Top = 647
|
||||
Width = 932
|
||||
Panels = <
|
||||
item
|
||||
@ -192,7 +192,7 @@ object BrowserFrame: TBrowserFrame
|
||||
end
|
||||
object CEFWindowParent1: TCEFWindowParent
|
||||
Left = 0
|
||||
Height = 616
|
||||
Height = 612
|
||||
Top = 35
|
||||
Width = 932
|
||||
Align = alClient
|
||||
@ -207,7 +207,6 @@ object BrowserFrame: TBrowserFrame
|
||||
OnBeforePopup = Chromium1BeforePopup
|
||||
OnAfterCreated = Chromium1AfterCreated
|
||||
OnBeforeClose = Chromium1BeforeClose
|
||||
OnClose = Chromium1Close
|
||||
OnOpenUrlFromTab = Chromium1OpenUrlFromTab
|
||||
Left = 40
|
||||
Top = 72
|
||||
|
@ -47,7 +47,6 @@ type
|
||||
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure Chromium1AddressChange(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const url: ustring);
|
||||
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction);
|
||||
procedure Chromium1LoadError(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; errorCode: Integer; const errorText, failedUrl: ustring);
|
||||
procedure Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean);
|
||||
procedure Chromium1StatusMessage(Sender: TObject; const browser: ICefBrowser; const value: ustring);
|
||||
@ -90,7 +89,6 @@ type
|
||||
procedure SetPendingCanGoForward(aValue : boolean);
|
||||
|
||||
procedure BrowserCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED;
|
||||
procedure BrowserDestroyMsg(var aMessage : TMessage); message CEF_DESTROY;
|
||||
procedure BrowserUpdateCaptionMsg(var aMessage : TMessage); message CEF_UPDATECAPTION;
|
||||
procedure BrowserUpdateAddressMsg(var aMessage : TMessage); message CEF_UPDATEADDRESS;
|
||||
procedure BrowserUpdateStateMsg(var aMessage : TMessage); message CEF_UPDATESTATE;
|
||||
@ -136,12 +134,10 @@ uses
|
||||
|
||||
// Destruction steps
|
||||
// =================
|
||||
// 1. TBrowserFrame.CloseBrowser sets CanClose to FALSE calls TChromium.CloseBrowser
|
||||
// which triggers the TChromium.OnClose event.
|
||||
// 2. TChromium.OnClose sends a CEFBROWSER_DESTROY message to destroy CEFWindowParent1
|
||||
// in the main thread, which triggers the TChromium.OnBeforeClose event.
|
||||
// 3. TChromium.OnBeforeClose triggers the TBrowserFrame.OnBrowserDestroyed event
|
||||
// which sends a CEF_DESTROYTAB message with the TabID to the main form.
|
||||
// 1. TBrowserFrame.FormCloseQuery sets CanClose to FALSE, destroys CEFWindowParent1
|
||||
// and calls TChromium.CloseBrowser which triggers the TChromium.OnBeforeClose event.
|
||||
// 2. TChromium.OnBeforeClose sets FCanClose := True and sends a CEF_DESTROYTAB
|
||||
// message with the TabID to the main form.
|
||||
|
||||
constructor TBrowserFrame.Create(AOwner : TComponent);
|
||||
begin
|
||||
@ -275,7 +271,6 @@ end;
|
||||
procedure TBrowserFrame.CreateBrowser;
|
||||
begin
|
||||
Chromium1.DefaultURL := FHomepage;
|
||||
Chromium1.RuntimeStyle := CEF_RUNTIME_STYLE_ALLOY;
|
||||
Chromium1.CreateBrowser(CEFWindowParent1);
|
||||
end;
|
||||
|
||||
@ -286,6 +281,7 @@ begin
|
||||
FClosing := True;
|
||||
NavControlPnl.Enabled := False;
|
||||
Chromium1.CloseBrowser(True);
|
||||
FreeAndNil(CEFWindowParent1);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -371,14 +367,6 @@ begin
|
||||
TBrowserTab(Parent).DoOpenUrlFromTab(targetUrl, targetDisposition);
|
||||
end;
|
||||
|
||||
procedure TBrowserFrame.Chromium1Close( Sender : TObject;
|
||||
const browser : ICefBrowser;
|
||||
var aAction : TCefCloseBrowserAction);
|
||||
begin
|
||||
PostMessage(Handle, CEF_DESTROY, 0, 0);
|
||||
aAction := cbaDelay;
|
||||
end;
|
||||
|
||||
procedure TBrowserFrame.Chromium1LoadError( Sender : TObject;
|
||||
const browser : ICefBrowser;
|
||||
const frame : ICefFrame;
|
||||
@ -438,11 +426,6 @@ begin
|
||||
NavControlPnl.Enabled := True;
|
||||
end;
|
||||
|
||||
procedure TBrowserFrame.BrowserDestroyMsg(var aMessage : TMessage);
|
||||
begin
|
||||
CEFWindowParent1.Free;
|
||||
end;
|
||||
|
||||
procedure TBrowserFrame.BrowserUpdateCaptionMsg(var aMessage : TMessage);
|
||||
begin
|
||||
if assigned(FOnBrowserTitleChange) then
|
||||
|
@ -127,22 +127,26 @@ procedure TBrowserTab.CreateBrowser(const aHomepage : string);
|
||||
begin
|
||||
CreateFrame(aHomepage);
|
||||
|
||||
if (FBrowserFrame <> nil) then FBrowserFrame.CreateBrowser;
|
||||
if (FBrowserFrame <> nil) then
|
||||
FBrowserFrame.CreateBrowser;
|
||||
end;
|
||||
|
||||
procedure TBrowserTab.CloseBrowser;
|
||||
begin
|
||||
if (FBrowserFrame <> nil) then FBrowserFrame.CloseBrowser;
|
||||
if (FBrowserFrame <> nil) then
|
||||
FBrowserFrame.CloseBrowser;
|
||||
end;
|
||||
|
||||
procedure TBrowserTab.ShowBrowser;
|
||||
begin
|
||||
if (FBrowserFrame <> nil) then FBrowserFrame.ShowBrowser;
|
||||
if (FBrowserFrame <> nil) then
|
||||
FBrowserFrame.ShowBrowser;
|
||||
end;
|
||||
|
||||
procedure TBrowserTab.HideBrowser;
|
||||
begin
|
||||
if (FBrowserFrame <> nil) then FBrowserFrame.HideBrowser;
|
||||
if (FBrowserFrame <> nil) then
|
||||
FBrowserFrame.HideBrowser;
|
||||
end;
|
||||
|
||||
procedure TBrowserTab.BrowserFrame_OnBrowserDestroyed(Sender: TObject);
|
||||
|
@ -15,7 +15,6 @@ object ChildForm: TChildForm
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '3.4.0.0'
|
||||
object CEFWindowParent1: TCEFWindowParent
|
||||
Left = 0
|
||||
Height = 256
|
||||
@ -29,7 +28,6 @@ object ChildForm: TChildForm
|
||||
OnBeforePopup = Chromium1BeforePopup
|
||||
OnAfterCreated = Chromium1AfterCreated
|
||||
OnBeforeClose = Chromium1BeforeClose
|
||||
OnClose = Chromium1Close
|
||||
OnOpenUrlFromTab = Chromium1OpenUrlFromTab
|
||||
Left = 24
|
||||
Top = 56
|
||||
|
@ -34,7 +34,6 @@ type
|
||||
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; popup_id: Integer; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
|
||||
procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
|
||||
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
|
||||
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure Chromium1OpenUrlFromTab(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; out Result: Boolean);
|
||||
|
||||
@ -79,11 +78,9 @@ uses
|
||||
|
||||
// Destruction steps
|
||||
// =================
|
||||
// 1. FormCloseQuery sets CanClose to FALSE calls TChromium.CloseBrowser which
|
||||
// triggers the TChromium.OnClose event.
|
||||
// 2. TChromium.OnClose sends a CEFBROWSER_DESTROY message to destroy CEFWindowParent1
|
||||
// in the main thread, which triggers the TChromium.OnBeforeClose event.
|
||||
// 3. TChromium.OnBeforeClose sets FCanClose := True and sends WM_CLOSE to the form.
|
||||
// 1. FormCloseQuery sets CanClose to FALSE, destroys CEFWindowParent1 and calls
|
||||
// TChromium.CloseBrowser which triggers the TChromium.OnBeforeClose event.
|
||||
// 2. TChromium.OnBeforeClose sets FCanClose := True and sends WM_CLOSE to the form.
|
||||
|
||||
procedure TChildForm.AfterConstruction;
|
||||
begin
|
||||
@ -172,12 +169,6 @@ begin
|
||||
Result := not(TMainForm(Owner).DoOpenUrlFromTab(targetUrl, targetDisposition));
|
||||
end;
|
||||
|
||||
procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
|
||||
begin
|
||||
PostMessage(Handle, CEF_DESTROY, 0, 0);
|
||||
aAction := cbaDelay;
|
||||
end;
|
||||
|
||||
procedure TChildForm.Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
|
||||
begin
|
||||
try
|
||||
@ -238,6 +229,7 @@ begin
|
||||
FClosing := True;
|
||||
Visible := False;
|
||||
Chromium1.CloseBrowser(True);
|
||||
FreeAndNil(CEFWindowParent1);
|
||||
end;
|
||||
end
|
||||
else
|
||||
|
@ -15,7 +15,7 @@ object MainForm: TMainForm
|
||||
OnDestroy = FormDestroy
|
||||
OnShow = FormShow
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '3.4.0.0'
|
||||
LCLVersion = '3.6.0.0'
|
||||
object BrowserPageCtrl: TPageControl
|
||||
Left = 32
|
||||
Height = 703
|
||||
|
@ -106,13 +106,10 @@ implementation
|
||||
// TBrowserFrame has all the usual code to close CEF4Delphi browsers following
|
||||
// a similar destruction sequence than the MiniBrowser demo :
|
||||
//
|
||||
// 1. TBrowserTab.CloseBrowser calls TChromium.CloseBrowser which triggers the
|
||||
// TChromium.OnClose event.
|
||||
// 2. TChromium.OnClose sends a CEF_DESTROY message to destroy CEFWindowParent1
|
||||
// in the main thread, which triggers the TChromium.OnBeforeClose event.
|
||||
// 3. TChromium.OnBeforeClose executes the TBrowserFrame.OnBrowserDestroyed
|
||||
// event which will be used in TBrowserTab to send a CEF_DESTROYTAB message
|
||||
// to the main form to free the tab.
|
||||
// 1. TBrowserFrame.FormCloseQuery sets CanClose to FALSE, destroys CEFWindowParent1
|
||||
// and calls TChromium.CloseBrowser which triggers the TChromium.OnBeforeClose event.
|
||||
// 2. TChromium.OnBeforeClose sets FCanClose := True and sends a CEF_DESTROYTAB
|
||||
// message with the TabID to the main form.
|
||||
|
||||
// This demo also uses custom forms to open popup browsers in the same way as
|
||||
// the PopupBrowser2 demo. Please, read the code comments in that demo for all
|
||||
@ -156,7 +153,8 @@ end;
|
||||
procedure CreateGlobalCEFApp;
|
||||
begin
|
||||
GlobalCEFApp := TCefApplication.Create;
|
||||
GlobalCEFApp.cache := 'cache';
|
||||
GlobalCEFApp.RootCache := 'RootCache';
|
||||
GlobalCEFApp.cache := 'RootCache\cache';
|
||||
GlobalCEFApp.EnablePrintPreview := True;
|
||||
GlobalCEFApp.OnContextInitialized := GlobalCEFApp_OnContextInitialized;
|
||||
GlobalCEFApp.SetCurrentDir := True;
|
||||
@ -209,7 +207,6 @@ begin
|
||||
while (i >= 0) do
|
||||
begin
|
||||
// Only count the fully initialized browser tabs and not the one waiting to be used.
|
||||
|
||||
if TBrowserTab(BrowserPageCtrl.Pages[i]).Initialized then
|
||||
inc(Result);
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
"UpdateLazPackages" : [
|
||||
{
|
||||
"ForceNotify" : true,
|
||||
"InternalVersion" : 691,
|
||||
"InternalVersion" : 692,
|
||||
"Name" : "cef4delphi_lazarus.lpk",
|
||||
"Version" : "131.4.1"
|
||||
}
|
||||
|
Reference in New Issue
Block a user