Suggested changes / additions
Posted: Fri Apr 28, 2017 2:17 pm
We converted from a dcef3 project, and not all functions were available in CEF4Delphi, so I changed
And added one unit:
Code: Select all
unit uCEFClient;
...
var
CefInstances : Integer = 0; // HV: Moved to implementation
procedure CefDoMessageLoopWork; // HV: refactored to separate, interfaced procedure
implementation
...
procedure CefDoMessageLoopWork; // HV: refactored to separate, interfaced procedure
begin
if looping then Exit;
if (CefInstances > 0) then
begin
looping := True;
try
cef_do_message_loop_work;
finally
looping := False;
end;
end;
end;
procedure TimerProc(hwnd: HWND; uMsg: UINT; idEvent: Pointer; dwTime: DWORD); stdcall;
begin
CefDoMessageLoopWork; // HV
end;
Code: Select all
// ************************************************************************
// ***************************** CEF4Delphi *******************************
// ************************************************************************
//
// CEF4Delphi is based on DCEF3 which uses CEF3 to embed a chromium-based
// browser in Delphi applications.
//
// The original license of DCEF3 still applies to CEF4Delphi.
//
// For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef
//
// Copyright © 2017 Salvador Díaz Fau. All rights reserved.
//
// ************************************************************************
// ************ vvvv Original license and comments below vvvv *************
// ************************************************************************
(*
* Delphi Chromium Embedded 3
*
* Usage allowed under the restrictions of the Lesser GNU General Public License
* or alternatively the restrictions of the Mozilla Public License 1.1
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
*
* Unit owner : Hallvard Vassbotn (vassbotn@gmail.com)
* Web site : http://www.progdigy.com
* Repository : http://code.google.com/p/delphichromiumembedded/
* Group : http://groups.google.com/group/delphichromiumembedded
*
* Embarcadero Technologies, Inc is not permitted to use or redistribute
* this source code without explicit permission.
*
*)
unit uCEFMoreFunctions;
{$IFNDEF CPUX64}
{$ALIGN ON}
{$MINENUMSIZE 4}
{$ENDIF}
{$I cef.inc}
interface
uses
{$IFDEF DELPHI16_UP}
WinApi.Windows, System.Classes, System.SysUtils,
{$ELSE}
Windows, Classes, SysUtils,
{$ENDIF}
uCEFTypes; //, uCEFInterfaces, uCEFResourceHandler;
type
TUrlParts = record
spec: ustring;
scheme: ustring;
username: ustring;
password: ustring;
host: ustring;
port: ustring;
origin: ustring;
path: ustring;
query: ustring;
end;
function CefParseUrl(const url: ustring; var parts: TUrlParts): Boolean;
implementation
uses
uCEFLibFunctions, uCEFMiscFunctions, uCEFApplication;
function CefParseUrl(const url: ustring; var parts: TUrlParts): Boolean;
var
u: TCefString;
p: TCefUrlParts;
begin
FillChar(p, sizeof(p), 0);
u := CefString(url);
Result := cef_parse_url(@u, p) <> 0;
if Result then
begin
//parts.spec := CefString(@p.spec);
parts.scheme := CefString(@p.scheme);
parts.username := CefString(@p.username);
parts.password := CefString(@p.password);
parts.host := CefString(@p.host);
parts.port := CefString(@p.port);
parts.origin := CefString(@p.origin);
parts.path := CefString(@p.path);
parts.query := CefString(@p.query);
end;
end;
end.