![]() |
Initialisierung und starten von CEF4
Es geht um die Delphi-Version des "Chromium-Embedded-Framework"(CEF4).
Nachdem ich die Komponenten problemlos installiert hatte, wollte ich die Demos in der IDE (Delphi 10.1 Berlin) ausprobieren und musste feststellen, das gar nichts ging. Egal welche Demo ich ausprobiert hatte: es kamen nur Fehler! Also hatte ich mir die Initialisierung und den Start der Chromium Engine angesehen und einen eigenen Weg gefunden diese erfolgreich umzusetzen. Bis ich soweit war hatte ich viele Quelltextzeilen zum analysieren vor mir und stellte dabei fest, das die Einbindung und die Nutzung der Komponenten (für meine Begriffe) sehr "umständlich" umgesetzt worden ist. Und nun zum eigentlichen Punkt: der Autor Salvador Díaz Fau hat in seinen Demos die Initialisierung und den Start in die Objekt Pascal-Projektdatei (DPR) gelegt und in der Delphi Projekt-Datei (dproj) hat er dann die nicht-visuellen Komponenten erstellt und initialisiert. Soweit so gut, aber er muss in der Delphi Projekt-Datei die Timer-Komponente nutzen, um festzustellen, ob die Chromium Engine gestartet ist. Ich habe die Initialisierung und den Start in die "FromCreate"-Ereignisroutine gelegt und dort dann die Komponenten, die ich per IDE der Form hinzugefügt habe, entsprechend zugewiesen bzw. initialisiert. Welche Einbindung ist jetzt die bessere Wahl und ist konformer bezüglich IDE? |
AW: Initialisierung und starten von CEF4
Ende 2020 würde ich mir überlegen nicht gleich auf D10.4 zu gehen und auf Edge Chromium zu setzen.
Nachteil: Wird nicht überall schon gehen Vorteil: Kein 100 MB Dateien mit zu verteilen, Keine Umständliche Initialisierung |
AW: Initialisierung und starten von CEF4
Zitat:
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). Zitat:
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!). |
AW: Initialisierung und starten von CEF4
Zitat:
![]() Bis bald... Thomas |
AW: Initialisierung und starten von CEF4
Zitat:
* Windows 10 ist inzwischen Standard und sonst gibt es nichts mehr. * Windows XP und 7 sind offiziell praktisch tot (als Entwickler darf man sie ignorieren, so lange es keine expliziten Anforderungen gibt) * Und gewisse andere Windows-Editionen will niemand freiwillig benutzen. |
AW: Initialisierung und starten von CEF4
Zitat:
Zitat:
Jedenfalls meckert er wenn Binaries älter als die Delphi-Units sind. Umgekehrt hatte ich das noch nicht geprüft. Spass beiseite: ich habe keine Lust mir Ärger einzuhandeln, wenn ich Binaries mitliefere die eigentlich nicht mitgeliefert werden dürfen (Lizenzbestimmung). CEF ist BSD. Welche Probleme hast du damit? Zitat:
Zitat:
Zitat:
Zitat:
erst mit FF und Chrome und dem versenken in der bedeutungslosigkeit ist er aktualisiert und durch Edge Gen1 ersetzt worden. Und das er auch noch Jahrelang da sein wird ist klar. Vieles in Windows setzt ihn Vorraus. |
AW: Initialisierung und starten von CEF4
Zitat:
Zu dem "TAdvWebBrowser": ich habe ihn nach einigem suchen gefunden und das "Problem" dabei ist: er ist Bestandteil vom "TMS VCL UI Pack" und ist nicht als einzelne Komponente erhältlich. Es wäre finanziell zwar so gerade noch ok wenn ich mir das "TMS VCL UI Pack" kaufen würde (beide Augen und alle "Hühneraugen" müssten dann allerdings zugedrückt sein :lol: ). Aber: dann habe ich Komponenten dabei die ich, zum einen, nie brauchen werde und zum anderen habe ich andere mit ähnlichem Funktionsumfang bereits als OpenSource installiert und deshalb wären dann, auf den tatsächlichen Nutzen umgerechnet, 295,00 Euro für eine Komponente die ich dann auch wirklich benutzen würde, einfach zu teuer. Hinzu kommt noch: ich brauche doch gar keine andere Browser-Komponente und das habe ich auch nirgendwo geschrieben (s. ursprünglichen Beitrag von mir). Ich benutze doch die CEF4-Komponenten und bin auch mehr als zufrieden damit, weil sie mir Möglichkeiten bietet die ich bis jetzt bei keiner anderen, mir bekannten, OpenSource-Komponente gefunden habe. Der ursprüngliche Beitrag von mir war lediglich die Frage, ob die Einbindung vom CEF4Delphi-Autor (DPR-Modifikation und dproj) oder meine (rein über "FormCreate") die korrekte ist. Es ging nie darum, ob ich eine andere Browser-Komponente benötige oder auf das aktuelle Delphi upgraden sollte. Nur so als "Randnotiz": ich habe auch noch ein "neues, noch nie installiertes Delphi 10.2" rumliegen... :-D |
AW: Initialisierung und starten von CEF4
Zitat:
Zitat:
Ich habe mich bis jetzt lediglich damit beschäftigt die CEF4Delphi-Komponenten kennen zu lernen, da die mitgelieferten Demos (zumindest bei mir) nicht funktionieren. Wenn ich soweit bin, das ich für mich selbst entscheide, das ich das Projekt weiterführe und dann auch veröffentlichen werde, kümmere ich mich um die Lizenz. Für mich persönlich macht es keinen Sinn wenn ich mich um die Lizenzbestimmungen im Voraus kümmere und dann brauche ich die ganzen Lizenzbestimmungen im Nachhinein überhaupt nicht, weil z. B. die Komponenten gar nicht im Projekt benutzt werden. Zitat:
Für das "Autoupdate" habe ich schon eine Idee, aber auch hier gilt: bitte nicht nachfragen. Ich erkläre hier nichts (meine ich nicht böse, sondern ich möchte einfach nicht darüber sprechen, weil es sonst möglicherweise in endlose Diskussionen "ausufert", warum ich das so oder jenes so mache). Wenn wirklich Binaries mitgeliefert werden müssen, dann kann man doch einfach das Installationsprogramm der Anwendung so konfigurieren, das diese automatisch während der Installation heruntergeladen und "installiert" werden und somit "erledigt" sich das quasi von selbst. |
AW: Initialisierung und starten von CEF4
Zitat:
Es könnte aber sein das bestimmte Funktionen verwendet werden müssen, die Edge nicht ohne Weiteres freigeschaltet hat. Habe mit Edge noch nicht rumgespielt, aber kann der z.B. lokale Files öffnen ? Mit Chomium geht definitiv (fast) Alles. |
AW: Initialisierung und starten von CEF4
Zitat:
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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