動態創建Webbrowser並給定OnDocumentComplete事件!!!多個創建有問題

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

 

一個動態創建Webbrowser並給定OnDocumentComplete事件的簡單例子

 

---------------聲明是這樣子的(事件不同就不同)-----------------------
private
{ Private declarations }
public
{ Public declarations }
procedure proDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
end;
----------------下面是事件執行與動態創建一個WEB-----------------------
procedure TForm1.proDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
form1.Caption:=web.LocationName;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
web:=twebbrowser.Create(self);
TWinControl(Web).Parent   := form1;
web.Visible:=true;
web.Width:=500;
web.Height:=200;
web.Left:=20;
web.Top:=60;
web.Tag:=0;
web.show;
web.Navigate('httP://www.baidu.com');
web.OnDocumentComplete := proDocumentComplete;
end;


--------------------------下麵是我的問題-------------------------------


我的目的是:動態創建多個WEB,各自有相應的OnDocumentComplete事件.
但是不知道為什麼只要用到數組創建多個就會在關閉程序時出錯.找了一個下午的資料也沒有找
解決方案..

Delphi TWebBrowser事件说明 阅读详情

相关推荐

在CHtmlView中,判断一个页面加载完成的准确方法

凌晨了,但是关于这个问题一定要记录下来,要不然以后不记得了,还得走弯路。 今天在对一个小系统做一个测试,为了便于自动操作,于是用VC写了个软件来代替人工操作。简单地说,功能就是:不断地刷某URL,服务器那一端的程序会返回另一个URL,要看服务器端程序会不会出问题,同时要记录一些东西。 两年多以来一直用VC开发,但是从未搞过和browser直接相关的VC程序,这次我只能仓促上阵:我用

编码无悔 3945

类内实现MFC/VC shdocvw IWebbrowser2的OnDocumentComplete事件响应

void CWebMethod::OnDocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL) 经过多次测试,本函数非主框架的完成最后一次调用.比如http://www.taobao.com如果有cookies被保存 主框架可能第二个就完成 然后这个函数还会被回调两次. 多数如果无cookies的时候,都是在最后一次或者倒数第二次的

Afterwards_的专栏 2234

如何从OnDocumentComplete事件中获得当前frame的html代码

最近弄的东西,需要获得一个网页中所有frame的html代码. 获取frame的源码是在OnDocumentComplete事件的处理函数中进行的. void OnDocumentComplete(IDispatch *pDisp, VARIANT *URL); 参数IDispatch *pDisp是当前完成OnDocumentComplete的browser接口.可以通过判...

weixin_30216561的博客 237

WebBrowser的用法

http://hi.baidu.com/pirateflag/blog/item/c1b898243a83212ed507422b.html WebBrowser的用法2008-06-18 11:22WebBrowser是一个简单的浏览器,我们可以通过它完成很多关于网页的操作。在Delphi中,需要引用ShDocVw和MsHtml,下面会逐渐介绍一些使用办法创建Web

skyremember的专栏 2649

CHtmlView / WebBrowser2 如何真正知道DocumentComplete

 CHtmlView / WebBrowser2 如何真正知道DocumentComplete  (下文针对CHtmlView,由于WebBrowser2与其类似不再累赘。)虽然CHtmlView提供了下面虚函数来得到文档解析完毕的事件。virtual void OnDocumentComplete(   LPCTSTR lpszURL );但这个事件在网页存在 frame 的时候不再

skyremember的专栏 3766

MFC集成WebBrowser控件实战:从基础创建到C++/JS双向通信

在Windows桌面开发中,将Web内容嵌入原生应用是常见的需求,这通常通过浏览器控件实现。其核心原理是利用操作系统提供的浏览器渲染引擎,在应用窗口中创建一个可交互的网页容器。这项技术的价值在于能够融合Web的动态内容、丰富交互与原生应用的系统级能力,实现混合应用开发。典型的应用场景包括内嵌报表展示、在线文档查看、地图集成以及需要Web界面但又要调用本地功能的客户端程序。本文聚焦于MFC框架,深入探讨了如何集成经典的WebBrowser控件,涵盖了CHtmlView与手动创建两种方案,详细解析了C++与J

weixin_33672400的博客 396

WebBrowser下载完成一个页触发两次onDocumentComplete事件

因为你浏览的页面可能有框架,每个单独的框架都可能会触发DocumentComplete事件。框架集页面会最后触发DocumentComplete事件。发送事件的对象可以通过DocumentComplete事件的第一个参数访问procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;const pDisp: IDispatch; v

1724

WebBrowser中如何准确判断整个页面完全加载完成

通常大家都是在OnDocumentComplete里面判断,认为这个事件触发了就是页面加载完成了,或者判断ReadyState和IsBusy属性,但是实际上,WebBrowser控件在加载多框架页面的时候会多次触发OnDocumentComplete事件,ReadyState和IsBusy属性也会不断发生变化,实在是头晕。。。不知道微软的这个WebBrowser控件当初是怎么设计的,简直是乱得可以

单眼皮的老虎的专栏 9994

webbrowser php,WebBrowser的用法

WebBrowser的用法2008-06-18 11:22WebBrowser是一个简单的浏览器,我们可以通过它完成很多关于网页的操作。在Delphi中,需要引用ShDocVw和MsHtml,下面会逐渐介绍一些使用办法创建WebBrowserWebBrowser := TWebBrowser.Create(nil);WebBrowser.ParentWindow := Self.Handle;We...

weixin_39611275的博客 215

Delphi中判断WebBrowser的页面是否加载完成

方法一:    WebBrowserOnDocumentComplete事件

小宇飞刀的BLOG 2434

html link 追加事件,MFC中针对WebBrowser控件增加link链接点击事件监控

本文参考互联网资源:http://www.scottdstrader.com/blog/ether_archives/000040.htmlhttp://download.csdn.net/download/xiemg/3640190前言:本文是基于MFC对话框工程加入WebBrowser控件的实现,不是DHTMLView等的实现。目标是监控当前打开页面中的link超链接点击监控,拦截事件做自定...

weixin_42220853的博客 442

Delphi中判断WebBrowser的页面是否加载完成 《转》

方法一: 在WebBrowserOnDocumentComplete事件书写代码。 方法二: WebBrowser1.Navigate(Url); while WebBrowser1.Busy or (WebBrowser1.ReadyState<>READYSTATE_COMPLETE) do Application.ProcessMessage...

395

如何对webbrowser和IE编程(九)

接收事件的途径依靠开发工具你创建客户应用程序,你可以接收事件通过不同的途径. 显然, 在Vb中接收事件同在VC中接收事件相比是如此不同和容易.在 C++ 应用中,你可以用不同的技术,通过使用 ATL, MFC, 或者标准C++.Visual Basic 中接收事件 Visual Basic是创建大多数类型应用的最轻松的工具, 所以我告诉你VB是处理事件最溶的工具时也不要惊奇. ATL 和 Visu

shanhe的专栏 1万+

delphi 动态建立WebBrower

//Delphi动态建立WebBrowerunit Main;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;...

weixin_30376453的博客 286

Delphi中WebBrowser判断页面及JS ajax是否加载完成-转

在一个程序中需要判断WebBrowser打开的页面是否加载完成,通常的做完是使用Busy属性,代码如下: while WebBrowser1.Busy do Application.ProcessMessages; 对于多框架: procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject; co...

漫漫程序人生路 1182
上一篇: [delphi]动态创建MEMO历遍目录TXT文件到listbox中,並將內容加載到memo中.
下一篇: 判斷撥號網絡狀態精簡代碼.delphi 7 + XP 通過測試.
devhp
博客等级 码龄19年 14粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值