一、 在Delphi中引入IE浏览器控件
---- 由于IE浏览器控件需要提供显示功能才能使用,所以不能在程序中用
CreateOleObject取得一个实例后直接使用其属性和方法,否则程序在运行时会引起
错误;这时需要用Delphi中提供的 “Import ActiveX Control”功能,操作方法见
下所述。
---- 在“Components”菜单中,调用“Import ActiveX Control”功能,在
Registered Controls (注册控件)列表中选择“Microsoft Internet Controls
(Version1.1)”,下方的提示栏中显示出其路径为C:/PWin98
/System/SHDOCVW.DLL,在Class Names(类型列表)中列出了可注册的三个控件:
TWebBrowser_V1、TWebBrowser和TShellFolderViewOC,分别为IE3浏览器控件、
IE4浏览器控件和 “Microsoft外壳文件夹查看路由器”控件。单击Install进行安
装。安装完成后,在“ActiveX” 控件栏中,将增加三个控件,分别为
TWebBrowser_V1、TWebBrowser和TShellFolderViewOC;在 Delphi的Imports目录
下,将创建一个文件SHDocVw_TLB.PAS,其中有这三个控件的包装细节,当然含控件
的属性和方法说明了,它可以作为我们使用控件的参考资料。
二、 在Delphi程序中使用IE浏览器控件
----
以TWebBrowser(IE4浏览器控件)为例子。
TWebBrowser的常见属性和方法主要有:
GoBack:方法,后退到上一个页面。
GoForward:方法,前进到下一个页面。
GoHome:方法,调用默认的主页页面,
该页面在IE的选项中设定。
GoSearch:方法,调用默认的搜索页面,
该页面在IE的选项中设定。
Navigate(const URL: WideString;
var Flags, TargetFrameName, PostData,
Headers: OleVariant):方法,
调用指定页面,具体参数如下:
URL:指定页面的URL。Flags:
Word类型,作用还不清楚,可设为0。
TargetFrameName:WideString,
打开页面所在的Frame,为空字符串时在当前的
Frame中打开;TargetFrameName
指定的Frame存在时在Frame中打开;
TargetFrameName指定的Frame
不存在时则新建一个窗口打开,此时就相当
于调用外部的IE浏览器了。
PostData:boolean,是否允许发送数据。
Headers:WideString,
要发送的URL请求的头部数据。
Refresh:方法,刷新当前页面。
Stop:方法,停止调用或打开当前页面。
LocationName:属性(WideString),当前位置的名称。
LocationURL:属性(WideString),当前位置的URL。
Busy: 属性(Boolean),是否正忙。
Visible: 属性(Boolean),浏览器窗口是否可见。
(以下属性为在TWebBrowser新增,
TWebBrowser_V1中没有,其作用有待探索)
StatusBar: 属性(Boolean),是否显示状态栏。
StatusText: 属性(WideString),状态栏内容。
ToolBar: 属性(SYSINT),工具栏中的内容。
MenuBar: 属性(Boolean),是否显示菜单条。
FullScreen: 属性(Boolean),是否全屏显示。
Offline: 属性(Boolean),是否脱机浏览。
AddressBar: 属性(Boolean),是否显示地址栏。
TWebBrowser的常见事件主要有:
OnStatusTextChange = procedure
(Sender: TObject; const Text: WideString)
of object;
---- 在状态栏提示信息变化时发生,参数Text为当前状态栏提示信息,我们可以根
据该信息来更新我们自己的状态栏提示信息或处理其它的事务.
---- OnProgressChange = procedure(Sender: TObject; Progress, ProgressMax: Integer) of object;
---- 在打开页面的进度变化时发生,参数Progress为当前进度,ProgressMax为总
进度,我们可以根据这两个参数来更新我们自己的状态栏提示信息或处理其它的事
务.
---- OnCommandStateChange = procedure(Sender: TObject; Command:
Integer; Enable: WordBool) of object;
---- 当执行新的命令时发生,Command为命令标识,Enable为是否允许执行该命
令. OnTitleChange = procedure(Sender: TObject; const Text:
WideString) of object;
---- 在页面的标题发生变化时发生,Text为当前标题.
---- OnPropertyChange = procedure(Sender: TObject; const Property_:
WideString) of object;
---- 在页面的属性发生变化时发生,Property_为属性名称 OnDownloadComplete: TNotifyEvent
---- 在下载页面完成后发生.
---- OnDownloadBegin: TNotifyEvent
---- 在下载页面开始前发生.