Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebBrowser - Position auslesen (https://www.delphipraxis.net/119986-twebbrowser-position-auslesen.html)

Opa Knack 4. Sep 2008 01:26


TWebBrowser - Position auslesen
 
Hallo,

in einem anderen Posting suche ich nach einer WYSIWYG-Komponente für Webseiten, was sich anscheinend nicht übermässig leicht darstellt.

Deshalb nun eine Frage, die eventuell eine Alternative darstellen könnte: Theoretisch sollte es ausreichen, die Webseite in einen TWebBrowser einzulesen und über ein Richedit editierbar zu machen (per HTML-Import/Export). Nun ist das Problem, dass die Webseiten nicht komplett editierbar sein sollen, sondern nur Teilbereiche daraus. Ich bräuchte also eine Möglichkeit, nach einem Klick auf den TWebBrowser auszulesen, ob sich der angeklickte Bereich in einer editierbaren Zone befindet, und den entsprechenden Quelltext dann bei positiver Antwort in das Richedit zu kopieren. Für die Zonen habe ich Platzhalter in das HTML-Dokument eingebunden ("").

Nun zur Frage: Hat jemand eine Idee, wie ich das auslesen könnte? Die knapp 30 Seiten, die mir die SuFu zum Thema TWebBrowser auswirft, haben mir da leider noch keinen Anhalt geben können.

Danke
Opa

omata 4. Sep 2008 01:58

Re: TWebBrowser - Position auslesen
 
Wie wäre es wenn du einen Online-Editor wie diesen im TWebbrowser anzeigen würdest. Der ist dann WYSIWYG.

Für deine Zonen würde ich mit regulären Ausdrücken arbeiten.

marabu 4. Sep 2008 05:49

Re: TWebBrowser - Position auslesen
 
Guten Morgen,

bearbeitbare Teilbereiche in einem HTML-Dokument lassen sich mit dem TWebBrowser realisieren. WYSIWYG mit designMode, contentEditable, aber mir genügt oft schon Template-Verarbeitung mit TPageProducer.

Grüße vom marabu

Opa Knack 4. Sep 2008 09:29

Re: TWebBrowser - Position auslesen
 
Hallo,

Danke für die bisherigen Tipps.

Die Idee mit dem Onlineeditor hatte ich auch schon, sehe darin nur das Problem, dass Javascript vorausgesetzt wird, was ich aber nicht unbedingt voraussetzen will (Programm wird eingesetzt in einem eher sehr puristischen Bereich, in dem das Vorhandensein eines Betriebssystems schon eine IT-Revolution darstellt). Weiterhin habe ich mir den oben genannten Editor näher angeschaut, finde ihn wirklich sehr gut, aber soweit ich sehen konnte, gibt es nicht allzu viele Möglichkeiten, direkten Einfluß auf ihn zu nehmen (z. B. welche Toolbuttons wo angezeigt werden, ...).

DesignMode ist gut, ich möchte aber lieber auch auf ActiveX verzichten (s. o.). Das mit dem PageProducer muss ich mir anschauen, mit dem habe ich mich noch gar nicht beschäftigt.

Hat sonst noch jemand Ideen? Ich habe schon darüber nachgedacht, den Text auszulesen, der angeklickt wurde, und dann im Quelltext zu suchen, aber das ist mit zu vielen Problemen verbunden (Entities, doppelt vorhandener Text, ...). Eventuell geht's über DOM, aber damit habe ich mich noch nicht ausreichend beschäftigt.

Bin weiterhin für jeden Tipp dankbar.

Gruß
Opa

Pfoto 4. Sep 2008 10:15

Re: TWebBrowser - Position auslesen
 
Hallo,

in wie weit kannst Einfluss auf dein Template nehmen?
Dann könntest du Inhaltselemente mit bestimmten IDs kennzeichnen,
z.B. "ID3-editable" oder entweder alle editierbaren
Elemente mit einer Klasse versehen, nach der du suchen könntest.

Das kannst du dann über das schon angesprochene DOM, indem du
feststellst, welcher Knoten sich unter deiner Maus befindet.
Wenn sich dann innerhalb deiner ID "editable" oder in eine
bestimmte Klasse befindet, könntest du den Inhalt auslesen und
an deinen Editor übergeben.

Zur Umwandlung der RichEdit gibt es dann sowas wie TScroogeXHtml,
aber das wäre ja schon einen Schritt weiter.


Gruß
Jürgen

marabu 4. Sep 2008 17:48

Re: TWebBrowser - Position auslesen
 
Hallo,

Zitat:

Zitat von Opa Knack
... DesignMode ist gut, ich möchte aber lieber auch auf ActiveX verzichten (s. o.). ...

das WebBrowser Control ist ein ActiveX Control - und TWebBrowser ist sein Wrapper. Verzichten soll dann wohl heißen, dass du dieses Control nicht verwenden willst, obwohl es auf dem Zielrechner vorhanden ist. Das war mir so nicht klar. Ich hatte nach dem Lesen deines Eröffnungsbeitrags eher den Eindruck, dass du die HTML-Darstellung TWebBrowser überlassen wolltest.

Freundliche Grüße

julchen 4. Sep 2008 19:52

Re: TWebBrowser - Position auslesen
 
Vielleicht hilft Dir GECKO weiter! Ist auch eine Web-Komponente!
Hab aber selber damit noch nichts gemacht und kann Dir deshalb nichts weiter sagen :-(
Frag mal mkinzler, Bernard Geyer, Marabu, Sakura, Thornberry, Alcaeus oder andere Cracks ob Dir damit vielleicht geholfen wäre?


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