AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

HTML WYSIWYG Editor

Ein Thema von machstuhl · begonnen am 15. Sep 2014 · letzter Beitrag vom 2. Okt 2014
Antwort Antwort
Seite 1 von 2  1 2      
machstuhl

Registriert seit: 17. Jul 2012
40 Beiträge
 
#1

HTML WYSIWYG Editor

  Alt 15. Sep 2014, 15:34
Hallo zusammen,

ich möchte gerne das meine Nutzer eine E-Mail-Signatur in einem WYSIWYG-Editor anlegen können.
Dieser Editor soll mir am Ende dann einen mit HTML-Tags versehenen String ausgeben.

Ich habe schon ein wenig im Internet gesucht, und habe nix passendes gefunden (TMS HTML Pack eignet sich nicht, TRichView ist zu überladen).

Hat wer einen Tipp woher ich so einen Editor bekommen kann? Oder zumindest eine Komponente die HTML verschiedene Fonts zulässt, damit ich mir zur Not selbst was basteln kann. TRichMemo eignet sich leider nicht, da man dort nur zeilenweise verschiedene Formatierungen angeben kann.

Gruß und Kuss
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: HTML WYSIWYG Editor

  Alt 15. Sep 2014, 16:11
Du könntest gegf. TWebBrowser dafür verwenden:

Delphi-Quellcode:
implementation
uses MSHTML;
{$R *.dfm}

var
  DocInterface:IHTMLDocument2;



procedure TMiniDemoForm.InitalisierenClick(Sender: TObject);
begin
  WebBrowser1.Navigate('file:///C:/temp/empty.html');
  DocInterface := (WebBrowser1.Document as IHTMLDocument2);
  DocInterface.DesignMode := 'On';
end;

procedure TMiniDemoForm.Selection_FettClick(Sender: TObject);
begin
  DocInterface.execCommand('Bold', false,0);
end;

procedure TMiniDemoForm.Schrift30Click(Sender: TObject);
begin
   DocInterface.execCommand('FontSize', false,30);
end;


procedure TMiniDemoForm.GetHTMLClick(Sender: TObject);
begin
  Showmessage(DocInterFace.body.InnerHTML)
end;
Für einen Zeilenumbruch benötigst Du CTRL+ENTER, da ENTER speichern möchte.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#3

AW: HTML WYSIWYG Editor

  Alt 16. Sep 2014, 07:31
Wir verwenden aktuell, die arg sperrige Lösung alles zwischen HTML und RTF hin und her zu wandeln und dann TRichView zu nehmen.

GS Auftrag von Sage verwendet den CK Editor, wahrscheinlich innerhalb eines TWebBrowser. Das ist im Moment auch meine favorisierte Variante, wobei der nicht ganz billig ist.
  Mit Zitat antworten Zitat
Mschmidt

Registriert seit: 4. Jul 2010
Ort: Berlin
62 Beiträge
 
Delphi XE2 Professional
 
#4

AW: HTML WYSIWYG Editor

  Alt 16. Sep 2014, 08:24
schau mal hier http://www.entwickler-ecke.de/viewtopic.php?t=50584

mfg
Mathias
  Mit Zitat antworten Zitat
machstuhl

Registriert seit: 17. Jul 2012
40 Beiträge
 
#5

AW: HTML WYSIWYG Editor

  Alt 26. Sep 2014, 11:18
Das mit dem Webbrowser funktioniert ganz gut. Man kann den ja sogar mit StringStreams füllen

Nächstes Problem. Wenn ich im WebBrowser im EditMode bin und einen Zeilenumbruch mache, füllt der Webbrowser immer <p> anstatt <br> ein.

Hat irgendwer eine Idee wie ich die doofen Absätze beim Zeilenumbruch weg bekommen kann?
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#6

AW: HTML WYSIWYG Editor

  Alt 26. Sep 2014, 11:25
Nächstes Problem. Wenn ich im WebBrowser im EditMode bin und einen Zeilenumbruch mache, füllt der Webbrowser immer <p> anstatt <br> ein.

Hat irgendwer eine Idee wie ich die doofen Absätze beim Zeilenumbruch weg bekommen kann?
Was ist das konkrete Problem, der Zeilenabstand (der bei br und p unterschiedlich hoch ist)? Das kann man durch das Auftragen von etwas CSS beheben.
Michael Justin
  Mit Zitat antworten Zitat
machstuhl

Registriert seit: 17. Jul 2012
40 Beiträge
 
#7

AW: HTML WYSIWYG Editor

  Alt 26. Sep 2014, 11:57
Nächstes Problem. Wenn ich im WebBrowser im EditMode bin und einen Zeilenumbruch mache, füllt der Webbrowser immer <p> anstatt <br> ein.

Hat irgendwer eine Idee wie ich die doofen Absätze beim Zeilenumbruch weg bekommen kann?
Was ist das konkrete Problem, der Zeilenabstand (der bei br und p unterschiedlich hoch ist)? Das kann man durch das Auftragen von etwas CSS beheben.
In der Tat. Der Webbrowser soll ein WYSIWYG Editor für Endanwender werden damit diese sich ihre eigene EMail Signatur basteln können. Diese wird als String in der Datenbank gespeichert.
Wie stellst du dir das mit dem CSS vor? Kann man nicht irgendwie dem Webbrowser sagen, dass er <br>s anstatt <p>s einfügen soll?

edit: hab es... das Interface hat eine StyleSheet-Property. Wie praktisch
Danke!

Geändert von machstuhl (26. Sep 2014 um 12:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von fs999
fs999

Registriert seit: 4. Dez 2006
Ort: Luxembourg
46 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: HTML WYSIWYG Editor

  Alt 26. Sep 2014, 16:59
...

Geändert von fs999 (26. Sep 2014 um 17:01 Uhr)
  Mit Zitat antworten Zitat
machstuhl

Registriert seit: 17. Jul 2012
40 Beiträge
 
#9

AW: HTML WYSIWYG Editor

  Alt 30. Sep 2014, 10:03
Ich raffs doch nicht so ganz wie ich jetzt die <p> so umbiege, dass sie wie <br> angezeigt bekomme. Kann mir wer evtl mit nem Codebeispiel auf die Sprünge helfen?

Code:
procedure TFormHTMLText.FormShow(Sender: TObject);
const
  CSS = 'p {'#13#10
        + '   margin-top: 0;'#13#10
        + '   margin-bottom: 0;'#13#10
        + '}';
var
  StylesheetIndex: Integer;
  Stylesheet: IHTMLStyleSheet;
begin
  // Ein Navigate muss gemacht werden
  WebBrowser1.Navigate('about:blank');
  FDocInterface := (WebBrowser1.Document as IHTMLDocument2);
  LoadDocFromString(WebBrowser1, FHTMLString);

  // CSS StyleSheet laden
  StylesheetIndex := FDocInterFace.StyleSheets.Length;
  if stylesheetIndex > 31 then
     raise Exception.Create(Lan('Maximal 32 Stylesheets erlaubt.'));
  Stylesheet := FDocInterFace.createStyleSheet('', StylesheetIndex);
  Stylesheet.cssText := CSS;

  // String in Browser laden
  LoadDocFromString(WebBrowser1, FHTMLString);

  DesignMode(True);
end;
macht leider keine <br> aus den <p> (bzw stellt <p> als <br> dar).

Geändert von machstuhl (30. Sep 2014 um 11:25 Uhr)
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#10

AW: HTML WYSIWYG Editor

  Alt 30. Sep 2014, 15:07
Das ist leider ein ganz typisches Verhalten, das auch Word und Konsorten zeigen.
Um nur einen Zeilenumbruch zu machen müsste man [Strg]+[Return] drücken.
Wie man dieses Verhalten unterdrückt, weiß ich auf Anhieb jetzt nicht.
Delphi programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 12:18 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