delphi - TChromium 中的默认界面缺失

标签 delphi com delphi-2007 twebbrowser

我们正在尝试将内置浏览器组件从 TWebBrowser 更改为 TChromium 。 它主要用于显示 Google 和 Bing 的 map 。从 javascript 到 Delphi 的通信是通过 COM 完成的。

当尝试将浏览器更改为 TChromium 时,无法编译此代码。

if supports(fBrowser.defaultInterface, IOleObject, fOLE) then

因为 TChromium 中缺少 defaultInterface。

编辑: 是否仍然可以使用 Chromium 从 javascript 到 Delphi 进行通信? 我知道它们不兼容,我必须重写代码。我只是想知道如何从 javascript 获取结果到 delphi。注意,我使用的是 Delphi 2007,因此无法使用扩展 RTTI。

问候 罗兰·本特森

最佳答案

我自己从未使用过它,但 TChromium 似乎是“Chromium”网络浏览器的包装器,而来自 Delphi 的原始 TWebBrowser 是 IE 的包装器浏览器。

TWebBrowser.defaultInstance 为您提供 IE 浏览器的 COM 对象。对于 Chromium 浏览器,您显然可以使用 TChromium.Browser,它为您提供一个 ICefBrowser 类型的对象。 TChromium 人员很聪明,没有将属性命名为 defaultInstance,因为有很多代码从 defaultInstance 的返回转换为其他接口(interface)类型:如果 TChromium.Browser 命名相同,则转换将编译并在运行时失败。因为IE浏览器显然不是Chrome浏览器,而且我怀疑Chromium浏览器是否完全实现了IE的所有接口(interface)。

关于delphi - TChromium 中的默认界面缺失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6843569/

相关文章:

delphi - ocks5代理互联网

excel - 读取 Excel 工作表中的特定列

c++ - 32 位工作正常,但 64 位出现错误 : Microsoft C++ exception: _com_error at memory location

visual-studio - 为什么 MSDN 或 VS2015 不使用 __stdcall 约定声明 IUnknown 方法?

java - 如何在 Java 中进行 COM 互操作?

delphi - 如何访问 TCRDBGrid 组件中的搜索文本?

delphi - 如何使用 TEdits selStart 和 SelLength 来选择文本?

delphi - 动态数组内存分配策略

delphi - 为什么编译器提示行前面有 [DCC 警告]?

Delphi XE2 - 当调用读取函数回调时,DFM 流随机为空或损坏