几个WebBrowser相关的函数(转)

{  去掉 TWebBrowser 的边框  }
procedure  WB_Set3DBorderStyle(Sender: TWebBrowser; bValue: Boolean);

{  WebBrowser 从内存中读取 HTML 文件 }
procedure  WebBrowserLoadFromStream(WebBrowser: TWebBrowser; Stream: TStream);
procedure  NavigateLoadFromStream(WebBrowser: TWebBrowser;  Stream:  TStream);

{  WebBrowser 从字符中读取 HTML 文件 }
procedure  WebBrowserLoadFromText(WebBrowser: TWebBrowser; HtmlText: String);


{  WebBrowser 保存成 Html 文件  }
function  WebBrowserSaveHTMLCode(WebBrowser: TWebBrowser;  const  FileName: TFileName):  Boolean;

{  HTML 保存成流  }
procedure  SaveDocumentSourceToStream(Document: IDispatch; Stream: TStream);

uses  Axctrls, ActiveX, MSHTML, OleCtrls, SHDocVw

{  WB_Set3DBorderStyle  }

procedure  WB_Set3DBorderStyle(Sender: TWebBrowser; bValue: Boolean);
var
  Document: IHTMLDocument2;
  Element: IHTMLElement;
  StrBorderStyle: 
string ;
begin
  
// 去掉边框
  
try
    Document :
=  TWebBrowser(Sender).Document  as  IHTMLDocument2;
    
if  Assigned(Document)  then
    
begin
      Element :
=  Document.Body;
      
if  Element  <>   nil   then
      
begin
        
case  BValue  of
          False: StrBorderStyle :
=   ' none ' ;
          True: StrBorderStyle :
=   '' ;
        
end ;
        Element.Style.BorderStyle :
=  StrBorderStyle;
      
end ;
    
end ;
  
except
    
// ..
  
end ;
end ;


{  WebBrowserLoadFromText  }

procedure  WebBrowserLoadFromText(WebBrowser: TWebBrowser; HtmlText: String);
var
  v: Variant;
  IDoc: IHTMLDocument2;
begin
  WebBrowser.Navigate(
' about:blank ' );
  
repeat
    Application.ProcessMessages;
    Sleep(
0 );
  
until  WebBrowser.ReadyState  =  READYSTATE_COMPLETE;

  IDoc :
=  WebBrowser.Document  as  IHTMLDocument2;
  
try
    IDoc.designMode:
= ' on ' ;
    
while  IDoc.readyState <> ' complete '   do
      Application.ProcessMessages;
    v:
= VarArrayCreate([ 0 , 0 ],VarVariant);
    v[
0 ]: =  HtmlText;
    IDoc.
write (PSafeArray(System.TVarData(v).VArray));
    IDoc.designMode:
= ' off ' ;
    
while  IDoc.readyState <> ' complete '   do
      Application.ProcessMessages;
  
finally
    IDoc :
=   nil ;
  
end ;
end ;

{  NavigateLoadFromStream  }

procedure  NavigateLoadFromStream(WebBrowser: TWebBrowser;  Stream:  TStream);
begin
  Stream.Seek(
0 0 );
  
if  Assigned(WebBrowser.Document)  then
    (WebBrowser.Document 
as  IPersistStreamInit).Load(TStreamAdapter.Create(Stream));
end ;

{  WebBrowserLoadFromStream  }

procedure  WebBrowserLoadFromStream(WebBrowser: TWebBrowser;  Stream:  TStream);
begin
  WebBrowser.Navigate(
' about:blank ' );

  
repeat
    Application.ProcessMessages;
    Sleep(
0 );
  
until  WebBrowser.ReadyState  =  READYSTATE_COMPLETE;

  NavigateLoadFromStream(WebBrowser, Stream);
end ;

{  WebBrowserSaveHTMLCode  }

function  WebBrowserSaveHTMLCode(WebBrowser: TWebBrowser;  const  FileName: TFileName):  Boolean;
var
  ps: IPersistStreamInit;
  fs: TFileStream;
  sa: IStream;
begin
  ps :
=  WebBrowser.Document  as  IPersistStreamInit;
  fs :
=  TFileStream.Create(FileName, fmCreate);
  
try
    sa :
=  TStreamAdapter.Create(fs, soReference)  as  IStream;
    Result :
=  Succeeded(ps.Save(sa, True));
  
finally
    fs.Free;
  
end ;
end ;


{  SaveDocumentSourceToStream  }

procedure  SaveDocumentSourceToStream(Document: IDispatch; Stream: TStream);
var
  PersistStreamInit: IPersistStreamInit;
  StreamAdapter: IStream;
begin
  Stream.Size  :
=    0 ;
  Stream.Position  :
=    0 ;
  
if  Document.QueryInterface(IPersistStreamInit, PersistStreamInit)  =  S_OK  then
  
begin
    StreamAdapter :
=  TStreamAdapter.Create(Stream, soReference);
    PersistStreamInit.Save(StreamAdapter, False);
    StreamAdapter :
=   nil ;
  
end ;
end ;

转自: 陆鸟工作室(http://www.cnblogs.com/iinsnian/archive/2008/06/10/1216460.html)

转载于:https://www.cnblogs.com/Handll/archive/2010/01/15/1648795.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值