webbrowser获取网页文字报错

delphi168 2006-06-21 05:28:12
在网上找了些资料,都说很容易,只需执行下面的语句:
Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterText);
但是我在winxp+delphi7下,在WebBrowser1DownloadComplete事件中添加代码,编译没有问题,但是运行的时候报错:
access violation at address 0047AF42 in module 'Project1.exe', Read of address 00000000.

报了错后,用鼠标按了delphi弹出异常对话框的确定,才能够看到memo1中添加了网页的文字,此时再获取一次该网页,就不再报这个错误了。

请高手执教为什么?如何解决?
...全文
286 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphi168 2006-06-22
  • 打赏
  • 举报
回复
谢谢两位执教,我发现问题所在了,我原来是在WebBrowser1DownloadComplete添加代码,后来我改在WebBrowser1DocumentComplete添加代码,就没有报错了。
王集鹄 2006-06-21
  • 打赏
  • 举报
回复
if Assigned(WebBrowser1.Document) then //先做一个指针判断
Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterText);
leizhen2004 2006-06-21
  • 打赏
  • 举报
回复
WebBrowser执行Navigate后就直接执行下一句代码了。
我想你的代码大概是:

WebBrowser.Navigate('……');
Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterText);

建议把Navigate和Memo1.LinesAdd分到两个按钮里试试
先执行Navigate,等网页出来后再Memo1.Lines

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧