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/)
-   -   TWebBrowser in Firemonkey (https://www.delphipraxis.net/179172-twebbrowser-firemonkey.html)

Peter-Pascal 18. Feb 2014 16:34

TWebBrowser in Firemonkey
 
Hallo,

ich wollte in einer FMX-Anwendung den TWebBrowser einbinden. Stelle fest, dass er in der Tool-Palette zwar angeboten wird, aber grau, also nicht zu verwenden ist.

Wie bekomme ich unter FMX eine Internet-Anwendung hin? Es soll nur eine Seite im Internet darstellen, keine weiteren Browser-Funktionen.

Vielen Danke.

Gruß Peter

mkinzler 18. Feb 2014 16:41

AW: TWebBrowser in Firemonkey
 
Was ist als Zielplatform eingestellt?

Peter-Pascal 18. Feb 2014 16:45

AW: TWebBrowser in Firemonkey
 
Hallo Markus,

nur Standard-Einstellung, die immer beim Öffnen einer "Firemonkey Desktop-Anwendung" auftaucht: Win32. Auch wenn ich auf Win64 ändere, tut sich nichts.

Ich wollte auch einfach erstmal nur testen, wie das funktioniert mit FMX. Bei einer VCL-Anwendung läuft es ohne Probleme.

Gruß Peter

himitsu 18. Feb 2014 16:56

AW: TWebBrowser in Firemonkey
 
Der TWebBrowser ist doch eine ActiveX-Komponente, welche in einer VCL-Komponente gekapselt ist ...
Der TWebBrowser ist doch eine VCL-Komponente, welche eine ActiveX-Komponente gekapselt ... :gruebel:


Könnte nicht da das Problem liegen?

Peter-Pascal 18. Feb 2014 17:02

AW: TWebBrowser in Firemonkey
 
ja schon, ist aber bei FMX gelistet, allerdings grau. Es gibt auch eine Hilfe zu FMX.WebBrowser.TWebBrowser.
Allerdings offensichtlich nur für iOS. Steht darunter, hatte ich nicht gelesen:oops:

Jetzt drängt sich mir aber die Frage auf, wie kann ich für Win32 oder Win64 eine Internet-Anbindung einbauen?

mkinzler 18. Feb 2014 17:55

AW: TWebBrowser in Firemonkey
 
TWebBrowser gibt es unter FMX nur für iOS und Android.

Peter-Pascal 18. Feb 2014 18:06

AW: TWebBrowser in Firemonkey
 
danke für Deine Hilfe.

Ich hatte es fast befürchtet. Jetzt frage ich mich nur, wie ich mit Firemonkey eine Webseite anzeigen kann. Ich lese mich gerade in Indy ein. Ist Indy überhaupt sinnvoll oder gibt es einfacheres?

Gruß Peter

Harry Stahl 18. Feb 2014 21:52

AW: TWebBrowser in Firemonkey
 
Liste der Anhänge anzeigen (Anzahl: 1)
Unter Windows kannst Du auch eine VCL-DLL erstellen und diese von Deiner FMX-Applikation aufrufen.

Du verwendest also in der VCL-DLL die TWebrowser-Komponente (oder Indy oder alles sonst, was Dir in der VCL-Welt zur Verfügung steht) und rufst diese dann von der FMX-App auf.

In meinem FireMonkey-Blog habe ich gezeigt, wie der umgekehrte Weg geht (FMX-DLL in VCL-Anwendung aufrufen), der Weg geht aber eben auch anders rum. Das ist schon wichtig, denn so kannst Du unter Windows auch mit Deiner FMX-App alles das anbieten, was Du bisher mit der VCL machen konntest, incl. der weiteren FMX-Dinge.

Die Unit, welche Du in Deiner FMX-Anwendung einbindest, um die Prozedur aus der VCL-DLL aufzurufen sieht dann etwa so aus:

Delphi-Quellcode:
unit uVCLLink;

interface

uses
  Winapi.Windows;

type
   TShowHTML = procedure(fn: ShortString);

var
   ShowHTML : TShowHTML = nil;
   DllHandle : THandle;

implementation
 initialization
  if DllHandle = 0 then begin
     DllHandle := LoadLibrary('GETVCL.dll');
     if DllHandle > 0 then begin
      @ShowHTML := GetProcAddress(DllHandle,
        'ShowHTML');
     End else begin
       //MessageDlg('ShowHTML steht nicht zur Verfügung',
      //   mtInformation, [mbOK], 0);
     end;
 end;
finalization
if DLLHandle <> 0 then
   FreeLibrary(DLLHandle);
end.
Ja, Du hast richtig gesehen, Du musst hier die WinApi in die FMX-Anwendung einbinden, um die DLL laden zu können. Damit es zu sonst keinen Komplikationen führt, verwendest Du eben nur diese eine Unit (um Namespace-Konflikte u.a. zu vermeiden).

P.S: Statt Shortstring kannst Du auch Widestring, und PCHAR verwenden, wenn Unicode-Zeichen verwendet werden sollen.

Habe mal schnell was in die Tastatur gehackt, das gewinnt keinen Schönheitspreis, zeigt aber als Gerüst, wie es geht. Projekt habe ich hier als Anhang beigefügt.

greenmile 19. Feb 2014 08:15

AW: TWebBrowser in Firemonkey
 
Ich suche schon seit den ersten XE Versionen nach einer Firemonkey/Webbrowser/MAC Version.
Gibt es nicht, unter Mac sind Browser nicht so wichtig wie unter iOS und eigentlich völlig überbewertet. :evil:

Nicht drüber aufregen, TMS hat mit TMSFMXNativeWebView die Alternative: Link

Indy hilft Dir nicht weiter, damit kannst Du nur die Kommunikation regeln, also die den Source der Seite übertragen, aber nicht darstellen.

Peter-Pascal 19. Feb 2014 14:16

AW: TWebBrowser in Firemonkey
 
Hallo,

vielen Dank für die Antwort und für das mitgelieferte Listing. Ich habe mich gleich draufgestürzt und fast vergessen mich zu bedanken.

Also, wenn mir die Bemerkung erlaubt sei, FMX macht einen tollen Eindruck aber es birgt im Detail viele Probleme. Fast alles was ich ausprobiert habe, gelang sehr schnell an Grenzen. Ob es sich wirklich lohnt mit FMX zu arbeiten, habe ich meine Zweifel. Als Hobbyprogrammierer (bzw. Semiprofessionel) kann ich es mir vielleicht leisten mehrere Stunden zum forschen zu verbringen. Aber ein Unternehmer nicht.

Deswegen bin ich so froh, dass es dieses Forum gibt mit den vielen netten Leuten.

Übrigens Harry, ich habe mir Dein Buch gekauft. Sind sehr viele interessante Dinge drin und hat mir in einigen Bereichen schon weitergeholfen.

Gruß Peter

Harry Stahl 19. Feb 2014 16:31

AW: TWebBrowser in Firemonkey
 
Zitat:

Zitat von Peter-Pascal (Beitrag 1248548)
Also, wenn mir die Bemerkung erlaubt sei, FMX macht einen tollen Eindruck aber es birgt im Detail viele Probleme. Fast alles was ich ausprobiert habe, gelang sehr schnell an Grenzen. Ob es sich wirklich lohnt mit FMX zu arbeiten, habe ich meine Zweifel. Als Hobbyprogrammierer (bzw. Semiprofessionel) kann ich es mir vielleicht leisten mehrere Stunden zum forschen zu verbringen. Aber ein Unternehmer nicht.

Na klar ist die Bemerkung erlaubt, kann ich auch überwiegend nachvollziehen, was Du sagst. Deswegen finde ich ja die Möglichkeit, über FMX-DLLs schrittweise Firemonkey-Fähigkeiten hinzuzufügen so wichtig (oder wo ich mit FireMonkey nicht weiterkomme, eben doch noch auf VCL-Funktionalität zugreifen zu können). Ich habe auch schon gemerkt, dass ich nicht alle meine Programme (an denen ich z.T. schon über 20 Jahre dran arbeite) mal eben in FMX-Anwendungen umsetzen kann - wobei es aber mittel- bis langfristiges Ziel bleibt. Ich wäre da natürlich schon wesentlich weiter, hätte ich nicht das Buchprojekt begonnen, aber mir macht es Spaß und insofern ist es mir die Sache wert.

Zitat:

Zitat von Peter-Pascal (Beitrag 1248548)
Deswegen bin ich so froh, dass es dieses Forum gibt mit den vielen netten Leuten.

Yes, sehe ich auch so:thumb:

Zitat:

Zitat von Peter-Pascal (Beitrag 1248548)
Übrigens Harry, ich habe mir Dein Buch gekauft. Sind sehr viele interessante Dinge drin und hat mir in einigen Bereichen schon weitergeholfen.

Danke, das freut mich natürlich sehr. Da wo Du an Grenzen stößst (wie Du schreibst), erinnere ich auch an meine Einladung, das mir mal als Themenvorschlag für das Buch mitzuteilen [muss ich leider immer wieder erwähnen: außer Datenbankthemen, da bin ich eine echte Nullnummer].

Gruß Harry

Peter-Pascal 20. Feb 2014 11:48

AW: TWebBrowser in Firemonkey
 
Hallo Harry,

danke das Angebot nehme ich gerne an.

Datenbanken ist natürlich aus so ein Thema. Grundsätzlich dachte ich einiges zu verstehen, werde aber immer unsicherer. Gerade für die unterschiedlichen Plattformen. Da sagt Embarcadero (Emba) es kann die Interbase genommen werden und die IB Togo ist soweit ich das verstanden habe auch ohne Lizensgebühren frei einsetzbar.

Eine Frage noch zu Deinem Listing: Für die VCL-Komponenten hast Du eine eigene Form genommen, ich vermute im gleichen Formular FMX-Form funktioniert es nicht?

Gruß Peter

mkinzler 26. Feb 2014 09:21

AW: TWebBrowser in Firemonkey
 
http://www.fmxexpress.com/web-browse...ey-on-windows/

greenmile 26. Feb 2014 10:45

AW: TWebBrowser in Firemonkey
 
Ich möchte ja nicht undankbar erscheinen oder nur als Schwarz-Maler da stehen, aber sehe ich das richtig? Ich muss ernsthaft 125 MByte Runtimes nur für den Browser mit meinem Setup rumschleppen? Nur für einen Browser, der nicht mal 100% kompatibel mit dem Systembrowser ist? Wenn meine EXE also 5 MByte groß ist und ich nur einen Browser benötige, um intern irgendeine Support Seite aufzurufen, würde dann ja aus 5 MByte mal eben 130 MByte werden ... :thumb:

himitsu 26. Feb 2014 11:01

AW: TWebBrowser in Firemonkey
 
Ja, wenn du das Chromium Embedded Framework (CEF) verwenden möchstes,
aber das wäre auch so, wenn man den nur in der VCL verwenden will.

Das ist halt das komplette Zeug von dem Browser.
Beim IE fällt es nur nicht auf, daß da meherere 100 MB im System rumliegen, da man die hinterrücks über die Windows Updates reinghämmert bekommt, selbst wenn man keinen IE verwendet.
PS: Früher war es mal möglich den FF zu nutzen, also gleich einen Installierten, ohne ihn selber mitbringen zu müssen, also so wie beim IE, aber da die netter Weise die Schnittstellen rausgeworfen haben......

greenmile 26. Feb 2014 11:42

AW: TWebBrowser in Firemonkey
 
Naja, dann stellt sich für mich aber mal wieder die Frage, wieso nicht ein Browser eingebunden wird, der in 99% aller Fälle sowieso auf dem System ist.
Da das aber wieder zu einer Grundsatzdiskussion führen würde, frage ich lieber nicht ;)

mkinzler 26. Feb 2014 11:51

AW: TWebBrowser in Firemonkey
 
Weil der IE im Gegensatz zu Chrome oder Gecko(Mozilla) nur auf Windows vorhanden und auch das Zugriffsinterface (ActiveX) windowsexklusiv ist.

greenmile 26. Feb 2014 11:56

AW: TWebBrowser in Firemonkey
 
... wie auch der Safari nur auf iOS Geräten vorhanden ist.
... oder der Android nur auf Android.

himitsu 26. Feb 2014 15:03

AW: TWebBrowser in Firemonkey
 
Du kannst auch gern eine abstrakte Schnittstelle entwickeln, die nur die gemeinsamen Funktionen aller Browser enthält
und dann wird auf jedem System jeweils der dort installierte "Standard"-Browser verwendet. (falls der überhaupt eine öffentliche Schnittstelle bietet)

greenmile 26. Feb 2014 15:21

AW: TWebBrowser in Firemonkey
 
Wäre das nicht eher Aufgabe des Herstellers einer Sprache/eines Compilers, der plattformübergreifende Lösungen anbietet? :)

Harry Stahl 17. Jul 2014 22:08

AW: TWebBrowser in Firemonkey
 
Hier habe ich gerade gesehen, dass es da eine neue Entwicklung bei dem TMS Pack für FireMonkey gibt. In der aktuellen Version 2.5 gibt es eine TTMSFMXWebrowser Komponente für Windows, MAC, iOS und Android:

http://www.tmssoftware.com/site/tmsfmxpack.asp

Für MAC, iOS und Android ist das als Wrapper gelöst, unter Windows muss man das Chromium Package installieren. Man muss das leider selber manuell installieren, aber TMS liefert eine Beschreibung mit, ist eine Sache von 5 Minuten.

Hab es gerade mal schnell unter Windows und MAC OS X getestet, funktioniert ganz gut.

Unter Windows macht das ca. 45 MB zusätzliche Runtime-Last (überwiegend in Form von DLL's, die im Verzeichnis der ausführbaren Datei sein müssen) aus, komprimiert ca. 17 MB.

Ist immer noch nicht wenig, aber besser als das, was hier in diesem Thread zuvor mal erwähnt wurde (125 MB).

stalkingwolf 8. Jun 2016 16:41

AW: TWebBrowser in Firemonkey
 
Thema ist schon was älter.
Webbrowser einbinden kein Probleme für Android. Aber beim öffnen von PDF Dateien erhalte ich ein leere Seite.

Gibt es eine andere Möglichkeit in meinem Programm eine PDF Datei anzeigen zu lassen.
Ich möchte sie nicht extern öffnen.

bra 8. Jun 2016 17:16

AW: TWebBrowser in Firemonkey
 
Zitat:

Zitat von stalkingwolf (Beitrag 1339782)
Thema ist schon was älter.
Webbrowser einbinden kein Probleme für Android. Aber beim öffnen von PDF Dateien erhalte ich ein leere Seite.

Gibt es eine andere Möglichkeit in meinem Programm eine PDF Datei anzeigen zu lassen.
Ich möchte sie nicht extern öffnen.

Wir verwenden die PDFium Suite (http://www.winsoft.sk/fpdfium.htm). Ist allerdings kostenpflichtig.


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