AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TEdgeBrowser

Ein Thema von Delbor · begonnen am 15. Mär 2022 · letzter Beitrag vom 5. Mai 2022
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

TEdgeBrowser

  Alt 15. Mär 2022, 14:04
Hi zusammen

Seit einiger Zeit arbeite ich nun mit Delphi Alexandria und baue hier an einem unter Sydney begonnenen Projekt weiter.
Dazu gehört auch ein Frame mit einem TEdgebrowser. Dieser soll jeweils zusammen mit einem Tabsheet (mit diesem als Parent) erzeugt werden.
Testweise geh ich (in Sydney) vorerst so vor:
Delphi-Quellcode:
procedure THomeOfficerFeMain.BitBtn1Click(Sender: TObject);
begin
  EdgeBrowserFrame1.EdgeBrowserNavigateproc;
end;
Die folgende Prozedure war ursprünglich dazu vorgesehen, einen einzelnen TEdgeBrowser aufzunehmen und da die Urls zu wechseln. Statt dessen Weise ich hier eine Url vorerst statisch zu:
Delphi-Quellcode:
procedure TEdgeBrowserFrame.EdgeBrowserNavigateproc;
  var URL: String;
begin
 URL := 'F:\BenutzerHandbücher&Manuals\Benutzerhandbuch HP OfficeJet 3830 All-in-One series';
 EdgeBrowserNewWebSeiteTab(URL);
end;
...um diese dann in einem neuen Tabsheet darzustellen:
Delphi-Quellcode:
procedure TEdgeBrowserFrame.EdgeBrowserNewWebSeiteTab(URL: string);
  var NewTab: TRzTabSheet; NewEdge: TEdgeBrowser; TabIdx : integer;
begin
  TabIdx := Self.RzPageControl1.PageCount;
  NewTab := TRzTabSheet.Create(Self);
  NewTab.PageControl := Self.RzPageControl1;
  NewTab.Caption := URL;
  NewTab.Name := 'NewTab' + inttoStr(TabIdx + 1);
  NewTab.PageControl := RzPageControl1;
  NewTab.Parent := RzPageControl1;
  RzPageControl1.ActivePage := Newtab;
  NewEdge := TEdgeBrowser.Create(Self);
  NewEdge.Parent := NewTab;

// NewEdge.CreateWebView;
  NewEdge.Align := alClient;

  NewEdge.Navigate('F:\BenutzerHandbücher&Manuals\Benutzerhandbuch HP OfficeJet 3830 All-in-One series');
  FWebPageList.Add(NewTab);
end;
Das klappt soweit einwandfrei, mit nach meinen Erkenntnissen zwei Einschränkungen (selbst, wenn ich wie hier CreateWebView ausklammere):
  • Der Edgeviewbrowser muss sich auf einer aktiven Seite befinden
  • Das Tempo ist unter aller ...

In Delphi Alexandria ist zur Zeit die Demo geladen, und die begrüsst mich so:

Zitat:
Edge initialisation error
---------------------------
Failed to initialise Edge loader
---------------------------
OK
Eine Url hab ich da noch nicht eingegeben (Einige URLs gibts in der Unit, die aber nicht aufgerufen werden. Ich hab bisher nicht herauskriegen können, was mit dem 'Failed to initialise Edge loader' gemeint ist. 'CreateWebView' ist damit offenbar nicht gemeint.
Wieso funktionierts in Sydney, in Alexandria aber nicht?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.977 Beiträge
 
Delphi 12 Athens
 
#2

AW: TEdgeBrowser

  Alt 15. Mär 2022, 15:40
Das EdgeView-SDK aus GetIt hast du installiert?
Den Post-Build-Event zum Kopieren der DLL hast du auch angelegt (Projektkonfiguration für WebView2-Loader-DLLs)?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TEdgeBrowser

  Alt 4. Mai 2022, 23:11
Hi zusammen

Mir ist klar: der Thread ist alles andere als Taufrisch, das Problem allerdings ist geblieben, bzw nicht wirklich gelöst. In der Anwendung, von der bisher die Rede war, funktioniert das vorerst 'einwandfrei'. Das heisst: die Prozedur EdgeBrowserNewWebSeiteTab erzeugt mir ein neues Tab und einen EdgeBrowser auf dem Pagecontrol, und dieser zeigt mir an der Url eine anklickbare Liste mit Ordnern an, über die ich Pdf-Dokumente öffnen kann.
Das Verzeichnis der exe (F:\Embarcadero Project Corner\HomeOfficerFirstEdition\Win32\Debug) sieht so aus:
19_09_35-f__embarcadero-project-corner_delphi-alexandria-corner_alexandria-project-corner-2.jpg

Das obige Programm musste ich unter Verwendung bestehenden Codes neu schreiben, wobei ich den selben Code und einen neu erzeugten Frame verwende. Das Verzeichnis der exe (F:\Embarcadero Project Corner\Delphi Alexandria Corner\Alexandria Project Corner\OfficerAlexProject\Win32\Debug) sieht diesmal so aus:
19_09_35-f__embarcadero-project-corner_delphi-alexandria-corner_alexandria-project-corner.jpg

Hier wird das Tabsheet erzeugt und der Pfad auf dem Tab angegeben, aber die erwartete Seite wird nicht angezeigt.
Grundsätzlich könnte ich jetzt einfach die fehlenden Ordner in den neuen EXE-Ordner kopieren. Das Problem ist allerdings: ich kann nicht wirklich nachvollziehen, ob dies richtig wäre.

Soeben habe ich den Rat von Uwe Raabe umgesetzt:
build-ereignis.jpg
Das Resultat:
Zitat:
[Exec Fehler] Der Befehl "copy /Y "common_DLL_folder_path\x86\WebView2Loader.dll " F:\Embarcadero Project Corner\Delphi Alexandria Corner\Alexandria Project Corner\OfficerAlexProject\Win32\Debug\" wurde mit dem Code 1 beendet.
Verstrichene Zeit: 00:00:35.4
Und nun?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor ( 4. Mai 2022 um 23:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.535 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TEdgeBrowser

  Alt 5. Mai 2022, 09:23
Dein OutputDir enthält Leerzeichen, deshalb muss das in Deinem Befehl auch in Anführungszeichen gesetzt werden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TEdgeBrowser

  Alt 5. Mai 2022, 10:34
Hi zusammen

Jetzt zeigt der Edgebrowser tatsächlich die gewählte Pdf-Datei an - wobei ich mal davon ausgehe, dass HTML oder Pdf sozusagen egal ist.

Das EdgeView-SDK aus GetIt hast du installiert?
Den Post-Build-Event zum Kopieren der DLL hast du auch angelegt (Projektkonfiguration für WebView2-Loader-DLLs)?
Gemäss diesem Rat habe ich das Build-Event mit dem gezeigten String angelegt und die gepostete Fehlermeldung erhalten.
Dann hab ich eine weitere Demo entdeckt und dern BuildEvents gecheckt. Und da ist eingetragen:
copy /y "$(BDS)\Redist\win32\WebView2Loader.dll" "$(OUTPUTDIR)" Das hab ich so in meinem Projekt eingetragen, und das funktioniert soweit (ausser, dass das Tempo nach wie vor ... ist.)
Dein OutputDir enthält Leerzeichen, deshalb muss das in Deinem Befehl auch in Anführungszeichen gesetzt werden.
Erst dachte ich, ich hätte das wirklich übersehen, doch der da angegebene String enthält Anführungszeichen :
Zitat:
copy /Y "common_DLL_folder_path\x86\WebView2Loader.dll " $(OUTPUTDIR)
Mein aktuell verwendeter String im Build-Event:
Zitat:
copy /y "$(BDS)\Redist\win32\WebView2Loader.dll" "$(OUTPUTDIR)"
Okay, das macht klar, wo die Anführungszeichen fehlen.

Für mich wesentlich ist vor allem: krieg ich den Edge auch in kommenden Anwendungen auf diese Art zum laufen? Eine aktuellere Delphi-Version wird es höchstens noch in Form einer Community geben.


Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:18 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