Code: Select all
type th = class(TThread)
private
chrom:TChromium;
protected
procedure Execute; Override;
public
procedure Chromium1LoadEnd(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame;
httpStatusCode: Integer);
procedure th.Chromium1LoadEnd(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame;
httpStatusCode: Integer);
begin
if (frame <> nil) and (frame.IsMain) and (httpstatuscode=200) then begin
form1.memo1.lines.add('WORK NOW DESTROYING>>');
PostMessage(Handle, CEF_AFTERCREATED, 0, 0);
chrom.CloseBrowser(false);
chrom.CloseBrowser(true);
chrom.CloseAllBrowsers;
PostMessage(chrom.BrowserHandle, CEF_DESTROY, 0, 0);
PostMessage(Handle, CEF_DESTROY, 0, 0);
PostMessage(Self.Handle, CEF_DESTROY, 0, 0);
PostMessage(Handle, WM_QUIT, 0, 0);
PostMessage(Self.Handle, WM_QUIT, 0, 0);
PostMessage(Handle, WM_CLOSE, 0, 0);
PostMessage(Self.Handle, WM_CLOSE, 0, 0);
chrom.CloseAllBrowsers;
chrom := nil;
Freeandnil(chrom);
chrom.free;
end;
end;
procedure th.Execute;
begin
inherited;
while work do begin
...
if work then begin
chrom:=TChromium.Create(nil);
chrom.OnLoadEnd:=Chromium1LoadEnd;
chrom.DefaultUrl:='https://';
if not chrom.Initialized then chrom.CreateBrowser(nil,'');
if chrom.Initialized=false then
chrom.Initialized
end;
end;
end;
Code: Select all
uCEFChromiumCore
{$IFDEF MSWINDOWS}
procedure TChromiumCore.CreateWindowWithWndProc;
begin
if (Owner = nil) or not(csDesigning in ComponentState) then
FCompHandle := AllocateHWnd({$IFDEF FPC}@{$ENDIF}WndProc);
end;
{$ENDIF}