1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-02-02 10:25:26 +02:00

Fixed issue #202

- Updated the OnBeforeClose event in all demos using TChromiumWindow to send a WM_CLOSE message instead of calling "close".
- Fixed all MDI demos. Now the demo will not close automatically when the last browser is closed manually.
This commit is contained in:
Salvador Díaz Fau 2019-07-10 14:31:45 +02:00
parent 5d36c422eb
commit 0e08d66a1f
21 changed files with 42 additions and 42 deletions

View File

@ -182,7 +182,7 @@ end;
procedure TMainForm.ChromiumWindow1BeforeClose(Sender: TObject); procedure TMainForm.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TMainForm.ChromiumWindow1Close(Sender: TObject); procedure TMainForm.ChromiumWindow1Close(Sender: TObject);

View File

@ -160,7 +160,7 @@ end;
procedure TWebBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); procedure TWebBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TWebBrowserFrm.ChromiumWindow1Close(Sender: TObject); procedure TWebBrowserFrm.ChromiumWindow1Close(Sender: TObject);

View File

@ -240,7 +240,7 @@ end;
procedure TJSDialogBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); procedure TJSDialogBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TJSDialogBrowserFrm.ChromiumWindow1Close(Sender: TObject); procedure TJSDialogBrowserFrm.ChromiumWindow1Close(Sender: TObject);

View File

@ -184,7 +184,7 @@ end;
procedure TMainForm.ChildDestroyedMsg(var aMessage : TMessage); procedure TMainForm.ChildDestroyedMsg(var aMessage : TMessage);
begin begin
// If there are no more child forms we can destroy the main form // If there are no more child forms we can destroy the main form
if (MDIChildCount = 0) then if FClosing and (MDIChildCount = 0) then
begin begin
ButtonPnl.Enabled := False; ButtonPnl.Enabled := False;
FCanClose := True; FCanClose := True;

View File

@ -195,7 +195,7 @@ end;
procedure TMainForm.ChildDestroyedMsg(var aMessage : TMessage); procedure TMainForm.ChildDestroyedMsg(var aMessage : TMessage);
begin begin
// If there are no more child forms we can destroy the main form // If there are no more child forms we can destroy the main form
if (MDIChildCount = 0) then if FClosing and (MDIChildCount = 0) then
begin begin
ButtonPnl.Enabled := False; ButtonPnl.Enabled := False;
FCanClose := True; FCanClose := True;

View File

@ -150,7 +150,7 @@ end;
procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject); procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TForm1.ChromiumWindow1Close(Sender: TObject); procedure TForm1.ChromiumWindow1Close(Sender: TObject);

View File

@ -175,7 +175,7 @@ end;
procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1Close(Sender: TObject); procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1Close(Sender: TObject);

View File

@ -157,7 +157,7 @@ end;
procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject); procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TForm1.Chromium_OnBeforePopup(Sender: TObject; procedure TForm1.Chromium_OnBeforePopup(Sender: TObject;

View File

@ -8,9 +8,8 @@
<Unit0> <Unit0>
<Filename Value="CRBrowser.lpr"/> <Filename Value="CRBrowser.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="40"/> <TopLine Value="40"/>
<CursorPos X="10" Y="71"/> <CursorPos X="61" Y="62"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/> <DefaultSyntaxHighlighter Value="Delphi"/>
@ -21,9 +20,10 @@
<ComponentName Value="MainForm"/> <ComponentName Value="MainForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<TopLine Value="89"/> <TopLine Value="166"/>
<CursorPos Y="106"/> <CursorPos Y="169"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
@ -71,7 +71,7 @@
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit6> </Unit6>
</Units> </Units>
<JumpHistory Count="13" HistoryIndex="12"> <JumpHistory Count="14" HistoryIndex="13">
<Position1> <Position1>
<Filename Value="uMainForm.pas"/> <Filename Value="uMainForm.pas"/>
</Position1> </Position1>
@ -123,6 +123,10 @@
<Filename Value="uMainForm.pas"/> <Filename Value="uMainForm.pas"/>
<Caret Line="117" Column="69" TopLine="109"/> <Caret Line="117" Column="69" TopLine="109"/>
</Position13> </Position13>
<Position14>
<Filename Value="uMainForm.pas"/>
<Caret Line="73" Column="30" TopLine="59"/>
</Position14>
</JumpHistory> </JumpHistory>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>

View File

@ -1,7 +1,7 @@
object MainForm: TMainForm object MainForm: TMainForm
Left = 150 Left = 386
Height = 658 Height = 658
Top = 86 Top = 91
Width = 781 Width = 781
Caption = 'Custom Resource Browser' Caption = 'Custom Resource Browser'
ClientHeight = 658 ClientHeight = 658

View File

@ -166,7 +166,7 @@ end;
procedure TMainForm.ChromiumWindow1BeforeClose(Sender: TObject); procedure TMainForm.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TMainForm.ChromiumWindow1Close(Sender: TObject); procedure TMainForm.ChromiumWindow1Close(Sender: TObject);

View File

@ -22,15 +22,15 @@
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<TopLine Value="107"/> <TopLine Value="247"/>
<CursorPos X="40" Y="105"/> <CursorPos X="41" Y="251"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/> <DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1> </Unit1>
</Units> </Units>
<JumpHistory Count="4" HistoryIndex="3"> <JumpHistory Count="5" HistoryIndex="4">
<Position1> <Position1>
<Filename Value="JSDialogBrowser.lpr"/> <Filename Value="JSDialogBrowser.lpr"/>
</Position1> </Position1>
@ -46,6 +46,10 @@
<Filename Value="uJSDialogBrowser.pas"/> <Filename Value="uJSDialogBrowser.pas"/>
<Caret Line="88" Column="386" TopLine="70"/> <Caret Line="88" Column="386" TopLine="70"/>
</Position4> </Position4>
<Position5>
<Filename Value="uJSDialogBrowser.pas"/>
<Caret Line="72" Column="32" TopLine="64"/>
</Position5>
</JumpHistory> </JumpHistory>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>

View File

@ -248,7 +248,7 @@ end;
procedure TJSDialogBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); procedure TJSDialogBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TJSDialogBrowserFrm.ChromiumWindow1Close(Sender: TObject); procedure TJSDialogBrowserFrm.ChromiumWindow1Close(Sender: TObject);

View File

@ -22,8 +22,8 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<TopLine Value="135"/> <TopLine Value="149"/>
<CursorPos X="64" Y="129"/> <CursorPos X="41" Y="170"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>

View File

@ -167,7 +167,7 @@ end;
procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject); procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TForm1.ChromiumWindow1Close(Sender: TObject); procedure TForm1.ChromiumWindow1Close(Sender: TObject);

View File

@ -22,8 +22,8 @@
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<TopLine Value="111"/> <TopLine Value="150"/>
<CursorPos X="41" Y="122"/> <CursorPos X="41" Y="179"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>

View File

@ -176,7 +176,7 @@ end;
procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1Close(Sender: TObject); procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1Close(Sender: TObject);

View File

@ -20,9 +20,10 @@
<ComponentName Value="Form1"/> <ComponentName Value="Form1"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/> <EditorIndex Value="2"/>
<TopLine Value="75"/> <TopLine Value="147"/>
<CursorPos X="39" Y="169"/> <CursorPos X="41" Y="160"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
@ -31,9 +32,8 @@
<Unit2> <Unit2>
<Filename Value="uCEFLoader.pas"/> <Filename Value="uCEFLoader.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<TopLine Value="51"/> <TopLine Value="36"/>
<CursorPos Y="65"/> <CursorPos Y="65"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
<Loaded Value="True"/> <Loaded Value="True"/>

View File

@ -157,7 +157,7 @@ end;
procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject); procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject);
begin begin
FCanClose := True; FCanClose := True;
Close; PostMessage(Handle, WM_CLOSE, 0, 0);
end; end;
procedure TForm1.Chromium_OnBeforePopup(Sender: TObject; procedure TForm1.Chromium_OnBeforePopup(Sender: TObject;

View File

@ -78,7 +78,6 @@ type
procedure WndProc(var aMessage: TMessage); override; procedure WndProc(var aMessage: TMessage); override;
procedure OnCloseMsg(var aMessage : TMessage); message CEF_DOONCLOSE; procedure OnCloseMsg(var aMessage : TMessage); message CEF_DOONCLOSE;
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; var aAction : TCefCloseBrowserAction); procedure WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
@ -203,9 +202,7 @@ end;
procedure TChromiumWindow.WebBrowser_OnBeforeClose(Sender: TObject; const browser: ICefBrowser); procedure TChromiumWindow.WebBrowser_OnBeforeClose(Sender: TObject; const browser: ICefBrowser);
begin begin
{$IFDEF MSWINDOWS} if assigned(FOnBeforeClose) then FOnBeforeClose(self);
if assigned(FOnBeforeClose) then PostMessage(Handle, CEF_DOONBEFORECLOSE, 0, 0);
{$ENDIF}
end; end;
procedure TChromiumWindow.WebBrowser_OnAfterCreated(Sender: TObject; const browser: ICefBrowser); procedure TChromiumWindow.WebBrowser_OnAfterCreated(Sender: TObject; const browser: ICefBrowser);
@ -221,11 +218,6 @@ begin
if assigned(FOnClose) then FOnClose(self); if assigned(FOnClose) then FOnClose(self);
end; end;
procedure TChromiumWindow.OnBeforeCloseMsg(var aMessage : TMessage);
begin
if assigned(FOnBeforeClose) then FOnBeforeClose(self);
end;
procedure TChromiumWindow.OnAfterCreatedMsg(var aMessage : TMessage); procedure TChromiumWindow.OnAfterCreatedMsg(var aMessage : TMessage);
begin begin
UpdateSize; UpdateSize;

View File

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