2022-10-15 19:29:11 +02:00
|
|
|
program FMXVirtualUIBrowser;
|
|
|
|
|
|
|
|
uses
|
|
|
|
{$IFDEF DELPHI17_UP}
|
|
|
|
System.StartUpCopy,
|
|
|
|
{$ENDIF }
|
|
|
|
FMX.Forms,
|
|
|
|
uCEFApplication,
|
|
|
|
uCEFFMXWorkScheduler,
|
|
|
|
uFMXVirtualUIBrowser in 'uFMXVirtualUIBrowser.pas' {MainForm},
|
|
|
|
uFMXApplicationService in 'uFMXApplicationService.pas';
|
|
|
|
|
|
|
|
{$R *.res}
|
|
|
|
|
2023-11-26 19:28:28 +01:00
|
|
|
const
|
|
|
|
IMAGE_FILE_LARGE_ADDRESS_AWARE = $0020;
|
|
|
|
|
|
|
|
// CEF needs to set the LARGEADDRESSAWARE ($20) flag which allows 32-bit processes to use up to 3GB of RAM.
|
|
|
|
{$IFDEF WIN32}{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}{$ENDIF}
|
2022-10-15 19:29:11 +02:00
|
|
|
|
|
|
|
begin
|
|
|
|
// GlobalCEFApp creation and initialization moved to a different unit to fix the memory leak described in the bug #89
|
|
|
|
// https://github.com/salvadordf/CEF4Delphi/issues/89
|
|
|
|
CreateGlobalCEFApp;
|
|
|
|
|
|
|
|
if GlobalCEFApp.StartMainProcess then
|
|
|
|
begin
|
|
|
|
Application.Initialize;
|
|
|
|
Application.CreateForm(TMainForm, MainForm);
|
|
|
|
Application.Run;
|
|
|
|
|
|
|
|
// The form needs to be destroyed *BEFORE* stopping the scheduler.
|
|
|
|
MainForm.Free;
|
|
|
|
|
|
|
|
GlobalFMXWorkScheduler.StopScheduler;
|
|
|
|
end;
|
|
|
|
|
|
|
|
DestroyGlobalCEFApp;
|
|
|
|
DestroyGlobalFMXWorkScheduler;
|
|
|
|
end.
|