几个WebBrowser相关的函数


贴几个 TWebBrowser 编程相关的函数。
{ 去掉 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;

        
        



        







        
          
            
            评论这张
          
        


          
            
               几个WebBrowser相关的函数 - yyimen - yyimen的博客
            
            转发至微博
          
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值