Hello,
I am trying to create a frame to encapsulate the browser functions, and for some reason the URL is not being loaded. Here is the frame code. I call .Init in FormShow of the form that hosts the frame. I also have necessary stuff in .dpr like CEF application creation, if not Start...etc..
Thank you.
unit ChromiumFrame;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes,
uCEFWinControl, uCEFSentinel, uCEFChromiumCore, ExtCtrls
;
type
TfrmChromiumMap = class(TFrame)
CEFWindowParent1: TCEFWindowParent;
Chromium1: TChromium;
tmrCreate: TTimer;
procedure Chromium1AfterCreated(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 extra_info: ICefDictionaryValue; var noJavascriptAccess, Result: Boolean);
procedure Chromium1CertificateError(Sender: TObject; const browser: ICefBrowser; certError: Integer; const requestUrl: ustring; const sslInfo: ICefSslInfo;
const callback: ICefRequestCallback; out Result: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction);
procedure tmrCreateTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Init;
procedure Finalize;
end;
implementation
{$R *.dfm}
procedure TfrmChromiumMap.Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
begin
//Chromium1.LoadURL(MyURL)
//browser.MainFrame.LoadUrl() tried that as well
end;
// -----------
procedure TfrmChromiumMap.Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
begin
;
end;
// -----------
procedure TfrmChromiumMap.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 extra_info: ICefDictionaryValue; var noJavascriptAccess, Result: Boolean);
begin
;
end;
// -----------
procedure TfrmChromiumMap.Chromium1CertificateError(Sender: TObject; const browser: ICefBrowser; certError: Integer; const requestUrl: ustring; const sslInfo: ICefSslInfo;
const callback: ICefRequestCallback; out Result: Boolean);
begin
result := TRUE;
callback.cont(TRUE)
end;
// -----------
procedure TfrmChromiumMap.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction);
begin
;
end;
// -----------
procedure TfrmChromiumMap.Init;
begin
tmrCreate.Enabled := TRUE
end;
// -----------
procedure TfrmChromiumMap.Finalize;
begin
end;
// -----------
procedure TfrmChromiumMap.tmrCreateTimer(Sender: TObject);
begin
tmrCreate.Enabled := FALSE;
if (not Chromium1.CreateBrowser(CEFWindowParent1)) and (not Chromium1.Initialized) then
tmrCreate.Enabled := TRUE;
end;
// -----------
end.
Disclosure Statement: This site contains affiliate links, which means that I may receive a commission if you make a purchase using these links. As an eBay Partner, I earn from qualifying purchases.
TChromium in a frame
- salvadordf
- Posts: 4575
- Joined: Thu Feb 02, 2017 12:24 pm
- Location: Spain
- Contact:
Re: TChromium in a frame
Hi,
The TabbedBrowser2 demo uses browsers in frames and it works fine. Use that demo as a template for your own application.
https://github.com/salvadordf/CEF4Delph ... edBrowser2
The TabbedBrowser2 demo uses browsers in frames and it works fine. Use that demo as a template for your own application.
https://github.com/salvadordf/CEF4Delph ... edBrowser2