首页  编辑  

WebBrowser直接LoadFromStream

Tags: /超级猛料/OS.操作系统/IE.扩展/TWebBrowser/页面内容/   Date Created:

WebBrowser直接从流读取

function TForm1.LoadFromStream(const AStream: TStream): HRESULT;

begin

 AStream.seek(0, 0);

 Result := (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(AStream));

end;

---------------------------------------

如何不用Navigate调入文件,直接往TWebBrowse中写Html语句呢……

我发现好象必须用webbrowser的ipersiststreaminit来save过的stream才能正确的被

load,用ie保存的就不行。我没太多时间,你再研究研究

下面的例子可以正确载入

begin

 filestream:=TMemoryStream.Create;

 browser1.Navigate('www.chinaren.com');

 browser1.SaveTostream(filestream);

 filestream.Position:=0;

 browser2.LoadFromStream(filestream);

 filestream.Free;

end;

function SaveToStream(AStream: TStream): HRESULT;

var

 IpStream: IPersistStreamInit;

begin

 with browser1 do

 begin

 while ReadyState <> READYSTATE_COMPLETE do

   Forms.Application.ProcessMessages;

 if Assigned(Document) then

 begin

   IpStream := Document as IPersistStreamInit;

   Result := IpStream.save(TStreamAdapter.Create(AStream), TRUE);

 end else Result := S_FALSE;

 end;

end;

function Loadfromstream(AStream:TStream):hresult;

begin

 with browser1 do

 begin

 if not Assigned(Document) then

 begin

   navigate2('about:blank',0,0,0,0);

   while readystate <> READYSTATE_COMPLETE do Forms.Application.ProcessMessages;

 end;

 AStream.seek(0, 0);

 Result := (Document as IPersistStreamInit).Load(TStreamadapter.Create(AStream));

 end;

end;