![]() |
HTML WYSIWYG Editor
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 |
AW: HTML WYSIWYG Editor
Du könntest gegf. TWebBrowser dafür verwenden:
Delphi-Quellcode:
Für einen Zeilenumbruch benötigst Du CTRL+ENTER, da ENTER speichern möchte.
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; |
AW: HTML WYSIWYG Editor
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. |
AW: HTML WYSIWYG Editor
|
AW: HTML WYSIWYG Editor
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? |
AW: HTML WYSIWYG Editor
Zitat:
|
AW: HTML WYSIWYG Editor
Zitat:
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! |
AW: HTML WYSIWYG Editor
...
|
AW: HTML WYSIWYG Editor
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:
macht leider keine <br> aus den <p> (bzw stellt <p> als <br> dar).
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; |
AW: HTML WYSIWYG Editor
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz