我希望这不会被删除为主观的。唯一的主观部分可能是1)我的Delphi比我的PHP好2)我更喜欢编译成解释的编程语言。
然而,实际(非主观)问题是 - 如果我选择Delphi并使用TWebBrowser(或类似机制)来查看/操纵Google Earth,我会以任何方式限制我的可用功能吗?
在VCL浏览器组件中,我是否只能“在浏览器中”执行某些操作?
[更新]我忘了说1)我对Windows感到满意,2)Google Earth功能只是更大APP的一部分(对我来说,作为Delphi程序实现该应用程序更容易比基于浏览器的东西,但这听起来主观,这就是为什么我从来没有提到它。我只会坚持“如果我选择Delphi并使用TWebBrowser,我会以任何方式限制我的可用功能吗?”作为问题,因为那可以回答。
答案 0 :(得分:8)
没有技术原因可以不使用TWebBrowser
来显示地图或其他任何内容。事实上,这是一个意见问题,很可能你听过人们的意见告诉你不要这样做。不幸的是,Stack Overflow是一个问答网站,因此这样的问题不一定可行。
TWebBrowser
包装Internet Explorer浏览器窗口,并依赖于安装的任何IE版本。您可以在Internet Explorer中打开的任何内容也可以在TWebBrowser
包含的Google地球中打开。这是将其指向页面并加载它的问题。至于技术原因,这里和那里可能会有一些小故障,但我不明白为什么不这样做。
答案 1 :(得分:7)
在VCL浏览器组件中,我是否只能“在浏览器中”执行某些操作?
简短的回答是,如果您从内到外知道TWebBrowser(基于IE)/ DelphiChromiumEmbedded(Webkit),那么您不受限制。
我所知道的两个主要浏览器基于TWebBrowser / IE控件 - Avant Browser(用Delphi编写)和 Maxthon(我已经使用过它们,并且他们很好地为我服务,直到我完全切换到FF) - 从未遇到任何兼容性问题(与IE应用程序相比)。
一个很好的起点是TEmbeddedWB - 这个软件包包装了IWebBrowser接口和控件库(SHDOCVW.DLL),允许您创建一个自定义的Web浏览应用程序。
Web浏览器控件的一个非常重要的问题是,它默认使用 IE 7 渲染模式。因此,您需要为自己的应用程序指定IE渲染模式(see this article)。还有其他问题,但大多数问题可以通过注册表FeatureControl
键进行配置和自定义:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl
答案 2 :(得分:2)
是的,有一个 - Chromium Embedded Framework(CEF)的性能远高于IE,特别是在最终用户使用早期版本的IE的情况下。
CEF基于Google的开源项目Chromium。
我在LIVEditor (my new live html editor)中使用CEF,结果非常好!。
但请注意,压缩后您必须分发额外的20 MB文件。