Gecko Browser

Rund um die LCL und andere Komponenten
Antworten
Epcop
Beiträge: 140
Registriert: Di 29. Mai 2012, 09:36

Gecko Browser

Beitrag von Epcop »

Hallo,

kennt jemand eine Dokumentation für die Gecko Engine? Die Gecko Engine habe ich Installiert und alle paar Stunden suche ich etwas neues. Ich habe kaum Informationen gefunden.

Ich möchte mit der Gecko Engine eine Art HTML WYSIWYG Editor (bzw. einen einfachen Texteditor der Fett/Unterschreichen/...) schreiben.

In erster Linie interessieren mich,...
... wie ich die Text Position ermitteln kann, wenn man in das Browserfeld klickt?
... ob es auch eine Möglichkeit gibt, wenn man einen Text markiert, auch entsprechenden "Auswahl Quelltext" auszulesen und nicht nur den Text String? (Alternativ im Textstring auch die Umlaute richtig darstellen)

Hat jemand eine Idee wo ich eine Dokumentation zur Gecko Engine finde oder eine Antwort auf die Fragen?

Liebe Grüße,
Epcop

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Gecko Browser

Beitrag von Michl »

Keine Ahnung, ob Dir meine Gedanken dazu eine Hilfe sind (habe den Gecko-Browser auch nicht mehr installiert):

IMHO wird an der Einbindung des Geckobrowser aktuell nicht gearbeitet. D.h., Du müsstest auf eine etwas ältere Version zurückgreifen, wie sie im Wiki beschrieben ist. Willst Du auf einen Browser setzen, an dem aktuell für Delphi/Freepascal gearbeitet wird, könntest Du Dir mal fpCEF oder WaCEF anschauen. Dort wird auf CEF3 gesetzt. Diese embedded Lösung habe ich aktuell in einem Projekt eingesetzt und bin recht glücklich damit.

Lese ich allerdings Deine Problemstellung, frage ich mich, ob Die Lösung eines eingebundenen Browsers überhaupt gut gewählt ist, da dabei ja externe Bibliotheken mit herumgeschleppt werden müssen. Evtl. genügt Dir ja etwas wie ein TIpHtmlPanel oder ein Richmemo bzw. lzRichEdit?!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

ruewa
Beiträge: 153
Registriert: Sa 12. Apr 2014, 14:43

Re: Gecko Browser

Beitrag von ruewa »

Epcop hat geschrieben:Ich möchte mit der Gecko Engine eine Art HTML WYSIWYG Editor (bzw. einen einfachen Texteditor der Fett/Unterschreichen/...) schreiben.

In erster Linie interessieren mich,...
... wie ich die Text Position ermitteln kann, wenn man in das Browserfeld klickt?
... ob es auch eine Möglichkeit gibt, wenn man einen Text markiert, auch entsprechenden "Auswahl Quelltext" auszulesen und nicht nur den Text String? (Alternativ im Textstring auch die Umlaute richtig darstellen)



Hallo Epcop,

mit dem Problem habe ich mich eine gefühlte Ewigkeit herumgeschlagen. Sehr frustrierend, gerade die Dokumentationsproblematik!

Zunächst habe ich es mit WebKit2GTK versucht und bin daran völlig aufgelaufen. Der simple Versuch, herauszufinden, wie man den DOM-Node jener Stelle im Text ermittelt, an der sich der Cursor gerade befindet, hat mich Wochen gekostet. Irgendwann habe ich es aufgegeben und stattdessen versucht, Gecko zu installieren. Um es kurz zu machen: Ich habe Gecko schlichtweg nicht zum Laufen gekriegt (unter Debian Wheezy, Lazarus 1.2.x), schließlich fand ich heraus, daß ich mein ganzes System massiv hätte down(!)graden müssen. Vergiß Gecko!

Hab dann mit CEF3 herumexperimentiert - da ist aber noch viel in der Entwicklung, zudem wurde mir die Vielzahl der Prozesse nebst dem notwendigen Wust an Prozeß-Kommunikation zunehmend suspekt (ich brauche 4 HTML-Editorfenster parallel). Irgendwie erscheint mir das mit Kanonen auf Spatzen geschossen, am Ende habe ich CEF3 dann auch verworfen.

Am Ende (und nach weiteren Umwegen über den Webkit-QT-Port) bin ich wieder bei WebKit2GTK gelandet. Da ist dann auch der Knoten geplatzt, als ich realisierte, daß die WebKitGTK-Dokumentation - so professionell sie auch aufgemacht ist - höchst unvollständig ist. Es gibt ja einen Lazarus-Port namens LazWebKit, der ist schon ganz nützlich. Sobald Du aber über das Standardverhalten hinaus Zugriff auf z.B. die DOM-Struktur brauchst, gerätst Du auch damit schnell an die Grenzen.

Dennoch scheint mir (jedenfalls für mein Projekt) LazWebKit und die WebKitGTK-API der brauchbarste und schlankste Ausgangspunkt. Um dann an den eigentlich sehr leistungsfähigen Kern heranzukommen, kommt man allerdings nicht umhin, die ganzen WebKit-GTK-Headerdateien zu durchforsten (bei meiner Version sind das 169 Dateien...) und das, was man braucht, selbst zu portieren.

Im Moment arbeite ich an einem Programm, solche Headerdateien gezielt zu durchforsten. Wie gesagt, das Elend ist, daß vieles davon nicht dokumentiert ist, und die buchstäblich einzigen Anhaltspunkte die Namensgebung der jeweiligen API-Funktionen sind. Andererseits: Was immer Du brauchst, es ist da, man muß es halt nur finden.

Wird das bei Dir ein größeres Projekt?

Gruß Rüdiger

Epcop
Beiträge: 140
Registriert: Di 29. Mai 2012, 09:36

Re: Gecko Browser

Beitrag von Epcop »

Hallo Rüdiger,

vielen Dank für deine ausführliche Antwort.

Die Gecko Engine läuft bei mir recht gut bzw. die Seiten werden meist besser und schöner angezeigt als die anderen Varianten die ich ausprobiert habe.

Ursprünglich wollte ich einen einfachen Texteditor, mit dem man Text gestalten kann (evtl. auch Bilder einfügen). Und dieser Text sollte dann als PDF exportiert werden.

Zunächst hatte ich ein RichView, aber das stellte mich nicht zufrieden – zuviele Schwierigkeiten. Dann hatte ich eben die Idee, als „Ersatz“ eine HTML Seite anzuzeigen und den Code dann zu ändern. Darin bin ich flexibler und kann das auch einfacher als PDF exportieren als mit RichView. Das Handling scheint mir einfacher.

Position o. ä. Zu ermitteln wäre schön gewesen, weil dann bekommt der Nutzer nichts davon mit. So würde ich mir jetzt eher mit zwei Bereichen behelfen, auf einer Seite der HTML code und auf der andere die Anzeige. Benutzerfreundlich ist das nicht. Aber erfüllt erstmal den Zweck. Wenn ich das entsprechende herausgefunden habe, werde ich das noch ändern.

Lg
Epcop

Antworten