在TEmbeddedWB中预加载HTML并启用设计模式

时间:2013-10-08 00:40:41

标签: delphi webbrowser-control c++builder twebbrowser

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

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

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

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

我尝试输入一些文字并通过点击切换按钮来启用/禁用编辑模式。这很好,并没有清除切换之间的文本。问题在于预加载(初始)HTML。

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

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

Delphi-EmbeddedWB-XE3 on GitHub - Modifications for Delphi XE3

Archive.org Bsalsa.com page

TEmbeddedWB project on SourceForge (not the most recent version - last version released on bsalsa.com was 14.70.0)

1 个答案:

答案 0 :(得分:2)

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

解决方案:

在表单上删除TEditDesigner并将其连接到使用TEmbeddedWB的{​​{1}}或在代码中使用EmbeddedWB

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

EditDesigner1->EmbeddedWB = EmbeddedWB1;

01 - EditDesigner_Demo (文件夹)显示您可以使用EditDesigner1->ConnectDesigner(); UnicodeString html("<body><p>Hello world</p></body>"); EmbeddedWB1->LoadFromString(html); // Optionally focus to it EmbeddedWB1->SetFocus(); 执行更多操作。