You've already forked CEF4Delphi
mirror of
https://github.com/salvadordf/CEF4Delphi.git
synced 2025-11-23 21:34:53 +02:00
Fixed the CustomResourceHandler demo
- Added TCEFSentinel to more demos
This commit is contained in:
@@ -22,11 +22,11 @@
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<IsVisibleTab Value="True"/>
|
||||
<TopLine Value="538"/>
|
||||
<CursorPos Y="542"/>
|
||||
<TopLine Value="169"/>
|
||||
<CursorPos X="82" Y="183"/>
|
||||
<UsageCount Value="21"/>
|
||||
<Bookmarks Count="1">
|
||||
<Item0 X="85" Y="477" ID="1"/>
|
||||
<Item0 X="85" Y="487" ID="1"/>
|
||||
</Bookmarks>
|
||||
<Loaded Value="True"/>
|
||||
<LoadedDesigner Value="True"/>
|
||||
@@ -118,123 +118,123 @@
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="30" Column="122" TopLine="21"/>
|
||||
<Caret Line="115" Column="25" TopLine="79"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="55" Column="25" TopLine="21"/>
|
||||
<Caret Line="15" Column="103"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="115" Column="25" TopLine="79"/>
|
||||
<Caret Line="64" Column="90" TopLine="26"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="15" Column="103"/>
|
||||
<Caret Line="373" Column="76" TopLine="336"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="64" Column="90" TopLine="26"/>
|
||||
<Caret Line="470" Column="70" TopLine="433"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="373" Column="76" TopLine="336"/>
|
||||
<Caret Line="524" Column="40" TopLine="487"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="470" Column="70" TopLine="433"/>
|
||||
<Caret Line="555" Column="39" TopLine="518"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="524" Column="40" TopLine="487"/>
|
||||
<Caret Line="63" Column="18" TopLine="41"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="555" Column="39" TopLine="518"/>
|
||||
<Caret Line="373" Column="76" TopLine="336"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="63" Column="18" TopLine="41"/>
|
||||
<Filename Value="JSEval.lpr"/>
|
||||
<Caret Line="60" Column="76" TopLine="44"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="373" Column="76" TopLine="336"/>
|
||||
<Caret Line="125" Column="29" TopLine="114"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="JSEval.lpr"/>
|
||||
<Caret Line="60" Column="76" TopLine="44"/>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="536" Column="38" TopLine="518"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="125" Column="29" TopLine="114"/>
|
||||
<Caret Line="511" Column="75" TopLine="499"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="536" Column="38" TopLine="518"/>
|
||||
<Caret Line="463" Column="50" TopLine="452"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="511" Column="75" TopLine="499"/>
|
||||
<Caret Line="372" TopLine="360"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="463" Column="50" TopLine="452"/>
|
||||
<Caret Line="54" Column="73" TopLine="24"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="372" TopLine="360"/>
|
||||
<Caret Line="51" Column="90" TopLine="24"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="54" Column="73" TopLine="24"/>
|
||||
<Caret Line="59" Column="37" TopLine="24"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="51" Column="90" TopLine="24"/>
|
||||
<Caret Line="181" Column="63" TopLine="162"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="59" Column="37" TopLine="24"/>
|
||||
<Filename Value="JSEval.lpr"/>
|
||||
<Caret Line="60" Column="76" TopLine="41"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="181" Column="63" TopLine="162"/>
|
||||
<Caret Line="125" Column="11" TopLine="121"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="JSEval.lpr"/>
|
||||
<Caret Line="60" Column="76" TopLine="41"/>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="542" Column="86" TopLine="533"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="125" Column="11" TopLine="121"/>
|
||||
<Caret Line="94" Column="43" TopLine="77"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="542" Column="86" TopLine="533"/>
|
||||
<Caret Line="210" Column="39" TopLine="203"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="94" Column="43" TopLine="77"/>
|
||||
<Caret Line="86" Column="71" TopLine="76"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="210" Column="39" TopLine="203"/>
|
||||
<Caret Line="510" Column="62" TopLine="492"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="86" Column="71" TopLine="76"/>
|
||||
<Filename Value="JSEval.lpr"/>
|
||||
<Caret Line="60" Column="76" TopLine="41"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="510" Column="62" TopLine="492"/>
|
||||
<Caret Line="126" Column="11" TopLine="109"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="JSEval.lpr"/>
|
||||
<Caret Line="60" Column="76" TopLine="41"/>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="542" TopLine="538"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="uJSEval.pas"/>
|
||||
<Caret Line="126" Column="11" TopLine="109"/>
|
||||
<Caret Line="552" TopLine="548"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
<RunParams>
|
||||
|
||||
@@ -73,4 +73,9 @@ object JSEvalFrm: TJSEvalFrm
|
||||
left = 16
|
||||
top = 96
|
||||
end
|
||||
object CEFSentinel1: TCEFSentinel
|
||||
OnClose = CEFSentinel1Close
|
||||
left = 16
|
||||
top = 160
|
||||
end
|
||||
end
|
||||
|
||||
@@ -47,7 +47,7 @@ uses
|
||||
LCLIntf, LCLType, LMessages, Messages, SysUtils, Variants, Classes, Graphics, Menus,
|
||||
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Types, ComCtrls, ClipBrd, base64,
|
||||
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
|
||||
uCEFWinControl;
|
||||
uCEFWinControl, uCEFSentinel;
|
||||
|
||||
const
|
||||
MINIBROWSER_SHOWTEXTVIEWER = WM_APP + $101;
|
||||
@@ -63,13 +63,18 @@ const
|
||||
BINARY_PARAM_JS = 'JSBinaryParameter';
|
||||
|
||||
type
|
||||
|
||||
{ TJSEvalFrm }
|
||||
|
||||
TJSEvalFrm = class(TForm)
|
||||
CEFSentinel1: TCEFSentinel;
|
||||
CEFWindowParent1: TCEFWindowParent;
|
||||
Chromium1: TChromium;
|
||||
AddressBarPnl: TPanel;
|
||||
GoBtn: TButton;
|
||||
AddressEdt: TEdit;
|
||||
Timer1: TTimer;
|
||||
procedure CEFSentinel1Close(Sender: TObject);
|
||||
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
||||
procedure GoBtnClick(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
@@ -174,21 +179,26 @@ uses
|
||||
// =================
|
||||
// 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.
|
||||
|
||||
// 3. TChromium.OnBeforeClose calls TCEFSentinel.Start, which will trigger TCEFSentinel.OnClose when the renderer processes are closed.
|
||||
// 4. TCEFSentinel.OnClose sets FCanClose := True and sends WM_CLOSE to the form.
|
||||
|
||||
procedure TJSEvalFrm.Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
|
||||
begin
|
||||
PostMessage(Handle, CEF_AFTERCREATED, 0, 0);
|
||||
end;
|
||||
|
||||
procedure TJSEvalFrm.Chromium1BeforeClose(Sender: TObject;
|
||||
const browser: ICefBrowser);
|
||||
procedure TJSEvalFrm.CEFSentinel1Close(Sender: TObject);
|
||||
begin
|
||||
FCanClose := True;
|
||||
PostMessage(Handle, WM_CLOSE, 0, 0);
|
||||
end;
|
||||
|
||||
procedure TJSEvalFrm.Chromium1BeforeClose(Sender: TObject;
|
||||
const browser: ICefBrowser);
|
||||
begin
|
||||
CEFSentinel1.Start;
|
||||
end;
|
||||
|
||||
procedure TJSEvalFrm.Chromium1BeforeContextMenu(Sender : TObject;
|
||||
const browser : ICefBrowser;
|
||||
const frame : ICefFrame;
|
||||
|
||||
Reference in New Issue
Block a user