AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TWebBrowser in Firemonkey

Ein Thema von Peter-Pascal · begonnen am 18. Feb 2014 · letzter Beitrag vom 8. Jun 2016
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.560 Beiträge
 
Delphi 12 Athens
 
#1

AW: TWebBrowser in Firemonkey

  Alt 18. Feb 2014, 21:52
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.
Angehängte Dateien
Dateityp: zip VCLDLL.zip (67,7 KB, 53x aufgerufen)

Geändert von Harry Stahl (19. Feb 2014 um 00:19 Uhr)
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: TWebBrowser in Firemonkey

  Alt 19. Feb 2014, 08:15
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.

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

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
200 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TWebBrowser in Firemonkey

  Alt 19. Feb 2014, 14:16
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
Peter Niemeier
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.560 Beiträge
 
Delphi 12 Athens
 
#4

AW: TWebBrowser in Firemonkey

  Alt 19. Feb 2014, 16:31
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.

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

Ü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
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
200 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TWebBrowser in Firemonkey

  Alt 20. Feb 2014, 11:48
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
Peter Niemeier
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: TWebBrowser in Firemonkey

  Alt 26. Feb 2014, 09:21
http://www.fmxexpress.com/web-browse...ey-on-windows/
Markus Kinzler
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: TWebBrowser in Firemonkey

  Alt 26. Feb 2014, 10:45
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 ...

Geändert von greenmile (26. Feb 2014 um 10:48 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

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 00:00 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