好久没弄Delphi,不过接到个任务,是开发一个嵌入网页的话务员座席程序(windows),开发的工具不外乎是VC++(MFC), C#(winform.net),Delphi(VCL),左右考虑,从编译速度,部署难度,熟悉程度(这个最重要~)上考虑,Delphi都是不二之选了。

虽然Delphi工具被卖掉后,当前的版本已经升至Delphi2009,但我的兴趣仍然在Delphi7上。

考虑到要嵌入网页,那么在开发中使用TWebBrowser组件是少不的了,不过Delphi自带的TWebBrowser类封装得比较简陋,什么表单自动填写,自动提交,获取页面内HTML元素的内容,等等等等功能,几乎都要额外编写代码完成。

参考网上的资料,各种各样相关的操控技巧代码,不少都是从Embedded Web Browser这个组件中抠出来的,干脆一劳永逸直接安装和使用这个组件。

何况阿里旺旺的wwMail.exe插件,也是使用此组件包(14.59)开发的,算是好东西啊~~

到[url]http://www.bsalsa.com/[/url]下载组件包
注意,当前最新版本是14.67.2, 其它旧的版本我也用过,异同点就懒得说了,就是以这个为例吧,以下是安装步骤
1.解压到X:\Libs\Delphi\EmbeddedWB
    X:\SDK\Libs\Delphi\EmbeddedWB\Test
    X:\SDK\Libs\Delphi\EmbeddedWB\Packages
    X:\SDK\Libs\Delphi\EmbeddedWB\Source
    X:\SDK\Libs\Delphi\EmbeddedWB\Demos
2.新建一目录
    X:\SDK\Libs\Delphi\EmbeddedWB\LibD7
3.复制Packages目录中的EmbeddedWebBrowser_D7.dpk到Source目录
    如果不做这步,Compile时会出错,要修改dpk增加IEDownloadTools.pas单元
4.重命名EmbeddedWebBrowser_D7.dpk为EmbeddedWebBrowser.dpk,并修改文件中package EmbeddedWebBrowser_D7这行为对应名字。
 --这步可选,是我的个人喜好,不做不影响使用。
5.用Delphi7开发环境打开X:\SDK\Libs\Delphi\EmbeddedWB\Source\EmbeddedWebBrowser.dpk文件,按Optios按钮,作如下调整:
    a.Directories/Conditionals标签Unit Output Dir=X:\SDK\Libs\Delphi\EmbeddedWB\LibD7
    b.Compiler标签Debugging组中除Use Debug DCUs外都打上勾
       这一步如果不做,则没有在IDE环境中用Ctrl+鼠标左击进行代码跳转(Find Declaration)
6.按Compile, 再按Install
7.打开IDE的Tools菜单"Environment Options..."项,转到Library标签,Library Path增加X:\SDK\Libs\Delphi\EmbeddedWB\LibD7,Browsing Path增加X:\SDK\Libs\Delphi\EmbeddedWB\Source
8.关闭打开的dpk文件不必保存。


以上安装步骤虽然略为烦琐,不过用起来还是比较干净的,可以为同一套组件源码目录安装D5,D6,D7,D2006等不同版本的Lib的同时避免每次都编译DCU,要清理打包的话,只需要把LibD7目录删除即可。

写在最后:一定要使用14.66.3或以后的版本,否则在安装bpl文件时以及程序部署运行时,都有可能被报告为间谍软件,原因是之前的版本都会在组件初始化时,改写注册表的HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Post Platform中的键值 -- 这也是我知道阿里旺旺的wwMail.exe新邮件通知程序使用了此组件包的原因。
在TEmbeddedWB类中,有UserAgentMode属性控制相关的行为模式,在编程时是需要注意的,以后有机会我再补充Embedded Web Broswer使用方面一些心得。