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运行之后就是下面结果了.如图:

转载于:https://www.cnblogs.com/delphisky/p/5367299.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值