使用默认的 TWebBrowser 可以轻松地嵌入一个 Web 浏览器。不幸的是,这个默认的浏览器内核是 IE<n>。
我想知道怎样集成 Gecko 或 WebKit 内核的浏览器。
- 有没有 VCL 示例可以参考?
- 如果没有,应该如何实现?
- 哪里可以找到可嵌入的 Gecko 和/或 WebKit 内核的最佳位置?
使用默认的 TWebBrowser 可以轻松地嵌入一个 Web 浏览器。不幸的是,这个默认的浏览器内核是 IE<n>。
我想知道怎样集成 Gecko 或 WebKit 内核的浏览器。
TWebBrowser是IE。它不是浏览器的可插拔构造。您可以将其他浏览器集成到应用程序中。请参见:
这个答案是从08年开始的,自那时以来时间已经过去了许多。链接不再有效,可能现在有更好的替代方案。
编辑:很遗憾,Lars已经先我一步了。
好的,基于Gecko引擎的ActiveX控件试图呈现IWebBrowser API的精确副本(TWebBrowser使用该API)。
你可以在这里找到它:http://www.iol.ie/~locka/mozilla/control.htm不幸的是,看起来它已经有一段时间没有更新了。最后一个版本是基于Gecko 1.7.12构建的,而我认为Gecko目前已经更新到1.9.x(用于Firefox 3)。
另一种选择是THTMLViewer组件。我已经使用了几年。
现在可以免费获取,网站在这里http://pbear.com/htmlviewers.html。根据songbeamer网站的说法(http://www.songbeamer.com/delphi/),有一个Delphi 2009版本可用。
当Mozilla发布Gecko 2.0时,我认为将更容易将其嵌入Delphi中。Gecko中的XPCOM对象系统使得嵌入变得非常困难,因为大多数东西都返回NS_RESULT。特别是字符串。
编辑:我刚刚查看了我的旧书签(几乎全部失效),并搜索了一个基于Gecko的日语“bagel”浏览器的新网址,在这里找到了它,
这可能是你开始阅读优秀代码的最佳选择。不幸的是,代码中的注释是日语,并且作者从未回答过问题。请访问http://github.com/plus7/bagel/tree/master/Legacy。