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/)
-   -   Delphi Womit einen Wysiwyg-HTML-Editor realisieren? (https://www.delphipraxis.net/176332-womit-einen-wysiwyg-html-editor-realisieren.html)

Codehunter 28. Aug 2013 10:39

Womit einen Wysiwyg-HTML-Editor realisieren?
 
Moin!

Womit könnte man aktuellerweise einen Wysiwyg-HTML-Editor realisieren? Bisher habe ich dafür immer EmbeddedWB genommen und quasi indirekt auf den IE im Editmode gesetzt. Jetzt wird aber EmbeddedWB nicht mehr weiter gepflegt und zusammen mit dem IE10 scheint das nicht zu laufen.

Gibt es andere OSS-Projekte, die sich mit dem Thema befassen? Oder sollte ich um den IE10 herum einen neuen, eigenen Wrapper konstruieren?

Zu den Anforderungen: Der Editor soll vorrangig Textformatierungen (Fett, Kursiv, H1, H2 etc.) beherrschen. Tabellen, CSS-Design usw. sind nicht relevant.

Grüße
Cody

mkinzler 28. Aug 2013 10:48

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Z.B. mit DelphiChromiumEmbedded oder GeckoSDK for Delphi

mjustin 28. Aug 2013 11:30

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Zitat:

Zitat von Codehunter (Beitrag 1226472)

Womit könnte man aktuellerweise einen Wysiwyg-HTML-Editor realisieren?

Auf Umwegen kann man auch einen RTF Editor mit HTML Export verwenden, zum Beispiel TRichView (http://trichview.com/) - natürlich vorausgesetzt, man kann als Quelldaten mit RTF arbeiten und muss keine bestehenden HTML Dateien erst nach RTF konvertieren.

Codehunter 28. Aug 2013 11:38

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Zitat:

Zitat von mkinzler (Beitrag 1226475)

Also DCEF hab ich schon mal gesehen, mir war nur nicht bewusst dass das auch Editierfunktionen beherrscht. Gibts da ein Tutorial dazu?

Das GeckoSDK scheidet auf den ersten Blick aus weil es seit 4 Jahren nicht mehr weiter gepflegt wurde.

Den Umweg über Richview habe ich schon überlegt und verworfen, weil ich genau diesen Problemfall habe: Vorhandene Daten liegen schon als HTML vor und müssten hin- und herkonvertiert werden. Ich halte das nicht für sehr sinnvoll.

Phoenix 28. Aug 2013 12:47

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Einfach und simpel: http://www.aloha-editor.org/

Etwas komplexer, und das Zeug da raus zu rupfen könnte aufwändiger sein: http://jejacks0n.github.io/mercury/

Der ist auch ganz nett: https://www.raptor-editor.com/

Der umfangreichste ist aber vermutlich immernoch der CKEditor: http://ckeditor.com/demo

Codehunter 28. Aug 2013 13:01

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
@Phoenix: Du meinst, dass man die Editiererei nicht mehr nativ macht sondern quasi einen JavaScript-Editor direkt im Browser verwendet? Hmm, an die Möglichkeit hab ich noch gar nicht gedacht. Dadurch muss ich dann zwar die relevanten Codeteile hinterher aus dem Gewusel aus DIVs rausoperieren aber über das DOM eigentlich kein Problem.

Naja, fast kein Problem: Damit die JS-Editoren ihren ganzen Krempel nachladen können, müsste ich einen kleinen Webserver integrieren oder jeder einzelnen Installation die ganzen Dateien mitgeben. Das würde eine ziemliche Umstrickerei. Aber prinzipiell wärs machbar.

Da muss ich jetzt mal schwer drüber nachdenken... ;-)

Phoenix 28. Aug 2013 13:08

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Gerne. Kann auch sein, dass das für Deinen Use-Case nicht das richtige ist, aber ich wollte es mal in den Raum stellen ;-)

croco 20. Sep 2016 14:53

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Here could be a possible solution: http://stackoverflow.com/questions/3...ost-html-files

himitsu 20. Sep 2016 15:50

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Eine mögliche Lösung?

RadPHP ist seit 5 Jahren tot. (an die PAS-Dateien kommt man ofiziell nicht mehr ran ... nur das PHP-Framework steht als OpenSource zur Verfügung)
k.A. was vom RadPHP im HTML5 Builder noch weiter lebt.

Microsoft hat vor "kurzem" den Internet Explorer "entsorgt" und stellt schrittweise den Support ein.
Und für Edge werden die APIs sicher bissl anders aussehn.

UND, in dem Link erkennt man, dass das Ding nicht mehr funktioniert. :stupid:

[add]
Ohh, diese Datei ist sogar noch Original von Qadram Software ... nachdem Codegear deren Produkt gekauft und PHP4Delphi/RadPHP daraus gemacht hatte, verschwand diese Firma.
Mit Support seiten Quadram, Embarcadero und den Besitzern der abhängigen OpenSource-Projekte würde ich nicht rechnen ... seit Jahren gab es da keinerlei Reaktionen mehr, bezüglich Bugmeldungen zu RadPHP, Delphi for PHP, RadPHP Component Library, VCL for PHP oder der QaDRAM Component Library.

Codehunter 21. Sep 2016 07:18

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Ich denke der Post von Croco ist sehr nah an Spam dran. Zwei Jahre altes Profil und jetzt das erste Post geschrieben. Tststs :-)
Zitat:

Zitat von himitsu (Beitrag 1348199)
Und für Edge werden die APIs sicher bissl anders aussehn.

Bisher konnte ich überhaupt keine API-Doku finden, wie man Edge als Container in eigenen Anwendungen einbetten könnte. Und selbst bei MS-Programmen die irgendwo HTML-Inhalte darstellen scheint immer noch MSHTML (IE) verwendet zu werden. Daher stellt sich mir die Frage, ob Edge an sich nicht auch nur ein Aufsatz für MSHTML ist und dort nur irgendeine Art Schalter umgelegt wird. Irgendwie kann ich mir auch nicht vorstellen, dass MS damals im Fingerschnippen mal eben einen komplett neuen Renderer mit DOM-Interface auf die Beine gestellt haben soll.

Oder auch hier:
Zitat:

Does the WebBrowser control work with Microsoft Edge?
In Windows 10 the WebBrowser control will use Internet Explorer’s legacy rendering engine, mshtml.dll. At this time EdgeHTML is not available through the WebBrowser control.
Und hier:
Zitat:

Does the WebView control use Microsoft EdgeHTML?
Yes. In Universal Windows Apps built for Windows 10, the WebView control use Microsoft EdgeHTML. WebView controls in apps built for Windows 8 & 8.1 will continue to load the MSHTML to preserve compatibility.

himitsu 21. Sep 2016 09:48

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Kann Wird so sein, das der IE immernoch drin ist. ("IE deinstallieren" hat ja praktisch auch nur die "Links" zur GUI, bzw. die GUI und nen Teil der Addonschnittstelle entfernt, aber der Kern blieb im Windows)
Im Explorer und im Active Desktop ist auch ein IE drin.

Aktuell wird nur noch die Version 11 des IE suportet, aber das soll auch irgendwann auslaufen (aktuell nur noch Sicherheitspatches)
und die eingebetteten IEs waren eh immer bissl abgespeckter. (der TWebBrowser war ja auch kein voller IE)

Ich dachte mal gelesen zu haben, dass die die RenderEngine gekauft hätten, aber Wiki meint
Zitat:

Edge unterstützt keine alten Technologien wie ActiveX und Browser Helper Objects mehr; stattdessen wird ein Erweiterungssystem genutzt, das zukünftig auch Firefox- und Chrome-Erweiterungen integrieren können soll.
Der (alte) TWebBrowser nutzt ActiveX.
Zitat:

EdgeHTML ist ein von Microsoft entwickelter proprietärer HTML-Renderer für den Microsoft Edge Webbrowser. Es ist ein Fork von Trident, dem alle Legacy-Codes von älteren Versionen von Internet Explorer entfernt wurden und die Mehrheit des Quellcodes mit neuen Web-Standards neu geschrieben wurde.
EdgeHTML ist neue Engine für Edge und Trident ist die vom IE.
http://www.zdnet.com/article/microso...nder-the-hood/
Zitat:

EdgeHTML ist als Softwarekomponente entworfen worden, um Softwareentwicklern die Möglichkeit zu bieten ihren Applikationen Webbrowsing-Funktionalität zu geben. Es hat eine COM-Schnittstelle für den Zugriff und die Editierung der Webseiten mit jeder Ausstattung für COM-Support, wie z. B. C++ und .NET. Damit kann man z. B. eine Webbrowser-Komponente zu einem C++ Programm hinzufügen und dann die Seite, die gerade angezeigt wird abrufen und Eigenschaften der Elemente abrufen. Ereignisse können damit auch aufgefangen werden. EdgeHTML wird auch dafür verwendet WinRT-Applikationen, die auf Web-Technologien basieren, zu rendern.
Seit ein oder zwei Versionen hat Delphi einen neuen TWebBrowser, der nicht auf den IE aufsetzt. (glaub ich, kann auch sein, dass es nur den neuen FMX-TWebBrowser betrifft)
War aber vorallem darum, damit der TWebBrowser auch im FMX und auch in anderen OS läuft.

Codehunter 22. Sep 2016 09:23

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Das mit dem ActiveX ist nicht so trivial wie es auf den ersten Blick aussieht und es wird oftmals (auch seitens Microsoft) falsch kommuniziert. Edge unterstützt im Gegensatz zum IE nicht mehr das Einbetten und Ausführen von ActiveX-Applets über das <object>-Tag im HTML-Quellcode. Das ist soweit richtig. Was aber nicht stimmt ist, dass das EdgeHTML-Framework sich nicht als ActiveX-Control in andere Anwendungen einbetten ließe. Im Gegenteil, ich möchte fast meinen Hintern drauf verwetten, dass das UI vom Edge-Browser auch nur ein Frontend ist das den Renderer als ActiveX ausführt/einbettet.

Es wäre nicht verkehrt wenn sich jemand dafür engagieren würde, eine brauchbare Delphi-Implementierung einer alternativen Rendering-Engine zu erstellen. Es gab da ja mal Versuche in Richtung Chrome-Engine, aber so richtig der Hit war das nie. Gebraucht wird es auf jeden Fall - und wahrscheinlich mehr über die VCL als über FMX. Denn im Moment sehe ich FMX wieder auf dem absteigenden Ast, Idera hat da wohl andere Pläne.

himitsu 22. Sep 2016 09:36

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Ohh, na dann klingt das ja doch besser, als gedacht.
Müsste dennoch mal gucken, was Emba eigentlich einbindet, beim FMX-WebBrowser ... ob man das auch für VCL nutzen kann.

Zitat:

Zitat von Codehunter (Beitrag 1348420)
Es gab da ja mal Versuche in Richtung Chrome-Engine, aber so richtig der Hit war das nie.

Eigentlich lief der gut, aber hatte da nicht Google die Einbindunge der DLL abgesägt?

Chromium selbst ist ja OpenSource, aber k.A. ob das auch die HTML-Engine betrifft, aber wenn doch, dann sollte man das doch bestimmt wieder einbinden können. (falls die Lizenz das zulässt)

mkinzler 22. Sep 2016 09:45

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Edge basiert auf einer komplett neuen RenderEngine. Für diese gibt es aber noch keine ActiveX-Schnittstelle.

Codehunter 22. Sep 2016 09:57

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Zitat:

Zitat von mkinzler (Beitrag 1348427)
Edge basiert auf einer komplett neuen RenderEngine.

Dem widerspricht aber Wikipedia, wonach Edge ein "stark modifizierter Fork" von Trident sei. Deshalb auch meine Theorie, dass beide einen gemeinsamen Kern teilen und sich "nur" per Switch unterscheiden. Wobei das aber vorallem auf den Renderer zutrifft, nicht auf die JS-Engine Chakra, die tatsächlich komplett neu ist.
Zitat:

Zitat von mkinzler
Für diese gibt es aber noch keine ActiveX-Schnittstelle.

Keine offizielle bzw. öffentlich dokumentierte jedenfalls. Was aber auch schon wieder nicht ganz korrekt ist, denn für Universal-Apps unter Win10 gibt es ein Webview-Control, das offiziell auf der EdgeHTML-Engine basiert. Die ganze Situation ist doch ziemlich verworren.

Es müsste ja auch nicht zwangsläufig ActiveX sein, nur eine irgendwie geartete Möglichkeit, einen HTML-Renderer in eigene Anwendungen einzubetten. Wysiwyg-Editing ist dann ja noch mal eine "verschärfte" Disziplin, das für den IE im Moment ein Alleinstellungsmerkmal ist.

mquadrat 22. Sep 2016 10:02

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
In den MS Blogs wurde auch immer davon gesprochen, dass EdgeHTML quasi nur der HTML-5 Teil von Trident ist. Alles was Trident mitgeschleppt hat um noch Webseiten, die mal für den IE 6 entwickelt wurden, anzeigen zu können hat man rausgeworfen. Ebenso hat man das Einbetten von Active-X rausgeschmissen.

Codehunter 22. Sep 2016 13:04

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Das Einbetten von ActiveX kam zumindest in meinem langjährigen Erleben nur sehr selten vor. Java klar, Flash sowieso. Aber ActiveX als eingebettetes Objekt da kann ich mich in den 20 Jahren seit es die Möglichkeit gibt, nur an einen Fall erinnern: Das Webfrontend für einige inzwischen schon recht betagte Siemens-Telefonanlagen. Das lief dann auch nur maximal mit IE5 und IE6, weil ab dem 7er Microsoft ja so langsam angefangen hat den ganzen freakigen Mist aus der Engine zu werfen.

Also sagen wir mal so: Eingebettetes ActiveX ist dank HTML5, CSS3 und JS inzwischen ein weitgehend vernachlässigbares Feature. Man und ich erinnere mich noch gut an die Präsentation dieses Features, damals noch durch Bill Gates himself, in Seattle glaube ich. Wenns nicht sogar die selbe Veranstaltung war als Win98 vorgestellt wurde und mit einem Bluescreen abgeschmiert ist ^^

Rollo62 22. Sep 2016 20:41

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Was ist damit, hat da jemand Erfahrung ?
Werde ich wohl bald mal austesten ...

https://delphihtmlcomponents.com/editor.html

Rollo

Codehunter 23. Sep 2016 07:11

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Erfahrung wäre zu viel gesagt. Ich habe vor längerer Zeit die Trial ausprobiert, mich dann aber letztlich dagegen entschieden. Einerseits wegen des fehlenden HTML5-Supports, andererseits wegen des Preises. Zu der Zeit war aber auch die Edge-Problematik noch nicht absehbar, weshalb der Mehrwert dieser Komponenten gegenüber TWebbrowser im EditMode nicht klar zu benennen war.

Wenn es um ganz einfache HTML-Dokumente geht (Überschriften, Absätze, statisch eingebundene Bilder) dann sind diese Komponenten sicher sehr gut. Vorallem sind sie nativ implementiert, man muss also nicht ständig Microsofts Update-Eigenwilligkeiten beim IE hinterher putzen.

himitsu 23. Sep 2016 09:58

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Schade, dass Embarcadero die Komponenten vom Delphi nicht für Programme bereit stellt.

Tipp: Öffnet mal eine HTML-Datei in der Delphi IDE. :stupid:
(das geht schon ewig, auch ohne Delphi4PHP, RadPHP, HTML5-Builder)

Rollo62 23. Sep 2016 10:29

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Also ich würde DCEF3 empfehlen, statt DCEF1.

Gibt es einen Grund warum man DCEF1 nehmen sollte ?

Rollo

Codehunter 23. Sep 2016 12:21

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Die Frage müsste eigentlich anders lauten: Gibt es einen Grund DCEF nicht zu nutzen? Was mich daran stört ist, dass man sich da noch abhängiger macht als beim IE. Der Sourcetree beginnt bei Google (Chrome) wandert dann über Chromium und CEF zu DCEF. Das sind dann vier Point of Failures statt einem. Aber JA, sofern man Chromium in DLL-Form mitliefern kann und einem dies weder durch Lizenzen noch durch Chrome-Updates madig gemacht wird, spricht nichts gegen DCEF.

Wobei ich aber mindestens zwei Kunden habe, von denen ich sicher weiß dass sie Code der in irgendeiner Form von Google stammt, nie akzeptieren werden. Manchmal ist der Aberglaube ein bisschen lästig, aber der Kunde ist halt König ^^

himitsu 23. Sep 2016 12:55

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Sag dem Kunden einfach, der andere Code stammt von Microsoft (Bing-verseucht)

hoika 23. Sep 2016 15:20

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Hallo,
ich werfe noch den THtmlViewer in die Wagschaale.

Oh, ich habe gerde gelesen, es geht um einen Editor,
dann geht der THtnlViewer natürlich nicht.

Rollo62 24. Sep 2016 06:13

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Zitat:

Gibt es einen Grund DCEF nicht zu nutzen?
Weil ich seinerzeit damit nicht alle Funktionen machen konnte die ich brauchte, und
ich habe den Eindruck das es nicht gepflegt ist.

Letztes Update steht im Web 2011 / XE2, DCEF3 scheint für mich aktueller zu sein.
Könnte mich aber täuschen.

Rollo

OlloSoft 5. Jul 2017 08:24

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Zitat:

Zitat von Rollo62 (Beitrag 1348526)
Was ist damit, hat da jemand Erfahrung ?
Werde ich wohl bald mal austesten ...

https://delphihtmlcomponents.com/editor.html

Rollo

Ich habe den HTML-Editor mal getestet. Er ist langsam, hat zuweilen Probleme mit der Darstellung und UTF-8 Zeichen und es kommt sogar vor, dass er sich komplett aufhängt :-(

Ansonsten ist es ein netter Versuch...

Redeemer 5. Jul 2017 09:09

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Okay, Totengräberei durch OlloSoft. Immerhin kann man mal fragen: Wie wurde das denn letztendlich gelöst?

Als ich BBCode-Unterstützung mit ebenfalls nur grundlegenden Features brauchte, habe ich mir eine Unit geschrieben, die mit dem Standard-TRichEdit gearbeitet hat. Unterstützt werden:
  • Fett/Kursiv/Unterstrichen
  • Ausrichtung
  • Farbe
  • Schriftgröße
  • Aufzählungen (eine Ebene, TRichEdit will nicht mehr)
Das ganze nach HTML umzubiegen, sollte nicht so schwer sein. Weitere Features wie Schriftart sollten sich ebenfalls einfach hinzufügen lassen.

hsg 5. Jul 2017 13:15

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Wir benutzen an ein paar Stellen nun den TADVRichEditor mit dem TADVRichEditorHTMLIO-Zusatz von TMS. Damit kann man recht einfach HTML ein- und auslesen, wenngleich wohl längst nicht alles aus dem HTML-Bereich unterstützt wird. Für die Texte in der Datenbank (Fremdhersteller!) reicht es allerdings aus.

Rollo62 5. Jul 2017 17:41

AW: Womit einen Wysiwyg-HTML-Editor realisieren?
 
Zitat:

Ich habe den HTML-Editor mal getestet. ...
Seltsam, der wird doch noch in EC HelpandManual and Editor verwendet, oder nicht ?
Unds lief eigentlich immer super.

Rollo


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