AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Initialisierung und starten von CEF4

Ein Thema von DXler · begonnen am 19. Nov 2020 · letzter Beitrag vom 18. Jun 2021
 
Benutzerbild von DXler
DXler

Registriert seit: 5. Nov 2003
53 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Initialisierung und starten von CEF4

  Alt 19. Nov 2020, 14:21
Ende 2020 würde ich mir überlegen nicht gleich auf D10.4 zu gehen und auf Edge Chromium zu setzen.
Ist im ersten Moment eine wirklich gute Idee.

Jetzt kommt das "aber": der Umstieg auf Delphi 10.4 ist für mich finanziell nicht unproblematisch, da ich nicht jedes Jahr die neue Version kaufe und somit auch nicht den günstigeren Upgrade-Preis nutzen kann, sondern ich muß warten, bis ich ein Angebot finde bei dem ich entsprechend sparen kann.

Im Moment gibt es zwar Delphi 10.4 für 900 Euro zuzgl. MwSt. aber das sind immernoch über 1000 Euro und somit für mich (momentan) nicht machbar (private Gründe).


Nachteil: Wird nicht überall schon gehen
Vorteil: Kein 100 MB Dateien mit zu verteilen, Keine Umständliche Initialisierung
Die notwendigen CEF-Binaries muss sich der Anwender selbst herunterladen, da ich immer dafür bin, das dieser auch was "nützliches" machen soll.

Spass beiseite: ich habe keine Lust mir Ärger einzuhandeln, wenn ich Binaries mitliefere die eigentlich nicht mitgeliefert werden dürfen (Lizenzbestimmung).


Welche "umständliche Initialisierung"?


Die Initialisierung die ich nutze ist ganz einfach und "im Handumdrehen" erledigt:

1) benötigte Units einbinden,

2) in die Ereignisroutine "FormCreate" kommen die folgenden Zeilen rein:

GlobalCEFApp := TCefApplication.Create;

GlobalCEFApp.FrameworkDirPath := <Pfad zu den Chromium-Binaries>;
GlobalCEFApp.ResourcesDirPath := <Pfad zu den Resources>;
GlobalCEFApp.LocalesDirPath := <Pfad zum "locales"-Verzeichnis;
GlobalCEFApp.EnableGPU := True; // Enable hardware acceleration
GlobalCEFApp.cache := <Pfad zum "cache"-Verzeichnis>;
GlobalCEFApp.UserDataPath := <Pfad zum "data"-Verzeichnis>;


dann wird geprüft, ob die Funktion "StartMainProcess" den Wert "True" zurück liefert.

Trifft dies zu, wird z. B. der "Browser" für die Komponente "ChromiumWindow" mit

ChromiumWindow1.CreateBrowser;
ChromiumWindow1.Initialized;

erstellt und initialisiert und zum Schluss werden (falls notwendig) noch ein paar Ereignisrouten von der Chromium-Komponente zugewiesen:

z. B.:

ChromiumWindow1.ChromiumBrowser.OnBeforeDownload := BeforeDownload;
ChromiumWindow1.ChromiumBrowser.OnDownloadUpdated := DownloadUpdated;


Mehr brauche ich nicht.


Hinzu kommt noch: wenn ich das Chromium-Embedded-Framework nutze habe ich die Sicherheit das dies auch langfristig aktuell gehalten wird.

Bei Micro$oft ist es so, das man nie weiß, wie aktuell das CEF für Edge gehalten wird... Bestes Beispeil: IE 11. Wurde jahrelang vernachlässigt bis er durch den aktuellen Edge "ergänzt" wurde (denn der IE 11 ist immernoch da!).
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz