InternetExplorer als Objekt

Antworten
kunstlust
Beiträge: 30
Registriert: Fr 29. Jun 2012, 09:36

InternetExplorer als Objekt

Beitrag von kunstlust »

Ich bin auf der Suche unter Windows Webseiten in FP darzustellen und habe mich gefragt, warum das so aufwendig ist... In anderen Sprachen scheint dieses Thema mehr Gewicht zu haben. Das was ich gefunden habe, sind meist ältere Projekt, die sicher kaum aktuelle Seiten korrekt darstellen können, darum habe ich mich gefragt, ob es nicht möglich ist, einfach unter Windows den IE als Object einzusetzen. Geht das überhaupt? Kann ich eine das Gadget in eine Form anzeigen? Wie hier beschrieben http://msdn.microsoft.com/en-us/library/aa752084(v=vs.85).aspx
Bisher habe ich unter Nutzung der API/COM immer nur Programme angesprochen, welche mir einen String oder so zurückgeben, darum meine Frage, bevor ich mich lange versuche, ob es prinzipiell möglich ist. Danke

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: InternetExplorer als Objekt

Beitrag von theo »

Probier's aus. Lazarus kann neuerdings type libraries importieren. Ich würde unbedingt FPC trunk installieren dafür.
Hier steht mehr, auch konkret wegen IE:
http://wiki.freepascal.org/LazActiveX

kunstlust
Beiträge: 30
Registriert: Fr 29. Jun 2012, 09:36

Re: InternetExplorer als Objekt

Beitrag von kunstlust »

Theo das scheint aber nicht leicht zu sein :( Meine Anforderung scheint ja wohl nicht viele andere zu betreffen, oder täuscht dies? Wie zeigt Ihr eine Webseite an, hat jemand eine Lösung die Plattformunabhängig ist? Es ist sehr schade, ich habe mich gerade über Lazarus angefreundet, machte meine ersten Schritte und frage mich, ob meine Anforderungen zu hoch sind. Ich glaube das dies in Delphi möglich ist, oder?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: InternetExplorer als Objekt

Beitrag von Socke »

kunstlust hat geschrieben:Theo das scheint aber nicht leicht zu sein

Es gibt für Lazarus recht einfache HTML-Panels. Die können einfache HTML-Seiten darstellen -- mehr aber auch nicht. Wenn du einen vollständigen Webbrowser haben möchtest, ist das in jedem Fall mit einigem Aufwand verbunden.

kunstlust hat geschrieben:Wie zeigt Ihr eine Webseite an, hat jemand eine Lösung die Plattformunabhängig ist? Es ist sehr schade, ich habe mich gerade über Lazarus angefreundet, machte meine ersten Schritte und frage mich, ob meine Anforderungen zu hoch sind. Ich glaube das dies in Delphi möglich ist, oder?

Delphi ist nicht plattformunabhängig 8). Gecko (die HTML-Engine in Firefox) ist es und kann auch eingebettet werden.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: InternetExplorer als Objekt

Beitrag von Komoluna »

Nein, das täuscht...
ich interressiere mich auch dafür, momentan benutzte ich TMyHtmlViewer (ein Ipprohtmlpanel oder so. ähnlich was um die funktionen loadfromstring und loadfromfile erweitert wurde... jedoch müsste man wenn man eine website aus dem internet anzeigen will erstmal den code parsen
und alle bilder und abhängige dateien manuell hinzuladen

Das ist müsehlig und zeitaufwendig.
ich habe mir mal das beispiel mit dem vlc media player angeschaut... wenn ich den befehl

Code: Alles auswählen

 
VLC.playlist.play;
ausführe, dann wird ein "External SIGSEGV" erzeugt...

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: InternetExplorer als Objekt

Beitrag von theo »

Komoluna hat geschrieben: wenn ich den befehl

Code: Alles auswählen

 
VLC.playlist.play;
ausführe, dann wird ein "External SIGSEGV" erzeugt...


Das tut mir leid für dich.
Ich könnte jetzt versuchen dir mühsam weitere Informationen zu deinem Setup aus der Nase zu ziehen, aber da geht es mir wie dir: Ich bin zu faul. :wink:

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: InternetExplorer als Objekt

Beitrag von creed steiger »

das sollte lt. Wiki momentan Stand der Dinge sein:

http://wiki.freepascal.org/Webbrowser

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: InternetExplorer als Objekt

Beitrag von pluto »

Ich selbst Arbeite an eine Render Engine für HTML und CSS. Seit über gut sechs Jahren. Inzwischen habe ich ein Konzepte gefunden, was mir recht gut gefällt und mit dem ich "arbeiten" kann. Eine Schnelle Lösung wird es für dein Problem nicht geben. Du musst dich schon sehr einschränken. Bei diesem Thema. Meine Komponente wird zwar mehr können, als das HTML Panel oder dem HTML Port, aber weniger als die Modernen Browsern können.

Der Prototyp ist zwar schon recht weit, vieles geht schon recht gut. Z.b. werden 43 CSS Eigenschaften unterstützt. Sowie Eingebertest CSS, Externes CSS oder auch Inline CSS. Außerdem wird auch die Display Eigenschaft zum Teil schon unterstützt. Im Moment bin ich dabei, die Tabellen perfekt einzubauen.

In einigen "Monaten" oder "Jahren" könnte ich soweit sein.

Ich denke, viele haben sich damit Abgefunden, dass es keine gute Anzeige Komponente für Lazarus gibt. Wobei GTK2 bzw. GTK3 oder auch die Windows Lib, durchaus Möglichkeiten anbieten(Nehme ich an).

Bis jetzt ist mein Projekt jedoch ein Traum. Aber ich hoffe, es wird kein Traum bleiben.
MFG
Michael Springwald

kunstlust
Beiträge: 30
Registriert: Fr 29. Jun 2012, 09:36

Re: InternetExplorer als Objekt

Beitrag von kunstlust »

Einen Firefox per Gego einzubinden, macht ja nur zum Teil Sinn, weil es eben leider einen Installierten Firefox benötigt.
Ich finde es ja super, das Lazarus auf so verschieden System läuft, aber das Problem mit der Anbindung an "Internetprotokolle" scheinen ja die meisten Sprachen zu haben. Klar es lässt sich vieles Einbinden und so ist es auch möglich per SMTP-Auth Mails zu versenden, aber alleine schon an dieser Stelle, war es das mit allen Plattformen.... Ich könnte auf die Chartfunktion durchaus verzichten, aber so hat jeden seine Anforderung.
Ich bin noch nicht so lange dabei, aber ich wundere mich immer wieder, dass mächtige Sprachen oft mit solchen Basics nicht zu Recht kommen.
Ich möchte mal eine Beispiel bringen, warum ich eine echtes Browsergadget benötige: Über die API oder SQL sammeln ich Adressdaten und möchte diese gerne per Browser in eine Karten darstellen und das ist es schon blöd, zum einen Optionen im Programm einzugeben und danach zu anderen ein installierten Browser mit der Information zu öffnen.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: InternetExplorer als Objekt

Beitrag von Socke »

kunstlust hat geschrieben:Einen Firefox per Gego einzubinden, macht ja nur zum Teil Sinn, weil es eben leider einen Installierten Firefox benötigt.

Du brauchst einen installierten Gecko. Ob du einen vorhandenen Firefox entführst oder selbst einen mit deiner Anwendung auslieferst bleibt dir überlassen. Natürlich war's das dann mit dem "Exe-Datei kopieren und fertig".

kunstlust hat geschrieben:Ich bin noch nicht so lange dabei, aber ich wundere mich immer wieder, dass mächtige Sprachen oft mit solchen Basics nicht zu Recht kommen.

"Mächtige Sprachen" halten sich selbst so allgemein, dass sie einem Entwickler keine Steine in die Wege legen möchten. Daher gibt es unter Free Pascal keine Standardlösung für den Internet-Zugriff und man darf/muss sich selbst einen Weg suchen.

Andere Sprachen nehmen den Entwickler sehr stark an die Hand und sagen "so oder gar nicht".

kunstlust hat geschrieben:Klar es lässt sich vieles Einbinden und so ist es auch möglich per SMTP-Auth Mails zu versenden, aber alleine schon an dieser Stelle, war es das mit allen Plattformen....

Mit lNet und Synapse (unter Umständen auch Indy) gibt es für Free Pascal 2 bis 3 Möglichkeiten, plattformübergreifend Netzwerkzugriffe zu verwenden. Dabei unterstützen alle Bibliotheken selbstverständlich nicht sämtliche verfügbaren Plattformen.
Die Aussagen "write once, compile everywhere" (Pascal) und "write once, run everywhere" (Java) sollte man mit Vorsicht genießen. Verschiedene Umgebungen benötigen häufig eigene Aufmerksamkeit im gesamten Entwicklungsprozess. Eine Android-App in Java wird man sicher nicht auf einem PC mit Maus und Tastatur bedienen möchten. Umgekehrt gilt dies ebenso.
Man muss sich also klar sein (am besten schon zu Anfang der Entwicklung), wo man hin möchte und welche Plattformen/Betriebssysteme ein Muss sind oder nur ein "nice to have". Danach wählt man seine Bibliotheken aus und alles ist wunderbar :D (so in etwa). Leider ist der erste Schritt nicht immer leicht.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

kunstlust
Beiträge: 30
Registriert: Fr 29. Jun 2012, 09:36

Re: InternetExplorer als Objekt

Beitrag von kunstlust »

@Socke

Ich danke dir für den Tip mit Gecko und werde es testen.
Was den Zwang andere Sprachen angeht, ist aber auch oft so, das der einfache Weg, nicht der einzige ist, welche genutzt werden darf.
Lazarus ist eine sehr mächtige IDE und so schnell geben ich nicht auf :D und es ist alternativlos.

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: InternetExplorer als Objekt

Beitrag von Soner »

Vergiß Mozillapanel und verfolge Theo's Tipp:
theo hat geschrieben:Probier's aus. Lazarus kann neuerdings type libraries importieren. Ich würde unbedingt FPC trunk installieren dafür.
Hier steht mehr, auch konkret wegen IE:
http://wiki.freepascal.org/LazActiveX


Das ist das einfachste. Das benutze ich seit Monaten und es so einfach wie mit Delphi.

Antworten