在网上找了些资料,都说很容易,只需执行下面的语句:
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中添加了网页的文字,此时再获取一次该网页,就不再报这个错误了。请高手执教为什么?如何解决?

解决方案 »

  1.   

    WebBrowser执行Navigate后就直接执行下一句代码了。
    我想你的代码大概是:WebBrowser.Navigate('……');
    Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterText);建议把Navigate和Memo1.LinesAdd分到两个按钮里试试
    先执行Navigate,等网页出来后再Memo1.Lines
      

  2.   

    if Assigned(WebBrowser1.Document) then //先做一个指针判断
      Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterText);
      

  3.   

    谢谢两位执教,我发现问题所在了,我原来是在WebBrowser1DownloadComplete添加代码,后来我改在WebBrowser1DocumentComplete添加代码,就没有报错了。