program SimpleBrowser; {$mode objfpc}{$H+} {$I ../../../source/cef.inc} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} // "Interfaces" is a custom unit used to initialize the LCL WidgetSet // We keep the same name to avoid a Lazarus warning. Interfaces, // this includes the LCL widgetset Forms, uSimpleBrowser, { you can add units after this } uCEFApplication; {$R *.res} begin GlobalCEFApp := TCefApplication.Create; // In case you want to use custom directories for the CEF3 binaries, cache and user data. // If you don't set a cache directory the browser will use in-memory cache. { GlobalCEFApp.FrameworkDirPath := 'c:\cef'; GlobalCEFApp.ResourcesDirPath := 'c:\cef'; GlobalCEFApp.LocalesDirPath := 'c:\cef\locales'; GlobalCEFApp.EnableGPU := True; // Enable hardware acceleration GlobalCEFApp.cache := 'c:\cef\cache'; GlobalCEFApp.UserDataPath := 'c:\cef\User Data'; } // You *MUST* call GlobalCEFApp.StartMainProcess in a if..then clause // with the Application initialization inside the begin..end. // Read this https://www.briskbard.com/index.php?lang=en&pageid=cef if GlobalCEFApp.StartMainProcess then begin // The LCL Widgetset must be initialized after the CEF initialization and // only in the browser process. CustomWidgetSetInitialization; RequireDerivedFormResource:=True; Application.Scaled:=True; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; CustomWidgetSetFinalization; end; GlobalCEFApp.Free; GlobalCEFApp := nil; end.