T
tomyang
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TThreadNavigate.DoNavigate();
var
Doc:ihtmldocument2;
ScrCol:IHTMLElementCollection;
Scr:IHTMLScriptElement;
vFlag:OleVariant;
begin
WebB:=TWebBrowser.create(Tcomponent(Application));
vFlag := navNoReadFromCache;
WebB.Navigate(DLLURL + sUrl,vFlag);
while WebB.Busy do
Application.ProcessMessages ;
Doc:=webb.document as ihtmldocument2;
ScrCol:=Doc.get_scripts;
Scr:=ScrCol.item(0,0) as ihtmlscriptelement;
sBody:=Scr.get_text;
webb.Destroy ;
end;
procedure TThreadNavigate.Execute();
begin
synchronize(DoNavigate);
end;
上面的源码中,为什么在TThreadNavigate有两个instance的时候一个出错,一个正常?
两个instance Navigate的url完全一致。调试发现出错的一个web.busy为false 但是
获得的doc却是nil。
另外 WebB:=TWebBrowser.create(Tcomponent(Application));是否一定要用synchronize
执行,不用可以骂?TWebBrowser.create()的参数除了Tcomponent(Application)还可以用
什么?
var
Doc:ihtmldocument2;
ScrCol:IHTMLElementCollection;
Scr:IHTMLScriptElement;
vFlag:OleVariant;
begin
WebB:=TWebBrowser.create(Tcomponent(Application));
vFlag := navNoReadFromCache;
WebB.Navigate(DLLURL + sUrl,vFlag);
while WebB.Busy do
Application.ProcessMessages ;
Doc:=webb.document as ihtmldocument2;
ScrCol:=Doc.get_scripts;
Scr:=ScrCol.item(0,0) as ihtmlscriptelement;
sBody:=Scr.get_text;
webb.Destroy ;
end;
procedure TThreadNavigate.Execute();
begin
synchronize(DoNavigate);
end;
上面的源码中,为什么在TThreadNavigate有两个instance的时候一个出错,一个正常?
两个instance Navigate的url完全一致。调试发现出错的一个web.busy为false 但是
获得的doc却是nil。
另外 WebB:=TWebBrowser.create(Tcomponent(Application));是否一定要用synchronize
执行,不用可以骂?TWebBrowser.create()的参数除了Tcomponent(Application)还可以用
什么?