Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Probleme beim Einbinden des TEdgeBrowsers (https://www.delphipraxis.net/204466-probleme-beim-einbinden-des-tedgebrowsers.html)

MEissing 29. Mai 2020 20:48

Probleme beim Einbinden des TEdgeBrowsers
 
Welcher Canary Build?

Delbor 29. Mai 2020 21:43

AW: Delphi "Sydney" (10.4) ist da!
 
Liste der Anhänge anzeigen (Anzahl: 3)
Guten Abend, MEissing

Von dieser Seite, den Link ganz rechts: Canary Channel:
Anhang 52589
Anhang 52590
Die DLLs liegen da:
Anhang 52591

Gruss
Delbor

jaenicke 29. Mai 2020 21:57

AW: Delphi "Sydney" (10.4) ist da!
 
Zitat:

Zitat von Delbor (Beitrag 1465880)
Die DLLs liegen da:

Da liegen sie, damit du sie von dort mit deiner Anwendung ausliefern kannst (darum ja der Ordnername Redist). Im Video hat Matthias ja auch gesagt, dass er selbst sie in das SysWow64 Verzeichnis gelegt hat, damit sie allen Testanwendungen direkt zur Verfügung steht.

Du kannst die passende DLL (32-Bit/64-Bit) neben deine Exe in das gleiche Verzeichnis packen.

Delbor 30. Mai 2020 07:14

AW: Delphi "Sydney" (10.4) ist da!
 
Hi jaenicke

Zitat:

Zitat von jaenicke (Beitrag 1465881)
Du kannst die passende DLL (32-Bit/64-Bit) neben deine Exe in das gleiche Verzeichnis packen.

Asche auf mein Haupt - das sind Grundlegende DLL-Regeln. Entweder, die DLL liegt im Verzeichnis der Exe oder wird explizit aus einem angegebenen Pfad geladen.
Dementsprechend liegt die DLL im Verzeichnis der Exe. Geändert hat dies jedoch nichts.

Gruss
Delbor

jaenicke 30. Mai 2020 08:29

AW: Delphi "Sydney" (10.4) ist da!
 
Wie sieht an der Stelle des Fehlers denn der Stacktrace aus? Dem Quelltext nach kommt die Exception aus TCustomEdgeBrowser. CreateCoreWebView2ControllerCompleted, oder? Die verschiedenen Ergebniswerte (AResult, ...) wären interessant.

In der Unit Vcl.Edge wird z.B. in der Funktion CheckWebView2Loaded die WebView2Loader.dll geladen und die Prozedurpointer initialisiert. Klappt das? (Ich vermute ja, da es sonst bis zur oben genannten Methode nicht kommen würde.)

Delbor 30. Mai 2020 09:30

AW: Delphi "Sydney" (10.4) ist da!
 
Hi jaenicke

Aus der Demo, in der ich zusätzlich die Datei VCL.Edge.pas geöffnet habe (die sich aber nicht im Ordner source/vcl/ befindet, sondern in source/internet) :
Delphi-Quellcode:
function CreateCoreWebView2EnvironmentWithOptions(
  BrowserExecutableFolder, UserDataFolder: LPCWSTR; const EnvironmentOptions: ICoreWebView2EnvironmentOptions;
  const Environment_created_handler: ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler): HRESULT; stdcall;
begin
  // CheckWebView2Loaded      <== Die Funktion aus deinem Thread
  if CheckWebView2Loaded then // Der Boolean scheint keine Boolean-Funktion zu sein. Zumindest gibts hier(VCL.Edge.pas) keine solche
    Result := _CreateCoreWebView2EnvironmentWithOptions(
      BrowserExecutableFolder, UserDataFolder, EnvironmentOptions, Environment_created_handler)
  else
    Result := E_FAIL;
end;
Schliesslich habe ich nach unten angegebenen Begriff auf C: und F: gesucht:

Zitat:

Informationen
---------------------------
Suchbegriff 'TCustomEdgeBrowser. CreateCoreWebView2ControllerCompleted' nicht gefunden
---------------------------
OK
Gruss
Delbor

jaenicke 30. Mai 2020 09:38

AW: Delphi "Sydney" (10.4) ist da!
 
Zitat:

Zitat von Delbor (Beitrag 1465902)
Schliesslich habe ich nach unten angegebenen Begriff auf C: und F: gesucht:

Das Leerzeichen musste ich wegen der Forensoftware einfügen. Das ist Zeile 970 in Vcl.Edge.pas.

Zitat:

Zitat von Delbor (Beitrag 1465902)
// CheckWebView2Loaded <== Die Funktion aus deinem Thread
if CheckWebView2Loaded then // Der Boolean scheint keine Boolean-Funktion zu sein. Zumindest gibts hier(VCL.Edge.pas) keine solche

Einfach einmal hinein debuggen... die Funktion befindet sich direkt über der von dir geposteten (Zeile 673).

Delbor 30. Mai 2020 10:33

AW: Delphi "Sydney" (10.4) ist da!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi jaenicke

Ich hab da mal einen Screenshot gemacht:

Anhang 52597

Die DLL wird also nicht geladen. Dabei habe ich erst die eine und dann die andere dahin kopiert. Ich gehe jedoch davon aus, dass unter win10 64 auch die entsprechende DLL geladen werden sollte.

Gruss
Delbor

Delbor 30. Mai 2020 10:42

AW: Delphi "Sydney" (10.4) ist da!
 
Hi zusammen
Zitat:

Zitat von MEissing (Beitrag 1465878)
Welcher Canary Build?

Unter dem von mir benutzten Link lässt sich kein Build wählen - aktuell ist dies aber 83.0, soviel ich mich erinnere.
Zitat:

Zitat von Delbor (Beitrag 1465880)
Guten Abend, MEissing

Von dieser Seite, den Link ganz rechts: Canary Channel:
Anhang 52589
Anhang 52590

Gruss
Delbor

MEissing 30. Mai 2020 11:15

AW: Delphi "Sydney" (10.4) ist da!
 
Die DLLs heißen ja beide gleich. Hier müssen Zielplattformen in der IDE mit der passenden DLL übereinstimmen. Wenn die DLL nicht geladen werden kann ist das zu 90+% ein Problem der Bittigkeit...

Die Canary Build sieht man dann im Edge selber (Hilfe | Ûber). Der Edge/Canary ist natürlich installiert und wurde auch schon mal gestartet?

Delbor 30. Mai 2020 11:43

AW: Delphi "Sydney" (10.4) ist da!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi MEissing

Anhang 52601

Das ist ein Screenshot des intallierten Edge Canaris.

Gruss
Delbor

jaenicke 30. Mai 2020 13:26

AW: Delphi "Sydney" (10.4) ist da!
 
Zitat:

Zitat von Delbor (Beitrag 1465906)
Ich gehe jedoch davon aus, dass unter win10 64 auch die entsprechende DLL geladen werden sollte.

Wenn du eine 64-Bit Anwendung erstellst, brauchst die 64-Bit DLL, für eine 32-Bit Anwendung die 32-Bit DLL.

Das liegt daran, dass man ohne etwas dreckige Umwege keine DLL laden kann, die für eine andere Plattform ist.

Geh doch bitte einmal bis zum LoadLibrary durch und prüfe direkt nach dessen Aufruf den letzten Fehler:
Delphi-Quellcode:
SysErrorMessage(GetLastError)
Das kannst du einfach im Debugger auswerten.

Und mit dem Process Monitor kannst du prüfen, ob die korrekte DLL versucht wird zu laden.

Dennis07 30. Mai 2020 13:46

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Kurze Frage: Die TEdgeBrowser-Komponente greift ja mit Sicherheit auf die WebView-API von Windows zu. Alles andere ergäbe ja keinen Sinn, dann könnte man ja CEF benutzen. Nun müsste das aber doch bei jedem Windows vorinstalliert sein, da es ja beispielsweise von Cortana & Co verwendet wird. Wozu also die externen DLLs?

MEissing 30. Mai 2020 13:58

AW: Probleme beim Einbinden des TEdgeBrowsers
 
WebView2.... das ist der Edge. Nicht der IE

Delbor 30. Mai 2020 19:07

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Hi jaenicke

Ich hab das hier eingefügt:
Delphi-Quellcode:
function CheckWebView2Loaded: Boolean;
var ErrorString: String;
begin
  if hWebView2 = 0 then
  begin
    hWebView2 := LoadLibrary('WebView2Loader.dll');
    if hWebView2 = 0 then
      Exit(False);
Brauchts das? hWebView2 ist hier auch nach dem Aufruf von LoadLibrary 0. Bei Erfolg müsste hWebView2 jedoch das Dateihandle enthalten, also grösser null sein.
Oder hab ich da was falsch verstanden?

Dass im EXE-Verzeichnis die falsche DLL liegt (32- vs. 64Bit) kann ich ausschliessen.

Gruss
Delbor

jaenicke 30. Mai 2020 22:46

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Zitat:

Zitat von Delbor (Beitrag 1465954)
Ich hab das hier eingefügt:

Wie eingefügt? Eigentlich reicht es aus den vorhandenen Code zu debuggen. Die weiteren Schritte, die ich vorgeschlagen habe, hast du aber noch nicht durchgeführt, oder?
Zitat:

Zitat von jaenicke (Beitrag 1465922)
Geh doch bitte einmal bis zum LoadLibrary durch und prüfe direkt nach dessen Aufruf den letzten Fehler:
Delphi-Quellcode:
SysErrorMessage(GetLastError)
Das kannst du einfach im Debugger auswerten.

Und mit dem Process Monitor kannst du prüfen, ob die korrekte DLL versucht wird zu laden.


Zitat:

Zitat von Delbor (Beitrag 1465954)
hWebView2 ist hier auch nach dem Aufruf von LoadLibrary 0. Bei Erfolg müsste hWebView2 jedoch das Dateihandle enthalten, also grösser null sein.
Oder hab ich da was falsch verstanden?

Das ist richtig, ja. Die DLL kann also offenbar nicht geladen werden.

Dennis07 5. Jun 2020 14:39

AW: Probleme beim Einbinden des TEdgeBrowsers
 
-hat sich erledigt-

Bernhard Geyer 5. Jun 2020 15:16

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Zitat:

Zitat von Dennis07 (Beitrag 1466529)
-hat sich erledigt-

Wäre auch schön wenn du mitteilen würdest was jetzt nicht gepasst hat.
Solche Probleme haben ja evtl. andere auch und die würden sich über die Lösung sicherlich freuen.

Der schöne Günther 5. Jun 2020 15:25

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Der gute Mann ist doch gar nicht derjenige mit dem ursprünglichen Problem.

derdelpher 7. Sep 2020 10:42

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Ich habe die 32-bit DLL ins gleiche Verzeichnis wie meine 32-bit .exe gelegt - und leider klappt es dennoch nicht. Bzw. klappt es auf der Entwicklungsmaschine, aber nicht beim Kunden.

Der schöne Günther 8. Sep 2020 07:18

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Und was ist beim Kunden installiert?

Nur nochmal zur Erinnerung: Stable ist bewusst noch ausgeklammert.
Zitat:

Microsoft Edge Stable Channel is not a valid target for WebView2 (...)
https://docs.microsoft.com/en-us/mic...s/distribution

Michael II 8. Sep 2020 08:11

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Zitat:

Zitat von derdelpher (Beitrag 1473130)
...klappt es auf der Entwicklungsmaschine, aber nicht beim Kunden.

Hat dein Kunde den neuen Edge auch wirklich installiert?

( Wie Günther schreibt: WebView2 wird momentan noch entwickelt. )

Michael II 9. Sep 2020 08:55

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Ich habe noch ein wenig getestet und dabei nun auch ein System gefunden, auf welchem nix angezeigt wird (Test mit dem mit Delphi mitgelieferten Programm ..\Documents\Embarcadero\Studio\21.0\Samples\Objec t Pascal\VCL\WebBrowser\Edge\): Auf einem "Microsoft Windows Server 2012 R2 Datacenter" (Win 8.x) habe ich Edge (85.0.564.44) via obigen Link installiert. Für die via Delphi > GetIt installierbare WebView2 Version 0.9.488.0 reicht Edge Version 84.0.488.


Ich habe danach den "WebView2 Runtime-Installer" installiert (Immer auf dem neuesten Stand - Erhalten Sie automatische Plattformupdates/Patches,...)

Jetzt läuft's. Das Beispielprogramm zeigt im Menu "File > Get browser version"
"Browser Version Info After WebView Creation - 86.0.622.10" an.

Ich nehme mal an, das wird auch bei deinem Kunden ein guter Tag werden :-D.

Feofan1 15. Jan 2021 09:57

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Hallo!

Wollte nur noch ein mal laut bestätigen:

Wir können ruhig jetzt alle EDGE Canary/Beta-Channels vergessen.
Es reichen nur MS WebView2 Runtime + 32/64 WebView2Loader.dll.
Funktioniert auch auf Win.Servers mit Terminal Server. D.h. wird automatisch für alle neue Users aktiv.

Eine Software-Distribution mit TEDGEBrowser ist auch sehr einfach.

Wir haben alle unsere Projekte endlich von CEF4Delphi zu TEDGEBrowser umgestellt und die laufen!

FrankJ28 17. Jan 2021 17:57

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Hallo,
welche Version der DLL mit welcher Version des EDGE setzt ihr ein? Ich bekomme keine Konfiguration ans Laufen (Demo-Projekt Delphi).
Danke und ciao
Frank

Feofan1 26. Jan 2021 16:05

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Simulation:

Nagtes Windows (z.B. 10x64)
WebView2Loader.dll - 0.9.579.0, Projektverzeichnis.
MS WebView2 Runtime installiert.

Funktioniert.

FrankJ28 2. Feb 2021 13:42

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Hallo,
ein nacktes Windows kann ich nicht bieten, ist ja mindestens Delphi drauf ;-)
Da meine Konstellation (DLL_Version: 1.0.705.50) nicht funktioniert meine
Frage: Muss es die von die angegebene Version 0.9.579.0 sein?
Aus dem bei MS bereitgestellten Paket habe ich mir nur die DLL kopiert
Danke und ciao

Frank

Der schöne Günther 2. Feb 2021 13:48

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Liste der Anhänge anzeigen (Anzahl: 1)
Protipp: Für solche Tests eignet sich die Windows "Sandbox" eigentlich sehr gut, die setzt direkt einen frischen, virtuellen PC auf.

Feofan1 25. Feb 2021 12:42

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Für die 10.4.2 passt WebView2Loader.dll 0.9.579.0 wieder nicht.
upd: 1.0.664.37

TiGü 25. Feb 2021 14:11

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1482029)
Protipp: Für solche Tests eignet sich die Windows "Sandbox" eigentlich sehr gut, die setzt direkt einen frischen, virtuellen PC auf.

Nutze ich auf Arbeit ganz gerne.
Muss man aber dazuschreiben, weil sonst gleich wieder ein Experte kommt und meckert: Gibt es nur ab Windows 10 Professional und nicht in der Home-Edition.

jaenicke 3. Mär 2021 07:25

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Zitat:

Zitat von TiGü (Beitrag 1483805)
Zitat:

Zitat von Der schöne Günther (Beitrag 1482029)
Protipp: Für solche Tests eignet sich die Windows "Sandbox" eigentlich sehr gut, die setzt direkt einen frischen, virtuellen PC auf.

Nutze ich auf Arbeit ganz gerne.
Muss man aber dazuschreiben, weil sonst gleich wieder ein Experte kommt und meckert: Gibt es nur ab Windows 10 Professional und nicht in der Home-Edition.

Darum stand da ja auch Protipp. :cheer:

SCNR :duck:

himitsu 3. Mär 2021 09:55

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Für verschiedene InternetExplorer/Edge-Versionen gibt/gab es auch irgendwo von Microsoft fertige TestVMs, für die 3 inzwischen 5 großen VM-Anbieter,
und dort ist nätürlich zufällig auch ein Windows mit vorinstalliert (inkl. Treiber/Addons der VM).
[ADD] https://developer.microsoft.com/en-u...dge/tools/vms/ [/ADD]

Man kann auch selbst eine VM installieren (Virtual PC, HyperV, VirtualBox, VMWare, QEmu, ...) da eine VM erstellen und Windows installieren (auch wenn man nur Home hat).

Nur meine One-Click-VM zum Debuggen will noch nicht so richtig. :cry:
https://www.delphipraxis.net/207151-windows-sandbox.html
(für Delphi Pro oder vielleicht auch CE)

TiGü 3. Mär 2021 11:37

AW: Probleme beim Einbinden des TEdgeBrowsers
 
Zitat:

Zitat von jaenicke (Beitrag 1484304)
Darum stand da ja auch Protipp. :cheer:

SCNR :duck:

Oh, mein Fehler! :corky:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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