为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

delphi TWebBrowser组件使用详解

2022-10-14 4页 doc 17KB 32阅读

用户头像 个人认证

is_669242

暂无简介

举报
delphi TWebBrowser组件使用详解delphiTWebBrowser组件使用详解该组件是一个浏览器组件,可以显示一个指定地址的网页、设置网页打开时的主页以及对网页进行相关的操作,同时也可以对HTML文件进行剪切、复制、粘贴、删除等操作。该组件在Internet组件页中。1.属性(1)AddressBar属性设置是否显示地址栏,在TWebBrowser中没有用。语法:propertyAddressBar:WordBool;(2)Busy属性确定Web浏览器组件是否正在导航到一个新的URL地址或正在下载文档。语法:propertyBusy:WordBool;示例:...
delphi TWebBrowser组件使用详解
delphiTWebBrowser组件使用详解该组件是一个浏览器组件,可以显示一个指定地址的网页、设置网页打开时的主页以及对网页进行相关的操作,同时也可以对HTML文件进行剪切、复制、粘贴、删除等操作。该组件在Internet组件页中。1.属性(1)AddressBar属性设置是否显示地址栏,在TWebBrowser中没有用。语法:propertyAddressBar:WordBool;(2)Busy属性确定Web浏览器组件是否正在导航到一个新的URL地址或正在下载文档。语法:propertyBusy:WordBool;示例:如果该属性值为True,则在开始一个新的操作前,可用Stop方法中止当前操作,然后再导航到其他的页面,代码如下:procedureTForm1.BitBtn1Click(Sender:TObject);beginifWebBrowser1.BusythenWebBrowser1.Stop;WebBrowser1.Navigate('www.mingrisoft.com');end;(3)Container属性访问Web浏览器父类或容器的接口。语法:propertyContainer:IDispatch;示例:如果Web浏览器没有一个具有Automation接口的容器,则该属性的值为空。否则可以通过返回的接口,访问Web浏览器父类或容器,代码如下:ifWebBrowser1.Container<>nilthenbeginWebBrowser1.Stop;endelseShowMessage('Web浏览器没有一个具有Automation接口的容器');(4)ControlInterface属性访问WebBrowser组件接口,这个接口允许一个Automation控制器访问Web浏览器的属性、方法和事件。语法:propertyControlInterface:IWebBrowser2;示例:显示WebBrowserl组件的名称,代码如下:Showmessage(WebBrowser1.ControlInterface.Name);(5)FullName属性指定主机上Web浏览器组件的可执行文件的完整的合法路径名。语法:propertyFullName:WideString;示例:显示Web浏览器组件所在的可执行文件的名称,并且包含路径,代码如下:ShowMessage('Web组件所在的可执行文件为:'+WebBrowserl.FullName);(6)LocationName属性获得当前在Web浏览器组件中显示的资源名。语法:propertyLocationName:WideString;示例:显示网页标的名称,代码如下:ShowMessage('网页标题名:'+WebBrowser1.LocationName);(7)LocationURL属性确定当前显示文档、文件夹的URL或路径。语法:propertyLocationURL:WideString;示例:显示地址的完整路径,代码如下:ShowMessage('Web浏览器组件连接的URL为:'+WebBrowserl.LocationURL);(8)Name属性指定计算机上的TWebBrowser的名称。语法:propertyName:WideString;(9)Offline属性指定Web浏览器是否从本地缓存中获取文档。该属性为True时,示Web浏览器以脱机方式工作,否则为在线方式。语法:propertyOffline:WordBool;注意:可以使用IE浏览器保存HTML网页到本地缓存,浏览器可以脱机方式工作。(10)Path属性指定主机上Web浏览器组件可执行文件的路径名,不包括文件名。语法:propertyPath:WideString;示例:Str:=WebBrowser1.Path;(11)ReadyState属性获得指定Web浏览器组件的状态信息,使用这个信息可避免Web浏览器执行未准备的操作。语法:propertyReadyState:TOleEnum;(12)RegisterAsBrowser属性设置该属性为True时,当前使用的Web浏览器组件成为最高级别浏览器。语法:propertyRegisterAsBrowser:WordBool;RegisterAsDropTarget属性指出是否允许用户拖放HTML文档到当前Web浏览器。语法:propertyRegisterAsDropTarget:WordBool;示例:该属性为True时,允许用户拖放HTML文档到当前Web浏览器;否则拖放操作无效,代码如下:procedureTForm1.ToolButton4Click(Sender:TObject);beginifnotWebBrowser1.RegisterAsDropTargetthenWebBrowser1.RegisterAsDropTarget:=true;end;Silent属性指定TWebBrowser是否显示对话框。该属性为True时,该对话框不再显示脚本错误。语法:propertySilent:WordBool;Type_属性指定包含的文档对象的类型名称,读取该属性以确定Automation对象的类型,该对象的接口通过Document属性表示。语法:propertyType_:WideString;示例:显示文件的类型,代码如下:ShowMessage('Automation对象的类型为:'+WebBrowser1.Type_);2.方法ClientToWindow方法IE使用该方法转换客户坐标与窗口坐标。一般不要使用该方法。语法:procedureClientToWindow(varpcx:SYSINT;varpcy:SYSINT);pcx:坐标点X。pcy:坐标点Y。(2)ExecWB方法允许用户用IOleCommandTarget接口传递一个命令到当前Web浏览器组件。Microsoft定义了一些常量来表示这些命令,但是Web浏览器不全部支持这些命令,可用QueryStatusWB方法使用这些命令。语法:procedureExecWB(cmdID:OLECMDID;cmdexecopt:OLECMDEXECOPT);overload;procedureExecWB(cmdID:OLECMDID;cmdexecopt:OLECMDEXECOPT;varpvaIn:OleVariant);overload;procedureExecWB(cmdID:OLECMDID;cmdexecopt:OLECMDEXECOPT;varpvaIn:OleVariant;varpvaOut:OleVariant);overload;示例:调用ExecWB方法能够完成许多功能,例如停止网页浏览,代码如下:WebBrowser1.ExecWB(OLECMDID_STOP,OLECMDEXECOPT_PROMPTUSER);(3)GoBack方法返回到历史列表中的上一个文档。如果历史列表中没有包含另外的文档,该方法将无效。语法:procedureGoBack;示例:返回当前页的上一页,代码如下:WebBrowser1.GoBack();(4)GoForward方法返回到历史列表中的下一个文档,与最后调用GoBack方法的效果相反。语法:procedureGoForward;示例:返回当前页的下一页,但是如果历史列表中没有下一个文档,则产生异常,代码如下:tryWebBrowser1.GoForward();exceptexit;end;(5)GoHome方法返回已注册主页或开始页,在注册表中指定主页的注册项为:HKEY_CURRENT_USER\Sof-tware\Microsoft\IE\Main下的SStartpage名称栏。可用TRegistry、TRegistryIniFile对象或IE浏览器“工具”中的Internet选项改变注册主页。语法:procedureGoHome;示例:返回主页,代码如下:ifWebBrowser1.BusythenWebBrowser1.Stop;WebBrowser1.GoHome;(6)GoSearch方法打开已注册的搜索网页,在注册表中指定搜索网页的注册项为:HKEY_CURRENT_USER\Sof-ware\Microsoft\IE\Main下的SearchPage名称栏。可用TRegistry、RegistrylniFile对象或IE浏览器中“工具"中的Internet选项改变注册搜索网页。语法:procedureGoSearch;示例:打开已注册的搜索网页,代码如下:ifWebBrowser1.BusythenWebBrowser1.Stop;WebBrowser1.GoSearch();Navigate方法定位或下载指定的资源,发送HTTP消息到指定的URL并显示指定文件的内容,也可用来显示指定的文件。语法:procedureNavigate(constURL:WideString);overload;procedureNavigate(constURL:WideString;varFlags:OleVariant);overload;procedureNavigate(constURL:WideString;varFlags:OleVariant;varTargetFrameName:OleVariant);overload;procedureNavigate(constURL:WideString;varFlags:OleVariant;varTargetFrameName:OleVariant;varPostData:OleVariant);overload;procedureNavigate(constURL:WideString;varFlags:OleVariant;varTargetFrameName:OleVariant;varPostData:OleVariant;varHeaders:OleVariant);overload;Navigate方法语法中各参数的说明如表26.14所示。示例:Navigate方法是TWebBrowser组件中最重要的方法之一,使用该方法能够将当前TWebBrowser组件导航到任何存在的链接上,代码如下:ifWebBrowser1.BusythenWebBrowser1.Stop;WebBrowser1.Navigate(URL);//URL为网址Navigate2方法定位或下载指定的资源,发送HTTP消息到指定的URL并显示指定文件的内容,或导航到不能表达为URL的资源。语法:procedureNavigate2(varURL:OleVariant);overload;procedureNavigate2(varURL:OleVariant;varFlags:OleVariant);overload;procedureNavigate2(varURL:OleVariant;varFlags:OleVariant;varTargetFrameName:OleVariant);Overload;procedureNavigate2(varURL:OleVariant;varFlags:OleVariant;varTargetFrameName:OleVariant;varPostData:OleVariant);overload;procedureNavigate2(varURL:OleVariant;varFlags:OleVariant;varTargetFrameName:OleVariant;varPostData:OleVariant;varHeaders:OleVariant);overload;示例:Navigate2方法与Navegate方法类似,能够将当前TWebBrowser组件导航到指定的资源,代码如下:procedureTForm1.GoUrl2(URL:String);//URL为指定的资源的网址varoUrl:Olevariant;oPost,oFram,oflag:Olevariant;beginoUrl:=Url;oFram:=0;oFlag:=navOpenInNewWindow;//在新窗口中打开资源oPost:='';ifWebBrowser1.BusythenWebBrowser1.Stop;WebBrowser1.Navigate2(oUrl,oFlag,oFram,oPost);end;QueryStatusWB方法确定可以使用ExecWB方法执行的命令,即Web浏览器支持的命令信息,该方法使用IOleCommandTarget接口的QueryStatus方法来得到命令状态的信息。语法:functionQueryStatusWB(cmdID:OLECMDID):OLECMDF;cmdID:指定要获取其信息的命令。Refresh方法重新载入当前文档。Web浏览器正在显示的URL指定的资源可能已经发生变化时,这个方法非常有用。该方法总是发送一个参数,即非缓存标题,通知服务器不要返回缓存的复制,这对于某些服务器可能是一个问题。为阻止发送这个非缓存标题参数或只是刷新过期的网页,可用Refresh2方法。语法:procedureRefresh;示例:该方法完成了IE浏览器的刷新功能,可以使用该方法来重新载入当前页面,如果当前TWebBrowser组件没有载入任何的网页,则会产生异常,代码如下:ifWebBrowser1.LocationURL<>''thenWebBrowser1.Refresh;Refresh2方法调用Refresh2方法重新装入当前文档,与Refresh方法不同的是,该方法可指定要完成的刷新级别。语法:procedureRefresh2;overload;procedureRefresh2(varLevel:OleVariant);overload;Level:指定要被刷新信息的类型,其取值如表7所示。示例:Refresh2方法提供了更加复杂的刷新方式,提供了多种刷新方法,通过该方法同样能够实现Refresh方法完成的任务,代码如下:procedureTForm1.ToolButton7Click(Sender:TObject);varLevel:Olevariant;beginLevel:=REFRESH_IFEXPIRED;ifWebBrowser1.LocationURL<>''thenWebBrowser1.Refresh2(Level);end;Stop方法终止任何未完成的导航或下载操作,并终止任何动态的网页元素,如背景音乐和动画等。语法:procedureStop;示例:该方法实现了IE中的停止功能,即停止了一切载入工作,代码如下:WebBrowser1.Stop;3.事件(1)OnBeforeNavigate2事件Web浏览器导航到一个新的资源前被触发。语法:propertyOnBeforeNavigate2:TWebBrowserBeforeNavigate2;typeTWebBrowserBeforeNavigate2=procedure(Sender:TObject;constpDisp:IDispatch;varURL:OleVariant;varFlags:OleVariant;varTargetFrameName:OleVariant;varPostData:OleVariant;varHeaders:OleVariant;varCancel:WordBool)ofobject;OnCommandStateChange事件当执行TWebBrowser组件的某个方法的功能改变时被触发,其状态取值决定于执行Web浏览器中某个方法的功能。语法:propertyOnCommandStateChange:TWebBrowserCommandStateChange;typeTWebBrowserCommandStateChange=procedure(Sender:TObject;Command:Integer;Enable:WordBool)ofobject;Sender:指出其功能已变化的Web浏览器组件。Enable:指定CSC_NAVIGATEFORWARD或CSC_NAVIGATEBACK命令是否可用,其值为True时,可用;否则不可用。示例:OnCommandStateChange事件提供了一个命令状态改变后的处理功能,通过该事件能够判断执行某个命令后的当前浏览器状态,例如控制“后退”、“前进”或“停止”按钮是否可用,代码如下:procedureTForm1.WebBrowser1CommandStateChange(Sender:TObject;Command:Integer;Enable:WordBool);begincaseCommandofCSC_NAVIGATEBACK:ToolButton5.Enabled:=Enable;//“后退”按CSC_NAVIGATEFORWARD:ToolButton4.Enabled:=Enable;//“前进”按钮CSC_UPDATECOMMANDS:ToolButton2.Enabled:=TWebBrowser(Sender).Busy;//“停止”按钮end;end;OnDownloadBegin事件Web浏览器开始下载一个文档时被触发,编写其事件处理程序可以指定Web浏览器定位到一个文档后下载该文档前应采取的操作。语法:propertyOnDownloadBegin:TNotifyEvent;typeTNotifyEvent=procedure(Sender:TObject)ofobject;OnDownloadComplete事件导航操作完成、暂停或操作失败时被触发,编写其事件处理程序可以指定应采取的操作。语法:propertyOnDownloadComplete:TNotifyEvent;typeTNotifyEvent=procedure(Sender:TObject)ofobject;OnNavigateComplete2事件当Web浏览器成功地导航到一个新的位置时被触发,编写其事件处理程序可以指定应执行的操作。这个事件可能产生在当前文档下载完成前,但是事件结束时,至少已经接收到部分文档并产生了文档视图。语法:propertyOnNavigateComplete2:TWebBrowserNavigateComplete2;typeTWebBrowserNavigateComplete2=procedure(Sender:TObject;constpDisp:IDispatch;varURL:OleVariant)ofobject;Sender:导航到新的资源的Web浏览器。pDisp:浏览器的Automation接口。示例:当TWebBrowser组件成功地导航到一个新的位置后触发该事件,利用该事件能够获得当前状态或URL地址,代码如下:ifWebBrowser1.OfflinethenStatusbarl.Panels[Statusbarl.Panels.CountT].Text:二'脱机';elseStatusbar1.Panels[Statusbar1.Panels.Count-1].Text:='在线';ComboBox1.Text:=WebBrowser1.LocationURL;OnProgressChange事件当更新下载操作的进度时被触发,编写其事件处理程序可以提供一个关于下载进度的可视化的反馈。语法:propertyOnProgressChange:TWebBrowserProgressChange;typeTWebBrowserProgressChange=procedure(Sender:TObject;Progress:Integer;ProgressMax:Integer)ofobject;Sender:正在下载文档处理进程中的Web浏览器。Progress:指出有多少文档已经下载,取值范围在0~ProgressMax之间。当其参数为−1时,操作结束。PropressMax:指示下载操作的最大值。示例:利用该事件能够设计一个准确的网页载入进度条,该进度条表示了当前网页的载入进度,代码如下:procedureTForm1.WebBrowser1ProgressChange(Sender:TObject;Progress,ProgressMax:Integer);beginProgressBar1.Max:=ProgressMax;ifProgress=-1thenProgressBar1.Visible:=falseelsebeginProgressBar1.Position:=Progress;ProgressBar1.Visible:=True;end;ifProgressBar1.Position=ProgressMaxthenProgressBar1.Visible:=False;end;
/
本文档为【delphi TWebBrowser组件使用详解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索