Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
629 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Wie THtmlViewer.OnImageRequest mit TEdgeBorwser umsetzen?

  Alt 14. Jul 2022, 17:34
Statische Bilder/HTML/CSS/JS/... kannst auch über das res:// Protokoll aus den Ressourcen deiner EXE oder einer DLL laden.
(alternativ zu einzeln auf der Platte liegenden Dateien über das file:// Protokoll)
https://docs.microsoft.com/en-us/pre...10218(v=vs.85)

Und jupp, einfach einen lokalen TIdHTTPServer in der EXE und dann auf http://localhost:port/einname (mußt nur bezüglich des Ports etwas anpassen, denn 80 oder 8080 würde ich nicht empfehlen)
* entweder "irgendeinen" statischen Port vorschreiben, den niemand Anderes auf dem PC nutzen darf (der frei sein muß)
* oder beim Start nach einem freien (5-stelligen) Port suchen und ihn sozusagen dynamisch anpassen

oder alternativ vielleicht mit NamedPipes o.Ä. versuchen
https://github.com/richfitz/httppipe
https://github.com/request/request/issues/2296

und dann gäbe es immernoch die Variante die Bilder ins %temp% zu legen und von da zu laden

PS: Bilder kann man auch ins HTML einbetten
https://www.thesitewizard.com/html-t...ata-urls.shtml
1. Die Bilder müssen dynamisch zur Runtime generiert werden, also nicht mit Resourcen.

2. Einen intgerierten Webserver nur um was so simples zu machen, was der THtmlViwer mit Leichtigkeit machen kann, ist fern jeglicher Realität und keine Lösung als Ersatz für die THmtlViwer Komponente, vor allem für meinen Verwendungszweck.

3. Die temporären Dateien wären sicher eine unschöne Notlösung, aber nichts was ich machen will, wenn es anders geht. Habe mir auch überlegt diese als Base64 zu encoden und diekt im HTML einzubetten. Das gefällt mir aber auch nicht so recht, da dadurch das Erstellen des HTML-Strings, vermutlich deutlich verlangsamt würde. Sind doch pro Seite jeweils ca. 50 Bilder.

4. Die Bilder sind ja nur ein Problem, aber die Interaktion, Events auf Tasten/Mausklicks etc. vom TEdgeBrowser und meiner Anwendung, muss doch irgendwie machbar sein ohne all diese unschönen Umwege. Wenn das nicht geht, dass ich auf Anklicken von Bildern in meinem Programm reagieren kann, inklusive Infos welches Bild angeklickt wurde, kann ich es eh vergessen.

Im Moment habe ich das Gefühl, dass diese Komponente rein dazu da ist, eine Webpage darzustellen, aber für die Interaktion mit der eigenen Anwendung nicht zu gebrauchen ist. Kann mir aber echt nicht vorstellen, dass MS da so eine Müll produziert hat, der keine Möglichkeit bietet, auf das Rendering und Aktionen der Seite Einfluss zu nehmen.

Geändert von Rolf Frei (14. Jul 2022 um 17:42 Uhr)
  Mit Zitat antworten Zitat