for i:=0 to ListView.items.count -1 do
begin
  webBrowser.Navigate(ListView.items[i].caption);
  //以下代码是用memo装载webbrowser输出的Text document  
  //直接执行会发生错误,因为Webbrowser装载ListView.item[i].caption要一段时间
  //有什么方法等webbrowser.OnDocumentComplete发生再执行以下代码?
  memo.lines.add(IHtmlDocument2(webBrowser.document).Body.outerText); 
  Memo.lines.SaveToFile('c:\'+IntToStr(i)+'.txt');
end;哪位大虾帮帮我吧。谢了。
分有点少实在是没分了。:)

解决方案 »

  1.   

    memo.lines.add(IHtmlDocument2(webBrowser.document).Body.outerText); 
      Memo.lines.SaveToFile('c:\'+IntToStr(i)+'.txt');把这两行代码加到WebBrowser的DocumentComplete事件里....
      

  2.   

    我知道,可是没法循环呀。items[0]的webbrowser的DocumentComplete还没有发生就到item[1]。如果不用循环你说的是很好解决的。什么方法等webbrowser.OnDocumentComplete发生再循环呢?
      

  3.   

    flag = true;
    for i:=0 to ListView.items.count -1 do
    begin
      webBrowser.Navigate(ListView.items[i].caption);
      //以下代码是用memo装载webbrowser输出的Text document  
      //直接执行会发生错误,因为Webbrowser装载ListView.item[i].caption要一段时间
      //有什么方法等webbrowser.OnDocumentComplete发生再执行以下代码?
     while(flag)
     begin
     Try
     flag = false;
     memo.lines.add(IHtmlDocument2webBrowser.document).Body.outerText); 
     Except
      flag = true;
     end;
     end; 
    Memo.lines.SaveToFile('c:\'+IntToStr(i)+'.txt');
    end;