我想在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
答案 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();
执行更多操作。