Delphi - 是否有适用于VCL/FMX应用的所见即所得HTML编辑器组件?

24

我需要一个所见即所得编辑器组件,可以在Delphi应用程序中使用它来创建HTML电子邮件正文。


3
最终我们决定使用JvRichEdit,因为它是免费的。富文本保存在BLOB中,并在构建电子邮件时转换为HTML。看起来工作得不错,也没有涉及任何金钱。提供给JVCL的RichEdit示例非常出色!感谢所有的技巧。Pieter。 - Pieter van Wyk
1
使用Delphi和Bsalsa EmbeddedWB - web浏览器组件,我可以很容易地制作一个完整的HTML编辑器。 - Darren
1
很遗憾,这个话题被过早关闭了。它有很多赞和“收藏”投票。我个人投票支持重新开放。 - Gabriel
1
这可能是一个解决方案:http://stackoverflow.com/questions/39594393/twebbrowser-crashes-with-most-html-files - Gabriel
首先搜索您的问题。请参见https://delphihtmlcomponents.com/editor.html - user13239154
5个回答

8
我们最近刚刚使用 TRichView 来实现 HTML 邮件功能,发现它非常合适。我们评估了 WpTools,发现它确实可以做到我们想要的,但对于我们的需求来说,它太昂贵了,特别是当我们总是试图购买站点许可证时。
我们发现 WpTools 的一个问题是,它实现了一个可视化组件或一组可视化组件,您可以将其拖放到表单中,实现整个所见即所得的用户界面(例如工具栏等)。使用 TRichView 实现相同的功能需要更长的时间。
关于从/到 html 的转换-TRichView 可以本地导出 html,但需要第三方库来导入 html,这些库不幸的是(对我们来说)没有商业支持(即社区驱动)。因此,我们已经采取将所有内容原生存储在 RichText 中,仅在发送电子邮件时将其转换为 html。 WpTools 有导入/导出到 html 的能力。

如果您使用TMS,它们有TRTFEngine类,支持导入HTML。 - Runner
@Runner - 谢谢 - 我之前并不知道这个。事实证明,对于我们特定的用例,将内容保存为富文本是最好的选择,因为内联图像存储在富文本内容中。 - Nick Brooks
你测试过Outlook 2007对你的HTML电子邮件的支持吗?Outlook 2007使用Word作为它的HTML查看器,这种所见即所得的效果可能与你期望的不太一样。 - The_Fox
@The_Fox - 我们在Outlook 2007上进行了简短的测试,没有出现问题,但通常从我们的应用程序发送的电子邮件并不是功能丰富的HTML电子邮件。在我们的应用程序中,如果用户需要像素级复制其电子邮件,我们确实提供了粘贴HTML源代码的功能。 - Nick Brooks
这个解决方案给了我所需的答案。唯一的区别是我们使用JvRichEdit而不是TRichView。感谢您的建议。问候,Pieter。 - Pieter van Wyk
所有的答案都太老了。有没有最新的解决方案,可以在 Delphi Rio 上运行良好? - delphirules

5

多年来我也一直在寻找这个问题的解决方案。

  • 到目前为止,我找到的最好的解决方案是WpCubed的WpTools。它不是一个精确的Html编辑器,而是一个高级的文字处理组件,它提供了从html复制和粘贴的功能。我目前正在使用这个组件开发我的Sitestepper网站创建软件(在StepEdit html编辑器中提供所见即所得的可能性)。我认为在电子邮件编辑方面肯定可以使用它(尽管对于您想要的东西可能有点昂贵)。我知道作者正在开发更好的与Html之间交换的方式。

    但说实话,如果你需要一个Delphi组件,我不认为你会找到任何东西。

  • 我曾经使用Purposesoft的HtmlEdit,但我认为这个产品有一些局限性并且已经不再完全支持。但对于您的目的来说,也许这是可以接受的。


+1 WpTools非常适合这个任务,因为它可以导入和导出HTML,这就是所需的全部。 - skamradt
我同意,但是如果你想保留自己的代码(因为有注释和JavaScript代码),它不能保持它们不变(我希望作者正在编写的更新可以修复这个问题)。但对于一个邮件程序来说,这将非常有效(如果你愿意为此付出代价的话)。 - Edelcom

3

我使用了来自bsalsa的EmbeddedWB。基本上,它与Delphi的TWebBrowser相同,但您可以访问更多IE自动化对象的功能。在浏览器中,我加载了一个看起来像这样的HTML:

<html>
<head>
<title>Edit description</title>    
</head>

<body contenteditable="true">
</body>
</html>

使用IE特定的属性“contenteditable”标记一个元素,IE实现可以让您以所见即所得的方式编辑元素的内部HTML。您可以通过自动化调用(请查看bsalsa.com以了解如何读取编辑后的内容)获取内容。如果您掌握了基础知识,就可以很容易地创建完整的HTML编辑器。
祝你好运!

2

0
如果使用IE COM组件不是问题,那么您可以使用这个免费产品。

http://bsalsa.com/product.html

我最近需要一个免费的HTML WYSIWYG编辑器,我认为这是唯一可用的。对我来说,它很好用,但我不需要复杂的元素。它们也可以实现,但需要更多的工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接