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
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von DXler
DXler

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

Initialisierung und starten von CEF4

  Alt 19. Nov 2020, 13:30
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?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Initialisierung und starten von CEF4

  Alt 19. Nov 2020, 13:39
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
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
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
mytbo

Registriert seit: 8. Jan 2007
461 Beiträge
 
#4

AW: Initialisierung und starten von CEF4

  Alt 19. Nov 2020, 14:53
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.
Wenn du nicht in Delphi 10.4 investieren kannst, dann vielleicht als Komponente von TMS. Hier ein Blog Artikel dazu.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#5

AW: Initialisierung und starten von CEF4

  Alt 19. Nov 2020, 15:38
Zitat:
und auf Edge Chromium zu setzen.
Edge sollte inzwischen auf allen Benutzer-Windows10-Installationen vorhanden sein (wurde mitte des Jahres überall per Update ausgerollt) und beim Rest kann der Admin das in der Firma einspielen, wenn's noch fehlt.

* 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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (19. Nov 2020 um 16:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Initialisierung und starten von CEF4

  Alt 19. Nov 2020, 16:38
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).
Wenn du Delphi privat (oder nur wenige Einnahmen hast) kostet dich das 0 € -> Community-Edition

Die notwendigen CEF-Binaries muss sich der Anwender selbst herunterladen, da ich immer dafür bin, das dieser auch was "nützliches" machen soll.
Ganz schlechte Idee. Die Binaries müssen zu deinen Delphi-Units passen.
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?

Welche "umständliche Initialisierung"?
Kenn ich. Ist halt mehr als ein Einzeiler

Hinzu kommt noch: wenn ich das Chromium-Embedded-Framework nutze habe ich die Sicherheit das dies auch langfristig aktuell gehalten wird.
Auch die Version beim Kunden? Hast du einen Autoupdater gebaut=

Bei Micro$oft ist es so, das man nie weiß, wie aktuell das CEF für Edge gehalten wird...
Das für MS Edge ihr supporteter Browser ist, ist er sicherlich aktuell

Bestes Beispeil: IE 11. Wurde jahrelang vernachlässigt bis er durch den aktuellen Edge "ergänzt" wurde (denn der IE 11 ist immernoch da!).
Schlechtes Beispiel. Der IE wurde (was HTML5 betrifft) vernachlässigt weil er der Platzhirsch war.
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DXler
DXler

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

AW: Initialisierung und starten von CEF4

  Alt 19. Nov 2020, 16:50
Wenn du nicht in Delphi 10.4 investieren kannst, dann vielleicht als Komponente von TMS. Hier ein Blog Artikel dazu.
Also: zuerst einmal finde ich es toll, das versucht wird mir zu helfen. Dafür schon mal ein großes "Danke schön"!

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 ).

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...
  Mit Zitat antworten Zitat
Benutzerbild von DXler
DXler

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

AW: Initialisierung und starten von CEF4

  Alt 19. Nov 2020, 17:20
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).
Wenn du Delphi privat (oder nur wenige Einnahmen hast) kostet dich das 0 € -> Community-Edition
Ich weiß! Allerdings gibt es, soweit ich weiß, von Delphi 10.4 noch keine Community-Edition. Somit ist die Delphi 10.3 die aktuelle und die habe ich auch installiert, aber noch nicht in Benutzung.



Die notwendigen CEF-Binaries muss sich der Anwender selbst herunterladen, da ich immer dafür bin, das dieser auch was "nützliches" machen soll.
Ganz schlechte Idee. Die Binaries müssen zu deinen Delphi-Units passen.
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?

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.



Hinzu kommt noch: wenn ich das Chromium-Embedded-Framework nutze habe ich die Sicherheit das dies auch langfristig aktuell gehalten wird.
Auch die Version beim Kunden? Hast du einen Autoupdater gebaut=
Bis jetzt gibt es bei Kunden noch keine Programme um die ich mich kümmern müsste. Ich werde, wenn alles so klappt wie ich mir das denke, auch keine (direkten) Kunden haben (das "warum" und "wieso" möchte ich nicht erklären => bitte nicht danach fragen! Danke! )

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.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#9

AW: Initialisierung und starten von CEF4

  Alt 20. Nov 2020, 06:50
Ende 2020 würde ich mir überlegen nicht gleich auf D10.4 zu gehen und auf Edge Chromium zu setzen.
Das stimmt.
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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Initialisierung und starten von CEF4

  Alt 20. Nov 2020, 07:03
Ich weiß! Allerdings gibt es, soweit ich weiß, von Delphi 10.4 noch keine Community-Edition. Somit ist die Delphi 10.3 die aktuelle und die habe ich auch installiert, aber noch nicht in Benutzung.
Das könnte natürlich sein. Aber sollte das nicht noch kommen?

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.
Ok, bei uns ist es umgekehrt. Bevor eine Komponente weiter untersucht wird, wird geprüft ob die Lizenz überhaupt kompatible mit unseren (Closed Source) ist.

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).
Wir haben auch einen Updater. Die komplexität sollte man nicht unterschätzen. Es ist mehr als nur "ein paar Dateien austauschen".

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.
Nicht unbedingt. Das muss auch so erlaubt sein und eine Beschränkung von Lizenzen (z.B. die GPL-Falle bei MySQL) umgeht man damit nicht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz