如何制作一个易于使用的所见即所得 (WYSIWYG) 界面来创建 HTML 文件?也就是说,一个 HTML 编辑器。具体来说,用来创建格式化的电子邮件,包括图片、超链接、字体格式、项目符号、缩进等。
注意 [jd]:这是一个自问自答的问题,旨在为他人提供指引。
如何制作一个易于使用的所见即所得 (WYSIWYG) 界面来创建 HTML 文件?也就是说,一个 HTML 编辑器。具体来说,用来创建格式化的电子邮件,包括图片、超链接、字体格式、项目符号、缩进等。
注意 [jd]:这是一个自问自答的问题,旨在为他人提供指引。
EmbeddedWB Web浏览器组件来自bsalsa.com,提供了完成它所需的工具。
编辑:bsalsa.com不再存在。 新位置:https://bitbucket.org/wpostma/tembeddedwb
您可以将EmbeddedWB(Web浏览器)控件(窗口)放置在表单上以显示来自网站等的HTML。 然后,在对象检查器-属性中链接到EmbeddedWB控件,将EditDesigner组件放置在表单上。
使用EditDesigner,您可以将WebBrowser设置为编辑模式,并具有一些基本编辑功能,例如插入或删除文本或设置某些字体属性。但并非完整的编辑器。
不要绝望,此软件包是对MSHTML编辑器的完整封装。 对EditDesigner单元的微小添加允许您完全访问MSHTML execCommand接口。
原始代码:
procedure ExecCommand(Command: Widestring; ShowUI: Boolean; Value: Integer);
begin
if Assigned(FEmbeddedWB) then
GetHTMLDoc2FromWB.execCommand(Command, showUI, Value);
end;
procedure TEditDesigner.ExecCommandEx(Command: Widestring; ShowUI: Boolean; Value: OleVariant);
begin
if Assigned(FEmbeddedWB) then
GetHTMLDoc2FromWB.execCommand(Command, showUI, Value);
end;
当您需要向编辑器发送更高级的命令时,可以使用此过程。这将更改字体颜色。
procedure TfrmComposer.actFontColourExecute(Sender: TObject);
begin
if dlgColorDialog.Execute then
begin
EditDesigner1.ExecCommandEx('foreColor',False,dlgColorDialog.Color);
end;
EditDesigner1.EmbeddedWB.SetFocus;
end;
procedure TfrmComposer.JvFontComboBoxChange(Sender: TObject);
begin
EDewbMessageBody.ExecCommandEx('fontname',False,JvFontComboBox.FontName);
EDewbMessageBody.EmbeddedWB.SetFocus;
end;
还有一个EditDesigner1.InsertHTML过程,可以让您插入任何您想要的内容。
愉快的Delphi编程;)