CEF4Delphi/demos/Delphi_FMX_Linux/FMXExternalPumpBrowser2/FMXExternalPumpBrowser2.dpr

36 lines
1.4 KiB
ObjectPascal

program FMXExternalPumpBrowser2;
uses
// FMUX.Config.pas belongs to the FMXLinux project but we need to override it.
// Read the comments in that unit for more details.
FMUX.Config in 'FMUX.Config.pas',
// FMX initializes GTK in the initialization section of some of its units and
// that means that GTK is already initialized when the code in the DPR is
// executed.
// Chromium has to be initialized in a process with only one thread but GTK
// creates several threads during its initialization. To avoid this problem
// we have to initialize CEF before GTK.
// uCEFLoader *MUST* be the first unit in the DPR file to make sure Chromium
// is initialized before GTK.
// uCEFLoader *MUST NOT* make any reference to any FMX unit to keep the right
// initalization order.
// Read the answer to this question for more more information :
// https://stackoverflow.com/questions/52103407/changing-the-initialization-order-of-the-unit-in-delphi
uCEFLoader in 'uCEFLoader.pas',
System.StartUpCopy,
FMX.Forms,
uFMXExternalPumpBrowser2 in 'uFMXExternalPumpBrowser2.pas' {FMXExternalPumpBrowserFrm};
{$R *.res}
begin
// At this point it's safe to initialize GTK
InitializeGTK;
Application.Initialize;
Application.CreateForm(TFMXExternalPumpBrowserFrm, FMXExternalPumpBrowserFrm);
Application.Run;
// The form needs to be destroyed *BEFORE* stopping the work scheduler.
FMXExternalPumpBrowserFrm.Free;
end.