Html代碼轉換成網頁WebBrowser讀取打開


WebBrowser讀某網站的Html代碼到是簡單,但是用Html代碼轉換成網頁就困難多了.找了很多辦法都不好用.最后還是自己動手編寫了一個.

 

[添加組件]

1.添加 Standard->Memo //存放Html代碼

2.添加 Internet->WebBrowser //顯示網頁

3.添加 Standard->Button //按鈕

4.添加 Additional->ApplicationEvents //消息管理

 

[添加Html代碼]

Memo1.Lines->TString添加代碼

由於沒有什么好例子,我就直接用的博客園的關於網頁的Html源碼.

源碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>代碼改變世界 Coding Changes the World - 關於博客園 About CNBlogs</title>
 5     <meta charset="utf-8"/>
 6     <meta name="keywords" content="博客園簡介,開發者,程序員,代碼改變世界,開發者社區,coding"/>
 7     <link href="http://common.cnblogs.com/css/reset.css" rel="Stylesheet" type="text/css" />
 8     <link href="http://www.cnblogs.com/css/about.css" rel="Stylesheet" type="text/css" />
 9     <script src="http://common.cnblogs.com/script/jquery.js"></script>
10     <script src="http://www.cnblogos/script/about.js"></script>
11 </head>
12 <body>
13 <div id="top_nav"><div id="top_nav_left">«<a href="http://www.cnblogs.com" title="返回網站首頁">首頁</a><a href="http://q.cnblogs.com">博問</a><a href="http://news.cnblogs.com">新聞</a><a href="http://home.cnblogs.com/ing/">閃存</a><a href="http://kb.cnblogs.com/">知識庫</a></div><div id="top_nav_right"></div></div>
14 <div>
15 <div id="main">
16     <div id="logo">
17         <a href="http://www.cnblogs.com/"><img src="/images/logo.gif" alt="博客園 logo" style="border:0px"/></a>
18     </div>
19     <div id="aboutus">
20         <img src="/images/about/about_cnbogs.gif" alt="關於博客園"/>
21     </div>
22     <div id="side_left">
23     <ul id="nav_block">
24     <li><a href="/about/intro.aspx" class="current">網站簡介</a></li>
25     <li><a href="/about/contactus.aspx">聯系方式</a></li>
26     <li><a href="/about/ad.aspx">廣告服務</a></li>
27     <li><a href="/about/job.aspx">人才服務</a></li>
28     </ul>
29     </div>
30     <div id="side_right">
31     
32 <h1>博客園簡介 - 代碼改變世界 Coding Changes the World</h1>
33 <div id="content">
34     <p>
35     博客園創立於2004年1月,是一個面向開發者的知識分享社區。自創建以來,博客園一直致力並專注於為開發者打造一個純凈的技術交流社區,推動並幫助開發者通過互聯網分享知識,從而讓更多開發者從中受益。博客園的使命是幫助開發者用代碼改變世界。
36     </p>                
37     <p>
38     Cnblogs.com was founded in 2004. It is a knowledge-sharing community for developers. Our mission is to help developers change the world by coding.
39     </p>
40 </div>
41 
42     </div>
43     <div class="clear"></div>
44 </div>
45 <div id="footer">
46     <a href="http://www.cnblogs.com/AboutUS.aspx">關於博客園</a><a href="http://www.cnblogs.com/ContactUs.aspx">聯系我們</a><a href="/ad.aspx">廣告服務</a><a href="/about/job.aspx">人才服務</a>&copy; 2004-2016<a href="http://www.cnblogs.com">博客園</a>
47 </div>
48 </div>
49 </body>
50 </html>

但由於WebBrowser默認不支持u-tf8的代碼格式,所以必須改為gb2312才能正常讀取.

1 <meta charset="utf-8"/>

修改為:

<meta charset="gb2312"/>

 

[添加Uses]

在最后面添加 ActiveX

 

[編寫代碼]

 1 unit Unit1;
 2 
 3 interface
 4 
 5 uses
 6   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 7   Dialogs, AppEvnts, StdCtrls, OleCtrls, SHDocVw, ActiveX;
 8 
 9 type
10   TForm1 = class(TForm)
11     Memo1: TMemo;
12     WebBrowser1: TWebBrowser;
13     Button1: TButton;
14     ApplicationEvents1: TApplicationEvents;
15     procedure Button1Click(Sender: TObject);
16   private
17     { Private declarations }
18   public
19     { Public declarations }
20   end;
21 
22 var
23   Form1: TForm1;
24 
25 implementation
26 
27 {$R *.dfm}
28 
29 procedure LoadStream(WebBrowser:TWebBrowser; Stream:TStream);
30 var
31     PersistStreamInit: IPersistStreamInit;
32     StreamAdapter: IStream;
33     MemoryStream: TMemoryStream;
34 begin
35     WebBrowser.Navigate('about:blank');
36     repeat
37     Application.ProcessMessages;
38     Sleep(100);
39     until
40     WebBrowser.ReadyState=READYSTATE_COMPLETE;
41     if WebBrowser.Document.QueryInterface(IPersistStreamInit,PersistStreamInit)=S_OK then
42         begin
43             if PersistStreamInit.InitNew=S_OK then
44               begin
45                 MemoryStream:=TMemoryStream.Create;
46                 try
47                 MemoryStream.CopyFrom(Stream,0);
48                 MemoryStream.Position:=0;
49                 except
50                 MemoryStream.Free;
51                 raise;
52               end;
53              StreamAdapter:=TStreamAdapter.Create(MemoryStream,soOwned);
54              PersistStreamInit.Load(StreamAdapter);
55              end;
56         end;
57 end;
58 
59 procedure TForm1.Button1Click(Sender: TObject);
60 var
61     S: TStringStream;
62 begin
63     S:= TStringStream.Create(memo1.Text);
64     try
65       LoadStream(WebBrowser1,S);
66     finally
67     S.Free;
68     end;
69 end;
70 
71 end.

 

F9運行之后就是下面結果了.如圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM