1

我想预加载 HTMLTEmbeddedWB并在设计模式下使用它。这是我的简单代码:

UnicodeString html("<body><p>Hello world</p></body>");
EmbeddedWB->LoadFromString(html);
EmbeddedWB->DesignMode = true;

所以在此之后文本“hello world”应该是可编辑的。

当我从字符串加载时,它会正确显示 HTML。但启用设计模式后,控件中的所有文本都将被清除。似乎加载它的唯一方法是使用Navigate方法然后打开设计器 - 这似乎有效。有没有办法从内存中加载然后启用设计模式?

我尝试输入一些文本并通过单击切换它的按钮来启用/禁用编辑模式。这工作得很好,并且不会清除切换之间的文本。问题只是预加载的(初始)HTML。

另外,是否有 bsalsa.com 页面的镜像?随着网站的关闭,许多有价值的文档、论坛和其他东西都丢失了。

更新 - 一些与此问题相关的有用链接:

Delphi-EmbeddedWB-XE3 on GitHub - Delphi XE3 的修改

Archive.org Bsalsa.com 页面

SourceForge 上的 TEmbeddedWB 项目(不是最新版本 - bsalsa.com 上发布的最新版本是 14.70.0)

4

1 回答 1

2

我自己找到了答案。似乎有一个额外的组件只用于这个特定的目的TEditDesigner,这使得所有与编辑相关的事情变得微不足道。通过查看 Demos 文件夹找到了解决方案(那里有很多关于各种事情的示例)。

解决方案:

拖放TEditDesigner到表单上并将其连接到TEmbeddedWBusing 属性EmbeddedWBEditDesigner1->EmbeddedWB = EmbeddedWB1;在代码中使用

加载 HTML 并使其可编辑的代码如下:

EditDesigner1->ConnectDesigner();
UnicodeString html("<body><p>Hello world</p></body>");
EmbeddedWB1->LoadFromString(html);

// Optionally focus to it
EmbeddedWB1->SetFocus();

01 - EditDesigner_Demo(文件夹)显示了更多您可以使用TEditDesigner.

于 2013-10-08T17:52:27.710 回答