﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-悄然无声的Blog</title><link>http://www.blogjava.net/myqiao/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 18:56:01 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 18:56:01 GMT</pubDate><ttl>60</ttl><item><title>用 PyMedia 解码并播放 mp3 文件</title><link>http://www.blogjava.net/myqiao/archive/2011/08/07/355929.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Sat, 06 Aug 2011 18:10:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2011/08/07/355929.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/355929.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2011/08/07/355929.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/355929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/355929.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Pymedia 是个 C/C++/Python 的多媒体模块，可以对包括 mp3/ogg/avi等多媒体格式文件进行编码解码和播放，基于 ffmpeg 提供了简单的 Python 接口&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2011/08/07/355929.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/355929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2011-08-07 02:10 <a href="http://www.blogjava.net/myqiao/archive/2011/08/07/355929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLite 入门教程（四）增删改查，有讲究</title><link>http://www.blogjava.net/myqiao/archive/2011/07/13/354298.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Wed, 13 Jul 2011 15:41:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2011/07/13/354298.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/354298.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2011/07/13/354298.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/354298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/354298.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 增删改查操作，其中增删改操作被称为数据操作语言 DML，相对来说简单一点。 查操作相对来说复杂一点，因为涉及到很多子句...&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2011/07/13/354298.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/354298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2011-07-13 23:41 <a href="http://www.blogjava.net/myqiao/archive/2011/07/13/354298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLite 入门教程（三）好多约束 Constraints</title><link>http://www.blogjava.net/myqiao/archive/2011/07/13/354288.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Wed, 13 Jul 2011 10:02:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2011/07/13/354288.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/354288.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2011/07/13/354288.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/354288.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/354288.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 我们在数据库中存储数据的时候，有一些数据有明显的约束条件，如：大于、默认、不能为空、唯一等等。 我们在用 CREATE TABLE 创建表的时候，应该将每个字段列的约束条件事先说明， 以后再往表里输入数据的时候，系统会自动为我们检查是否满足约束条件，如果不满足系统会报错。&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2011/07/13/354288.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/354288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2011-07-13 18:02 <a href="http://www.blogjava.net/myqiao/archive/2011/07/13/354288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLite 入门教程（二）创建、修改、删除表</title><link>http://www.blogjava.net/myqiao/archive/2011/07/12/354133.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Mon, 11 Jul 2011 16:33:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2011/07/12/354133.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/354133.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2011/07/12/354133.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/354133.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/354133.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在关系型数据库中，数据库中的表 Table、视图 View、索引 Index、关系 Relationship 和触发器 Trigger 等等，构成了数据库的架构 Schema。 在 SQL 语句中，专门有一些语句用来定义数据库架构，这些语句被称为“数据库定义语言”，即 DDL。&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2011/07/12/354133.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/354133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2011-07-12 00:33 <a href="http://www.blogjava.net/myqiao/archive/2011/07/12/354133.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLite 入门教程（一）基本控制台（终端）命令</title><link>http://www.blogjava.net/myqiao/archive/2011/07/10/354049.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Sun, 10 Jul 2011 11:32:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2011/07/10/354049.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/354049.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2011/07/10/354049.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/354049.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/354049.html</trackback:ping><description><![CDATA[<table width="750" height="280">
     <tbody>
         <tr>
             <td valign="bottom"><span style="font-size: 14pt; "><strong>一、基本简介</strong></span>
             <div>
             <div>&nbsp;</div>
             <div>SQLite 是一个自持的（self-contained）、无服务器的、零配置的、事务型的关系型数据库引擎。因为他很小，所以也可以作为嵌入式数据库内建在你的应用程序中。SQLite 被应用在 Solaris 10操作系统、Mac OS 操作系统、iPhone 和 Skype 中。QT4 、Python 、 PHP 都默认支持 SQLite ，Firefox Amarok 等流行的应用程序在内部也使用了 SQLite.</div>
             <div>&nbsp;</div>
             </div>
             <p>SQLite &nbsp; 数据库引擎实现了主要的 SQL-92 标准，引擎本身只有一个文件，大小不到 300k ，但是并不作为一个独立的进程运行，而是动态或者静态的链接到其他应用程序中。它生成的数据库文件是一个普通的磁盘文件，可以放置在任何目录下。SQLite 本身是 C 语言开发的，开源也跨平台，并且被所有的主流编程语言支持。</p>
             <p>&nbsp;</p>
             <div>
             <div>相关资源</div>
             <div><a href="http://www.sqlite.org/index.html" target="_blank">sqlite.org</a></div>
             </div>
             <p><a href="http://zh.wikipedia.org/wiki/SQLite" target="_blank">wikipedia.org</a></p>
             </td>
             <td width="30"></td>
             <td width="340">
<script type="text/javascript"><!--
google_ad_client = "pub-1798174031137512";
/* 336x280 图文 */
google_ad_slot = "0230816054";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script><script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div>
<p><strong style="font-size: 14pt; ">二、下载安装</strong></p>
<p>&nbsp;</p>
<div></div>
<div>Windows 版的下载地址为：<a href="http://www.sqlite.org/sqlite-shell-win32-x86-3070701.zip">sqlite-shell-win32-x86-3070701.zip</a></div>
<div>我们这里下载的是命令行版本，所以是一个可执行文件，还有一个动态链接库版本，如果你的应用程序需要嵌入式数据库，可以下载这个版本。当然，如果你愿意折腾，下载源代码自己编译也是可以的。下载完成，解压出来就一个文件： sqlite3.exe ，可以放置到任意一个路径下，然后把这个路径加入到 PATH 环境变量中，这样我们就可以随时在控制台中运行 SQLite 命令行工具了。</div>
</div>
<p>&nbsp;</p>
<p><br />
</p>
<div>
<p><strong style="font-size: 14pt; ">三、基本命令</strong></p>
<p>&nbsp;</p>
<div></div>
<div>1、进入命令行环境：<span style="color: #0000ff; "><strong>sqlite3</strong></span></div>
<div>打开一个控制台窗口，输入 sqlite3 回车，这时你就进入了 SQLite 命令行环境，如图</div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_1.JPG" width="354" height="87" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " /></span></div>
<div>它显示了版本号，并告诉你每一条 SQL 语句必须用分号 ； 结尾&nbsp;</div>
<div></div>
<div>&nbsp;</div>
<p>2、命令行帮助：<span style="color: #0000ff; "><strong>.help</strong></span></p>
<div>在命令行环境下输入 .help 回车，显示所有可使用的命令以及这些命令的帮助。注意：所有的命令开头都是一个点</div>
<div>&nbsp;</div>
<div>3、退出命令行环境</div>
<div><strong style="color: #0000ff; ">.quit</strong> 或者 <span style="color: #0000ff; "><strong>.exit</strong></span> &nbsp;都可以退出</div>
</div>
<p>&nbsp;</p>
<div>
<div>&nbsp;</div>
<p><strong style="font-size: 14pt; ">四、数据库和表的相关命令</strong></p>
<div>&nbsp;</div>
<div>1、创建一个新的数据库：<span style="color: #0000ff; "><strong>sqlite3</strong></span>&nbsp; &nbsp; &nbsp;<u>文件名</u></div>
<div>先建立一个 Db 目录，并在 Db 目录中创建一个 test.db 数据库文件，打开控制台窗口，命令如下：</div>
<div>mkdir Db</div>
<div>cd Db</div>
<div>sqlite3 test.db</div>
<div>&nbsp;</div>
<div>2、打开一个已经存在的数据库：sqlite3 已经存在的文件名</div>
<div>创建一个新数据库和打开一个已经存在的数据库命令是一模一样的，如果文件在当前目录下不存在，则新建；如果存在，则打开。</div>
<div>&nbsp;</div>
<div>3、导入数据：<span style="color: #0000ff; "><strong>.read</strong></span>&nbsp; &nbsp; &nbsp;<u>数据文件</u></div>
<div>打开记事本，并将下列 SQL 语句复制到记事本中，保存为 test.sql 到上面说到的 Db 目录下，在命令行环境中输入</div>
<div>.read &nbsp; test.sql</div>
<div>即将所有的数据导入到 test.db 数据库中。</div>
<div class="cnblogs_code" onclick="cnblogs_code_show('29418228-f394-43cd-82ec-1cdaff92641a')"><img src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" class="code_img_closed" id="code_img_closed_29418228-f394-43cd-82ec-1cdaff92641a" alt="" /><img src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" class="code_img_opened" id="code_img_opened_29418228-f394-43cd-82ec-1cdaff92641a" onclick="cnblogs_code_hide('29418228-f394-43cd-82ec-1cdaff92641a',event)" style="display:none"><span class="cnblogs_code_collapse">test.db 导入数据</span>
<div id="cnblogs_code_open_29418228-f394-43cd-82ec-1cdaff92641a" class="cnblogs_code_hide">
<div><span style="color: #0000FF;">BEGIN</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TRANSACTION</span><span style="color: #000000;">;<br />
</span><span style="color: #0000FF;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TABLE</span><span style="color: #000000;">&nbsp;Cars(Id&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">KEY</span><span style="color: #000000;">,&nbsp;Name&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">,&nbsp;Cost&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Cars&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Audi</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #800000; font-weight: bold;">52642</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Cars&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Mercedes</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #800000; font-weight: bold;">57127</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Cars&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Skoda</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #800000; font-weight: bold;">9000</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Cars&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">4</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Volvo</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #800000; font-weight: bold;">29000</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Cars&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">5</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Bentley</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #800000; font-weight: bold;">350000</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Cars&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">6</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Citroen</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #800000; font-weight: bold;">21000</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Cars&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">7</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Hummer</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #800000; font-weight: bold;">41400</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Cars&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">8</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Volkswagen</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #800000; font-weight: bold;">21600</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">COMMIT</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #0000FF;">BEGIN</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TRANSACTION</span><span style="color: #000000;">;<br />
</span><span style="color: #0000FF;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TABLE</span><span style="color: #000000;">&nbsp;Orders(Id&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">KEY</span><span style="color: #000000;">,&nbsp;OrderPrice&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">CHECK</span><span style="color: #000000;">(OrderPrice</span><span style="color: #808080;">&gt;</span><span style="color: #800000; font-weight: bold;">0</span><span style="color: #000000;">),&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Customer&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">1200</span><span style="color: #000000;">,&nbsp;"Williamson");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">200</span><span style="color: #000000;">,&nbsp;"Robertson");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">40</span><span style="color: #000000;">,&nbsp;"Robertson");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">1640</span><span style="color: #000000;">,&nbsp;"Smith");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">100</span><span style="color: #000000;">,&nbsp;"Robertson");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">50</span><span style="color: #000000;">,&nbsp;"Williamson");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">150</span><span style="color: #000000;">,&nbsp;"Smith");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">250</span><span style="color: #000000;">,&nbsp;"Smith");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">840</span><span style="color: #000000;">,&nbsp;"Brown");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">440</span><span style="color: #000000;">,&nbsp;"Black");<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Orders(OrderPrice,&nbsp;Customer)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">20</span><span style="color: #000000;">,&nbsp;"Brown");<br />
</span><span style="color: #0000FF;">COMMIT</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #0000FF;">BEGIN</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TRANSACTION</span><span style="color: #000000;">;<br />
</span><span style="color: #0000FF;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TABLE</span><span style="color: #000000;">&nbsp;Friends(Id&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">KEY</span><span style="color: #000000;">,&nbsp;Name&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">UNIQUE</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">NOT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">NULL</span><span style="color: #000000;">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sex&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">CHECK</span><span style="color: #000000;">(Sex&nbsp;</span><span style="color: #808080;">IN</span><span style="color: #000000;">&nbsp;(</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">M</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">F</span><span style="color: #FF0000;">'</span><span style="color: #000000;">)));<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Friends&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Jane</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">F</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Friends&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Thomas</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">M</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Friends&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Franklin</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">M</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Friends&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">4</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Elisabeth</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">F</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Friends&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">5</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Mary</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">F</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Friends&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">6</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Lucy</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">F</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Friends&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">7</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Jack</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">M</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">COMMIT</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #0000FF;">BEGIN</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TRANSACTION</span><span style="color: #000000;">;<br />
</span><span style="color: #0000FF;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TABLE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">IF</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">NOT</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">EXISTS</span><span style="color: #000000;">&nbsp;Customers(CustomerId&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">KEY</span><span style="color: #000000;">,&nbsp;Name&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Customers(Name)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Paul&nbsp;Novak</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Customers(Name)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Terry&nbsp;Neils</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Customers(Name)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Jack&nbsp;Fonda</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Customers(Name)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Tom&nbsp;Willis</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
<br />
</span><span style="color: #0000FF;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TABLE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">IF</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">NOT</span><span style="color: #000000;">&nbsp;</span><span style="color: #808080;">EXISTS</span><span style="color: #000000;">&nbsp;Reservations(Id&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">KEY</span><span style="color: #000000;">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CustomerId&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF00FF;">Day</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Reservations(CustomerId,&nbsp;</span><span style="color: #FF00FF;">Day</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">2009-22-11</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Reservations(CustomerId,&nbsp;</span><span style="color: #FF00FF;">Day</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">2009-28-11</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Reservations(CustomerId,&nbsp;</span><span style="color: #FF00FF;">Day</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">2009-29-11</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Reservations(CustomerId,&nbsp;</span><span style="color: #FF00FF;">Day</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">2009-29-11</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Reservations(CustomerId,&nbsp;</span><span style="color: #FF00FF;">Day</span><span style="color: #000000;">)&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">,&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">2009-02-12</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">COMMIT</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #0000FF;">BEGIN</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TRANSACTION</span><span style="color: #000000;">;<br />
</span><span style="color: #0000FF;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TABLE</span><span style="color: #000000;">&nbsp;Names(Id&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">,&nbsp;Name&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Names&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Tom</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Names&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Lucy</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Names&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Frank</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Names&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">4</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Jane</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Names&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">5</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Robert</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">COMMIT</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #0000FF;">BEGIN</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TRANSACTION</span><span style="color: #000000;">;<br />
</span><span style="color: #0000FF;">CREATE</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">TABLE</span><span style="color: #000000;">&nbsp;Books(Id&nbsp;</span><span style="color: #0000FF;">integer</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">KEY</span><span style="color: #000000;">,&nbsp;Title&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">,&nbsp;Author&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Isbn&nbsp;</span><span style="color: #0000FF;">text</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">default</span><span style="color: #000000;">&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">not&nbsp;available</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Books&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">1</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">War&nbsp;and&nbsp;Peace</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Leo&nbsp;Tolstoy</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">978-0345472403</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Books&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">2</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">The&nbsp;Brothers&nbsp;Karamazov</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Fyodor&nbsp;Dostoyevsky</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">978-0486437910</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">INSERT</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000FF;">INTO</span><span style="color: #000000;">&nbsp;Books&nbsp;</span><span style="color: #0000FF;">VALUES</span><span style="color: #000000;">(</span><span style="color: #800000; font-weight: bold;">3</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Crime&nbsp;and&nbsp;Punishment</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">Fyodor&nbsp;Dostoyevsky</span><span style="color: #FF0000;">'</span><span style="color: #000000;">,</span><span style="color: #FF0000;">'</span><span style="color: #FF0000;">978-1840224306</span><span style="color: #FF0000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000FF;">COMMIT</span><span style="color: #000000;"></span></div>
</div>
</div>
<p>&nbsp;</p>
<div>&nbsp;4、列出所有的数据表： <strong style="color: #0000ff; ">.tables</strong></div>
<div>完成上面所有的工作以后，我们就可以列出所有的数据表了</div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_2.JPG" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " /></span></div>
<div>&nbsp;</div>
<div>5、显示数据库结构：<span style="color: #0000ff; "><strong>.schema</strong></span></div>
<div>其实就是一些 SQL 语句，他们描述了数据库的结构，如图</div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_3.JPG" width="672" height="226" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " />&nbsp;</span>&nbsp;</div>
<div>&nbsp;</div>
<div>6、显示表的结构：<span style="color: #0000ff; "><strong>.schema &nbsp; &nbsp;</strong></span><span><u>表名</u></span></div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_4.JPG" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " /></span></div>
<div></div>
<div> &nbsp; </div>
<p>7、导出某个表的数据：<span style="color: #0000ff; "><strong> .dump &nbsp; &nbsp;</strong></span><u>表名</u></p>
<div>这时我们可以看到，整个表以 SQL 语句的形式为导出来了，但是只是显示在终端上，如何把它导出到文件中呢？</div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_5.JPG" width="555" height="233" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " /></span></div>
<div>&nbsp;</div>
<div>8、设置导出目标：&nbsp;</div>
<div><span style="color: #0000ff; "><strong>.output</strong></span>&nbsp; &nbsp; &nbsp;<u>文件名</u> &nbsp;</div>
<div>或者</div>
<div><strong style="color: #0000ff; ">.output &nbsp; stdout</strong></div>
<div>先运行 .output cars.sql ，然后再运行 .dump 命令试试看？如果要回复成导出到终端（标准输出），则运行 .output stdout</div>
<div>&nbsp;</div>
</div>
<p><br />
</p>
<div>
<div><span style="font-size: 14pt; "><strong>五、数据显示相关命令</strong></span></div>
<div>&nbsp;</div>
<div>1、设置分隔符：<span style="color: #0000ff; "><strong>.separator</strong></span>&nbsp; &nbsp;&nbsp;<u>分隔符</u></div>
<div>我们可以首先运行 SELECT * FROM Names； ，可以看到默认的分隔符是 |&nbsp;</div>
<div>运行.separator : 以后，再 SELECT * FROM Names；，可以看到分隔符已经变成 : 了</div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_6.JPG" width="236" height="350" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " /></span></div>
<div>&nbsp;</div>
<div>2、设置显示模式：<span style="color: #0000ff; "><strong>.mode</strong></span>&nbsp; &nbsp;&nbsp;<u>模式</u></div>
<div>有好几种显示模式，默认的是 list 显示模式，一般我们使用 column 显示模式，还有其他几种显示模式可以 .help 看 mode 相关内容。看看下面的图，和上面是不是显示的不一样了？</div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_7.JPG" width="232" height="126" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " /></span></div>
<div>&nbsp;</div>
<div>3、显示标题栏：<span style="color: #0000ff; "><strong>.headers</strong></span>&nbsp; &nbsp;<u>on</u></div>
<div>看看，是不是又不太一样了？</div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_8.JPG" width="225" height="169" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " /></span></div>
<div>&nbsp;</div>
<div>4、设置每一列的显示宽度：<span style="color: #0000ff; "><strong>.width</strong></span>&nbsp; &nbsp; &nbsp;<u>w1,w2,w3.........</u></div>
<div>一些内容，默认的宽度显示不下，这个命令就有用了</div>
<div>&nbsp;</div>
<div>5、设置 NULL 值显示成什么样子： <strong style="color: #0000ff; ">.nullvalue</strong>&nbsp; &nbsp; &nbsp;<u>你想要的NULL值格式</u></div>
<div>默认情况下NULL值什么也不显示，你可以设置成你自己想要的样子</div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_9.JPG" width="263" height="191" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " /></span></div>
<div>&nbsp;</div>
<div>6、列出当前显示格式设置情况：<span style="color: #0000ff; "><strong>.show</strong></span></div>
<div><span class="Apple-style-span" style="color: #4b4b4b; font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 16px; line-height: 20px; "><img src="http://images.cnblogs.com/cnblogs_com/myqiao/SQLite%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/sqlite_110710_10.JPG" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; border-style: initial; border-color: initial; " /></span></div>
<div>&nbsp;</div>
<div>7、配置文件 <strong style="color: #0000ff; ">.sqliterc</strong></div>
</div>
<p>如果我们每次进入命令行都要重新设置显示格式，很麻烦，其实 .show 命令列出的所有设置项都可以保存到一个 .sqliterc 文件中，这样每次进入命令行就自动设置好了。.sqlterc 文件在 Linux 下保存在用户的 Home 目录下，在 Windows 下可以保存到任何目录下，但是需要设置环境变量让数据库引擎能找到它，感兴趣的可以看看帮助。&nbsp;</p>
<p><br />
</p>
//==========================================
<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1798174031137512";
/* 728x90 图文 */
google_ad_slot = "5397571580";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><img src ="http://www.blogjava.net/myqiao/aggbug/354049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2011-07-10 19:32 <a href="http://www.blogjava.net/myqiao/archive/2011/07/10/354049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学（10）：俄罗斯方块就是这么简单 之 控制界面篇（源码）</title><link>http://www.blogjava.net/myqiao/archive/2010/10/18/335477.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Mon, 18 Oct 2010 10:31:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2010/10/18/335477.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/335477.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2010/10/18/335477.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/335477.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/335477.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这一次在上一篇程序的基础上增加了以下交互控制功能：1、键盘控制；2、开始、暂停；3、消除时候空行的停顿效果；4、随着消除行数的增多，速度加快；5、音效等等。可以看出，在数据模型抽象好的基础上，完成控制和图形接口是非常方便的。&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2010/10/18/335477.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/335477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2010-10-18 18:31 <a href="http://www.blogjava.net/myqiao/archive/2010/10/18/335477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学（9）：俄罗斯方块就是这么简单 之 数据模型篇</title><link>http://www.blogjava.net/myqiao/archive/2010/10/17/335390.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Sun, 17 Oct 2010 15:21:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2010/10/17/335390.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/335390.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2010/10/17/335390.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/335390.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/335390.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 要写一个俄罗斯方块小游戏，我们先来一块考虑一下下面几个问题：.......  如果你对上面几个问题思考，每一个答案都和界面、控件、平台有关的话，就是说假如你是用 .Net 的，你的每一个答案都是围绕着如何利用控件、如何使用窗体、在控件的哪个事件里面改变哪个属性等等，那么说明你被微软的 RAD 开发环境毒害的不浅，我建议你立刻扔掉 Visual Studio，改用其他轻量级的编程语言和开发平台，这样你可以更多的关注问题的本身，而不是控件。&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2010/10/17/335390.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/335390.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2010-10-17 23:21 <a href="http://www.blogjava.net/myqiao/archive/2010/10/17/335390.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学（7）：动画初步 之 飞舞的精灵</title><link>http://www.blogjava.net/myqiao/archive/2010/10/08/333934.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Thu, 07 Oct 2010 16:14:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2010/10/08/333934.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/333934.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2010/10/08/333934.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/333934.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/333934.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、为什么选择 HTML5 HTML5 边玩边学算上这篇已经是第七篇了，在这篇开始之前，我想先说明一下为什么叫“HTML5” 边玩边学，因为有人对 HTML5 提出质疑，毕竟他是一个新生事物。我承认我用 HTML5 来吸引眼球了，如果看过边玩边学系列的每一篇，你会发现前六篇文&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2010/10/08/333934.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/333934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2010-10-08 00:14 <a href="http://www.blogjava.net/myqiao/archive/2010/10/08/333934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学（6）：汽车人，变形......</title><link>http://www.blogjava.net/myqiao/archive/2010/10/05/333762.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Tue, 05 Oct 2010 04:34:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2010/10/05/333762.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/333762.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2010/10/05/333762.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/333762.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/333762.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这一篇主要学习 HTML5 图像的变形操作以及变形相关的图形学基本概念，并给出了一个可以对美女图像进行基准点移动、基准点缩放和基准点旋转的小例子。后面学习了图像的组合和裁剪，也给出了一个小例子。&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2010/10/05/333762.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/333762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2010-10-05 12:34 <a href="http://www.blogjava.net/myqiao/archive/2010/10/05/333762.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学（5）：图像、图案和字体 </title><link>http://www.blogjava.net/myqiao/archive/2010/10/04/333734.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Mon, 04 Oct 2010 08:45:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2010/10/04/333734.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/333734.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2010/10/04/333734.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/333734.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/333734.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 通过对一幅美女图片的处理，向您展示 HTML5 的强大图像处理功能...&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2010/10/04/333734.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/333734.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2010-10-04 16:45 <a href="http://www.blogjava.net/myqiao/archive/2010/10/04/333734.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学（4）：变幻的色彩</title><link>http://www.blogjava.net/myqiao/archive/2010/10/03/333700.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Sun, 03 Oct 2010 12:11:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2010/10/03/333700.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/333700.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2010/10/03/333700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/333700.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/333700.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 渐变色 Gradients：上下文对象有两个方法可以创建一个叫做 canvasGradient 的对象，并用它设置 fillStyle 或 strokeStyle 属性，绘制出来的图形就有渐变效果了&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2010/10/03/333700.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/333700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2010-10-03 20:11 <a href="http://www.blogjava.net/myqiao/archive/2010/10/03/333700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学（3）：像素和颜色</title><link>http://www.blogjava.net/myqiao/archive/2010/09/18/332404.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Sat, 18 Sep 2010 15:00:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2010/09/18/332404.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/332404.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2010/09/18/332404.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/332404.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/332404.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 我们在电脑屏幕上可以看到色彩斑斓的图像，其实这些图像都是由一个个像素点组成的。那么像素是什么？颜色又是什么呢？（如果您提出这两个问题，您一定是个热爱思考的人）一个像素其实对应着内存中的一组连续的二进制位&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2010/09/18/332404.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/332404.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2010-09-18 23:00 <a href="http://www.blogjava.net/myqiao/archive/2010/09/18/332404.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学（2）：基础绘图</title><link>http://www.blogjava.net/myqiao/archive/2010/09/18/332371.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Sat, 18 Sep 2010 03:32:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2010/09/18/332371.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/332371.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2010/09/18/332371.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/332371.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/332371.html</trackback:ping><description><![CDATA[<table width="750" height="280">
    <tbody>
        <tr>
            <td valign="bottom">
            <p>在前一篇博客中，我们测试了 canvas 标签的用法，并得到了 canvas 标签的渲染上下文对象， 但是并没有用它绘制任何图形。在这一篇中，我们先了解一下HTML5绘图的一些基础概念，然后再来画几个图形玩玩。</p>
            <p><span style="font-size: 18pt"><strong>一、坐标系</strong></span></p>
            <p>其实只要玩过一点点图形编程的人都知道，电脑上的坐标系和数学上的坐标系稍微有点不同，坐标的原点在绘制区域（这里是Canvas）的左上角，X轴正向朝右，Y轴正向朝下，如下图</p>
            <p><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/myqiao/html5/Canvas_default_grid.png" width="220" height="220" /></p>
            </td>
            <td width="30"></td>
            <td width="340">
<script type="text/javascript"><!--
                    google_ad_client = "pub-1798174031137512";
                    /* 336x280 图文 */
                    google_ad_slot = "0230816054";
                    google_ad_width = 336;
                    google_ad_height = 280;
                    //-->
                </script><script type="text/javascript"
                                 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
                </script></td>
</tr>
</tbody>
</table>
<p><span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 20px; font-family: Arial; font-size: 12px" class="Apple-style-span"><strong>声明：</strong>为本文为原创文章，作者保留所有权利！欢迎转载，转载请注明作者<font color="#ff0000"><strong>左洸</strong></font>和出处<font color="#ff0000"><a style="color: rgb(67,113,166)" href="http://www.cnblogs.com/myqiao/" target="_blank"><font color="#ff0000"><strong>博客园</strong></font></a></font></span></span></p>
<p>&nbsp;</p>
<p><span style="font-size: 18pt"><strong>二、Stroke 和 Fill </strong></span></p>
<p>HTML5中将图形分为两大类：</p>
<p>第一类称作 Stroke，我的理解就是轮廓、勾勒或者线条，总之，图形是由线条组成的；</p>
<p>第二类称作 Fill，就是填充区域</p>
<p>上下文对象中有两个绘制矩形的方法，可以让我们很好的理解这两大类图形的区别：</p>
<p>一个是 strokeRect，还有一个是 fillRect </p>
<p>下面的代码分别用这两个方法来绘制矩形，你可以分别点击两个按钮来看看有什么不同，从而理解 stroke 和 fill 的区别</p>
<div class="cnblogs_code" onclick="cnblogs_code_show('a0589ba1-6652-4430-a19d-17b47e5d19bd')"><img style="display: none" id="code_img_closed_a0589ba1-6652-4430-a19d-17b47e5d19bd" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img id="code_img_opened_a0589ba1-6652-4430-a19d-17b47e5d19bd" class="code_img_opened" onclick="cnblogs_code_hide('a0589ba1-6652-4430-a19d-17b47e5d19bd',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><span class="cnblogs_code_collapse">设置画布</span>
<div id="cnblogs_code_open_a0589ba1-6652-4430-a19d-17b47e5d19bd">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">canvas&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="test1"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="200"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="200"</span><span style="color: #ff0000">&nbsp;style</span><span style="color: #0000ff">="&nbsp;background-color:&nbsp;grey"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">你的浏览器不支持&nbsp;</span><span style="color: #ff0000">&amp;lt;</span><span style="color: #000000">canvas</span><span style="color: #ff0000">&amp;gt;</span><span style="color: #000000">标签，请使用&nbsp;Chrome&nbsp;浏览器&nbsp;或者&nbsp;FireFox&nbsp;浏览器</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">canvas</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="strokeRect"</span><span style="color: #ff0000">&nbsp;&nbsp;onclick</span><span style="color: #0000ff">="strokeRect();"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="fillRect"</span><span style="color: #ff0000">&nbsp;&nbsp;onclick</span><span style="color: #0000ff">="fillRect();"</span><span style="color: #0000ff">/&gt;</span></div>
</div>
</div>
<p>&nbsp;</p>
<div class="cnblogs_code" onclick="cnblogs_code_show('ae9bbf00-b81a-4f8d-bca0-cebdbc86779b')"><img style="display: none" id="code_img_closed_ae9bbf00-b81a-4f8d-bca0-cebdbc86779b" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img id="code_img_opened_ae9bbf00-b81a-4f8d-bca0-cebdbc86779b" class="code_img_opened" onclick="cnblogs_code_hide('ae9bbf00-b81a-4f8d-bca0-cebdbc86779b',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><span class="cnblogs_code_collapse">strokeRect 和 fillRect</span>
<div id="cnblogs_code_open_ae9bbf00-b81a-4f8d-bca0-cebdbc86779b">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;strokeRect(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;canvas&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #800000">'</span><span style="color: #800000">test1</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ctx</span><span style="color: #000000">=</span><span style="color: #000000">canvas.getContext(</span><span style="color: #800000">"</span><span style="color: #800000">2d</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;ctx.clearRect(</span><span style="color: #800080">0</span><span style="color: #000000">,</span><span style="color: #800080">0</span><span style="color: #000000">,</span><span style="color: #800080">200</span><span style="color: #000000">,</span><span style="color: #800080">200</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;ctx.strokeStyle</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">blue</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;ctx.strokeRect(</span><span style="color: #800080">10</span><span style="color: #000000">,</span><span style="color: #800080">10</span><span style="color: #000000">,</span><span style="color: #800080">180</span><span style="color: #000000">,</span><span style="color: #800080">180</span><span style="color: #000000">);<br />
}<br />
<br />
</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;fillRect(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;canvas&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #800000">'</span><span style="color: #800000">test1</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ctx</span><span style="color: #000000">=</span><span style="color: #000000">canvas.getContext(</span><span style="color: #800000">"</span><span style="color: #800000">2d</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;ctx.clearRect(</span><span style="color: #800080">0</span><span style="color: #000000">,</span><span style="color: #800080">0</span><span style="color: #000000">,</span><span style="color: #800080">200</span><span style="color: #000000">,</span><span style="color: #800080">200</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;ctx.fillStyle</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">blue</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;ctx.fillRect(</span><span style="color: #800080">10</span><span style="color: #000000">,</span><span style="color: #800080">10</span><span style="color: #000000">,</span><span style="color: #800080">180</span><span style="color: #000000">,</span><span style="color: #800080">180</span><span style="color: #000000">);<br />
}</span></div>
</div>
</div>
<p>&nbsp;</p>
<p><canvas style="background-color: grey" id="test1" height="200" width="200">你的浏览器不支持 &lt;canvas&gt;标签，请使用 Chrome 浏览器 或者 FireFox 浏览器</canvas> </p>
<p><input onclick="strokeRect();" value="strokeRect" type="button" /> <input onclick="fillRect();" value="fillRect" type="button" /> </p>
<script type="text/javascript">
    function strokeRect(){
        var canvas = document.getElementById('test1');
        var ctx=canvas.getContext("2d");
        ctx.clearRect(0,0,200,200);
        ctx.strokeStyle="blue";
        ctx.strokeRect(10,10,180,180);
    }
    function fillRect(){
        var canvas = document.getElementById('test1');
        var ctx=canvas.getContext("2d");
        ctx.clearRect(0,0,200,200);
        ctx.fillStyle="blue";
        ctx.fillRect(10,10,180,180);
    }
</script><p><strong></strong></p>
<p><strong></strong></p>
<p><span style="font-size: 18pt"><strong></strong></span>&nbsp;</p>
<p><span style="font-size: 18pt"><strong>三、颜色</strong></span></p>
<p>上下文对象有两个属性可以用来设置颜色：strokeStyle 和 fillStyle </p>
<p>strokeStyle 的值决定了你当前要绘制的线条的颜色 </p>
<p>fillStyle 的值决定了你当前要填充的区域的颜色 </p>
<p>颜色值应该是符合<span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="line-height: 23px; font-family: Verdana, Tahoma, sans-serif; color: rgb(37,34,29); font-size: 14px" class="Apple-style-span"><a style="background-image: url(https://developer.mozilla.org/skins/mozilla/Fox3/img/icons/link_external.png); background-color: transparent; padding-right: 16px; background-position: 99% 40%; color: rgb(4,121,167); text-decoration: none; background-origin: initial; background-clip: initial" class="external" title="http://www.w3.org/TR/2003/CR-css3-color-20030514/#numerical" href="http://www.w3.org/TR/2003/CR-css3-color-20030514/#numerical" rel="external nofollow" target="_blank">CSS3 颜色值标准</a></span></span>的有效字符串。下面的例子都表示同一种颜色。</p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #008000">//</span><span style="color: #008000">这些&nbsp;fillStyle&nbsp;的值均为&nbsp;'橙色'，ctx&nbsp;是上下文对象&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">ctx</span><span style="color: #000000">.</span><span style="color: #000000">fillStyle&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">orange</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
ctx</span><span style="color: #000000">.</span><span style="color: #000000">fillStyle&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">#FFA500</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
ctx</span><span style="color: #000000">.</span><span style="color: #000000">fillStyle&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">rgb(255,165,0)</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
ctx</span><span style="color: #000000">.</span><span style="color: #000000">fillStyle&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">rgba(255,165,0,1)</span><span style="color: #000000">"</span><span style="color: #000000">;</span></div>
</div>
<p>关于颜色，以后会有更多的说明。</p>
<p>&nbsp;</p>
<p><strong style="font-size: 18pt">四、基本绘图</strong></p>
<p>除了上面给出的两个绘制矩形的方法外，上下文对象还有几个方法可以用来绘制一些基本图形，如下：</p>
<p><strong>moveTo</strong>(x,y)：moveTo方法并不能画出任何东西，它只是将画笔的当前点移动到(x,y)处</p>
<p><strong>lineTo</strong>(x,y)：从当前点到（x,y）点绘制一条直线。注意：绘制完成后，当前点就变成了(x,y)，除非你用 moveTo 方法去改变他</p>
<p><strong>arc</strong>(x, y, radius, startAngle, endAngle, anticlockwise) ：绘制一条弧线</p>
<p><strong>quadraticCurveTo</strong>(cp1x, cp1y, x, y) <br />
<strong>bezierCurveTo</strong>(cp1x, cp1y, cp2x, cp2y, x, y) ：这两个方法都是绘制贝叶斯曲线，具体用法看参考手册</p>
<p><strong>rect</strong>(x, y, width, height) ：绘制一个矩形。注意： 当它被调用时，moveTo 方法会自动被调用，参数为(0,0)，于是起始坐标又恢复成初始原点了。 </p>
<p>有了直线、弧线、曲线、方形和圆形这几种基本图形，我们就可以组合出更复杂的图形了</p>
<p>&nbsp;</p>
<p><strong style="font-size: 18pt">五、理解绘制路径 Drawing Path</strong></p>
<p>上一篇文章中说过，我们绘制的图形是先绘制到一个抽象的上下文对象中（其实就是内存中），然后再将上下文对象输出到显示设备上，这个输出到显示设备的过程不需要我们操心。但是有时候我们并不想立刻输出每一次绘制动作，也许我想让一组绘制动作完成以后，再集中一块输出， 比如一个围棋棋盘有19&#215;19条直线组成，正常情况下需要向想显示设备输出19&#215;19次，但是如果我们先暂停向显示设备输出，等在上下文中（内存中）全部绘制完成19&#215;19条直线时，再向显示设备输出，只需要输出一次就可以了。</p>
<p>这种情况在HTML5中叫做绘制路径，它由几个上下文对象的方法组成：</p>
<p><strong>beginPath</strong>() ：开始路径，意思就是在你调用这个方法后，你绘制的图形就不会再向屏幕输出了，而只是画到了上下文对象中（内存中）</p>
<p><strong>stroke</strong>() ：将你调用 beginPath 方法以后绘制的所有线条，一次性输出到显示设备上</p>
<p><strong>closePath</strong>() ：如果你调用 beginPath 方法以后，在上下文对象中进行了一系列的绘制，但是得到的图形是不闭合的，这个方法将会帮你补上最后一条直线，将你的图形闭合起来。</p>
<p><strong style="color: red">注意</strong><span style="color: red">：</span><u>closePath并不向屏幕输出图形，而只是在上下文对象中补上一条线，这个步骤不是必需的</u>。</p>
<p><strong>fill</strong>() ：</p>
<p>如果你的绘制路径组成的图形是封闭的，这个方法将用 fillStyle 设置的颜色填充图形，然后立即向屏幕输出；</p>
<p>如果绘制路径不是封闭的，这个方法会先将图形闭合起来，然后再填充输出。</p>
<p><strong style="color: red">注意：</strong><u>所有的 fill 图形，如 fillRect 等，都是立刻向屏幕输出的，他们没有绘制路径这个概念</u></p>
<p>&nbsp;</p>
<p>下面的代码将绘制一个简单的填充三角形。</p>
<p><span style="color: red">注意：</span>绘制三角形的时候，<u>默认的背景色为白色，默认的前景色为黑色</u>。</p>
<div class="cnblogs_code" onclick="cnblogs_code_show('c032aa3b-06e3-45d1-86f0-aad0a5d7c6fb')"><img style="display: none" id="code_img_closed_c032aa3b-06e3-45d1-86f0-aad0a5d7c6fb" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img id="code_img_opened_c032aa3b-06e3-45d1-86f0-aad0a5d7c6fb" class="code_img_opened" onclick="cnblogs_code_hide('c032aa3b-06e3-45d1-86f0-aad0a5d7c6fb',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><span class="cnblogs_code_collapse">设置画布</span>
<div id="cnblogs_code_open_c032aa3b-06e3-45d1-86f0-aad0a5d7c6fb">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">canvas&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="test2"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="200"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="200"</span><span style="color: #ff0000">&nbsp;style</span><span style="color: #0000ff">="border:1px&nbsp;solid&nbsp;#c3c3c3;"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">你的浏览器不支持&nbsp;</span><span style="color: #ff0000">&amp;lt;</span><span style="color: #000000">canvas</span><span style="color: #ff0000">&amp;gt;</span><span style="color: #000000">标签，请使用&nbsp;Chrome&nbsp;浏览器&nbsp;或者&nbsp;FireFox&nbsp;浏览器</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">canvas</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="画三角"</span><span style="color: #ff0000">&nbsp;&nbsp;onclick</span><span style="color: #0000ff">="drawTri();"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="清除"</span><span style="color: #ff0000">&nbsp;&nbsp;onclick</span><span style="color: #0000ff">="clearTri();"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span></div>
</div>
</div>
<p>&nbsp;</p>
<div class="cnblogs_code" onclick="cnblogs_code_show('66b97d2e-4fd8-459f-8ba2-81ef66c73c62')"><img style="display: none" id="code_img_closed_66b97d2e-4fd8-459f-8ba2-81ef66c73c62" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img id="code_img_opened_66b97d2e-4fd8-459f-8ba2-81ef66c73c62" class="code_img_opened" onclick="cnblogs_code_hide('66b97d2e-4fd8-459f-8ba2-81ef66c73c62',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><span class="cnblogs_code_collapse">绘制三角形</span>
<div id="cnblogs_code_open_66b97d2e-4fd8-459f-8ba2-81ef66c73c62">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;</span><span style="color: #ff00ff">type</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">text/javascript</span><span style="color: #800000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;drawTri(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;canvas&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #800000">'</span><span style="color: #800000">test2</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ctx</span><span style="color: #000000">=</span><span style="color: #000000">canvas.getContext(</span><span style="color: #800000">"</span><span style="color: #800000">2d</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.beginPath();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.moveTo(</span><span style="color: #800080">75</span><span style="color: #000000">,</span><span style="color: #800080">50</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.lineTo(</span><span style="color: #800080">100</span><span style="color: #000000">,</span><span style="color: #800080">75</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.lineTo(</span><span style="color: #800080">100</span><span style="color: #000000">,</span><span style="color: #800080">25</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.fill();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;clearTri(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;canvas&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #800000">'</span><span style="color: #800000">test2</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ctx</span><span style="color: #000000">=</span><span style="color: #000000">canvas.getContext(</span><span style="color: #800000">"</span><span style="color: #800000">2d</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.clearRect(</span><span style="color: #800080">0</span><span style="color: #000000">,</span><span style="color: #800080">0</span><span style="color: #000000">,</span><span style="color: #800080">200</span><span style="color: #000000">,</span><span style="color: #800080">200</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
</div>
</div>
<p><canvas style="border-bottom: #c3c3c3 1px solid; border-left: #c3c3c3 1px solid; border-top: #c3c3c3 1px solid; border-right: #c3c3c3 1px solid" id="test2" height="200" width="200">你的浏览器不支持 &lt;canvas&gt;标签，请使用 Chrome 浏览器 或者 FireFox 浏览器</canvas></p>
<p><input onclick="drawTri();" value="画三角" type="button" /> <input onclick="clearTri();" value="清除" type="button" /> </p>
<script type="text/javascript">
        function drawTri(){
            var canvas = document.getElementById('test2');
            var ctx=canvas.getContext("2d");
            ctx.beginPath();
            ctx.moveTo(75,50);
            ctx.lineTo(100,75);
            ctx.lineTo(100,25);
            ctx.fill();
        }
        function clearTri(){
            var canvas = document.getElementById('test2');
            var ctx=canvas.getContext("2d");
            ctx.clearRect(0,0,200,200);
        }
    </script><p>&nbsp;</p>
<p><strong style="font-size: 18pt">六、半个单位的坐标</strong></p>
<p>这里还要回过头来说说坐标，下面的代码是在画布上绘制网格，点击&#8220;画网格&#8221;按钮可以看见效果</p>
<div class="cnblogs_code" onclick="cnblogs_code_show('efa3761f-09a2-4739-8a95-9caf065f0a45')"><img style="display: none" id="code_img_closed_efa3761f-09a2-4739-8a95-9caf065f0a45" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img id="code_img_opened_efa3761f-09a2-4739-8a95-9caf065f0a45" class="code_img_opened" onclick="cnblogs_code_hide('efa3761f-09a2-4739-8a95-9caf065f0a45',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><span class="cnblogs_code_collapse">设置画布</span>
<div id="cnblogs_code_open_efa3761f-09a2-4739-8a95-9caf065f0a45">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">canvas&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="test3"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="500"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="375"</span><span style="color: #ff0000">&nbsp;style</span><span style="color: #0000ff">="border:1px&nbsp;solid&nbsp;#c3c3c3;"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">你的浏览器不支持&nbsp;</span><span style="color: #ff0000">&amp;lt;</span><span style="color: #000000">canvas</span><span style="color: #ff0000">&amp;gt;</span><span style="color: #000000">标签，请使用&nbsp;Chrome&nbsp;浏览器&nbsp;或者&nbsp;FireFox&nbsp;浏览器</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">canvas</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="画网格"</span><span style="color: #ff0000">&nbsp;&nbsp;onclick</span><span style="color: #0000ff">="drawMap();"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="清除"</span><span style="color: #ff0000">&nbsp;&nbsp;onclick</span><span style="color: #0000ff">="clearMap();"</span><span style="color: #0000ff">/&gt;</span></div>
</div>
</div>
<p>&nbsp;</p>
<div class="cnblogs_code" onclick="cnblogs_code_show('1b4ff6bf-bb87-4898-bc9a-f509b119e2e3')"><img style="display: none" id="code_img_closed_1b4ff6bf-bb87-4898-bc9a-f509b119e2e3" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img id="code_img_opened_1b4ff6bf-bb87-4898-bc9a-f509b119e2e3" class="code_img_opened" onclick="cnblogs_code_hide('1b4ff6bf-bb87-4898-bc9a-f509b119e2e3',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><span class="cnblogs_code_collapse">绘制网格</span>
<div id="cnblogs_code_open_1b4ff6bf-bb87-4898-bc9a-f509b119e2e3">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;</span><span style="color: #ff00ff">type</span><span style="color: #000000">=</span><span style="color: #800000">"</span><span style="color: #800000">text/javascript</span><span style="color: #800000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;drawMap(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;canvas&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #800000">'</span><span style="color: #800000">test3</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ctx</span><span style="color: #000000">=</span><span style="color: #000000">canvas.getContext(</span><span style="color: #800000">"</span><span style="color: #800000">2d</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.beginPath();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(var&nbsp;x&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0.5</span><span style="color: #000000">;&nbsp;x&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">500</span><span style="color: #000000">;&nbsp;x&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">10</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.moveTo(x,&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.lineTo(x,&nbsp;</span><span style="color: #800080">375</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(var&nbsp;y&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0.5</span><span style="color: #000000">;&nbsp;y&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">375</span><span style="color: #000000">;&nbsp;y&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">10</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.moveTo(</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;y);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.lineTo(</span><span style="color: #800080">500</span><span style="color: #000000">,&nbsp;y);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.strokeStyle&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">#eee</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.stroke();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;clearMap(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;canvas&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #800000">'</span><span style="color: #800000">test3</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ctx</span><span style="color: #000000">=</span><span style="color: #000000">canvas.getContext(</span><span style="color: #800000">"</span><span style="color: #800000">2d</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.clearRect(</span><span style="color: #800080">0</span><span style="color: #000000">,</span><span style="color: #800080">0</span><span style="color: #000000">,</span><span style="color: #800080">500</span><span style="color: #000000">,</span><span style="color: #800080">375</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
</div>
</div>
<p>&nbsp;</p>
<p><canvas style="border-bottom: #c3c3c3 1px solid; border-left: #c3c3c3 1px solid; border-top: #c3c3c3 1px solid; border-right: #c3c3c3 1px solid" id="test3" height="375" width="500">你的浏览器不支持 &lt;canvas&gt;标签，请使用 Chrome 浏览器 或者 FireFox 浏览器</canvas></p>
<p><input onclick="drawMap();" value="画网格" type="button" /> <input onclick="clearMap();" value="清除" type="button" /> </p>
<script type="text/javascript">
        function drawMap(){
            var canvas = document.getElementById('test3');
            var ctx=canvas.getContext("2d");
            ctx.beginPath();
            for (var x = 0.5; x < 500; x += 10) {
                ctx.moveTo(x, 0);
                ctx.lineTo(x, 375);
            }
            for (var y = 0.5; y < 375; y += 10) {
                ctx.moveTo(0, y);
                ctx.lineTo(500, y);
            }
            ctx.strokeStyle = "#eee";
            ctx.stroke();
        }
        function clearMap(){
            var canvas = document.getElementById('test3');
            var ctx=canvas.getContext("2d");
            ctx.clearRect(0,0,500,375);
        }
 </script><p>&nbsp;</p>
<p>这段代码中，有一处奇怪的地方，就是坐标循环是从0.5开始的，这是为什么呢？</p>
<p>如下图，假如我想绘制一条从(1,0)到(1,3)的线，由于线的默认宽度是一个像素，所以在我想象中应该绘制成<strong style="color: #339966"><u>深绿色</u></strong>的部分，即在坐标 1 两边各占半个像素的宽度。</p>
<p>然而，浏览器的最小单位是一个像素，所以他会向两边扩展，实际绘制出来的<strong style="color: #99cc00"><u>浅绿色</u></strong>的部分，即占用了两个像素的宽度。这样，我们绘制的线条在坐标上就不精确了</p>
<p><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/myqiao/html5/canvas-half-pixels-1.jpg" width="406" height="314" /></p>
<p>如下图，如果我们给出的起始坐标是(1.5,0)和(1.5,3)，那么线条的宽度才是正确的一个像素。</p>
<p><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/myqiao/html5/canvas-half-pixels-2.jpg" width="404" height="323" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong style="font-size: 18pt">七、清空画布</strong></p>
<p>上面给出的两段代码中，我们都用到了清空画布，用到的方法如下：</p>
<p>clearRect(x,y,width,height)：</p>
<p>它接受四个参数， x 和 y 指定矩形左上角(相对于原点)的位置，width 和 height 是矩形的宽和高。调用该方法会将给出的矩形区域中所有绘制图形都清空，露出画布的背景 </p>
<p>&nbsp;</p>
<p><span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 20px; font-family: Arial; font-size: 12px" class="Apple-style-span"><strong>声明：</strong>为本文为原创文章，作者保留所有权利！欢迎转载，转载请注明作者<font color="#ff0000"><strong>左洸</strong></font>和出处<font color="#ff0000"><a style="color: rgb(67,113,166)" href="http://www.cnblogs.com/myqiao/" target="_blank"><font color="#ff0000"><strong>博客园</strong></font></a></font></span></span></p>
<p>//========================================== <br />
</p>
<script type="text/javascript"><!--
        google_ad_client = "pub-1798174031137512";
        /* 728x90 图文 */
        google_ad_slot = "5397571580";
        google_ad_width = 728;
        google_ad_height = 90;
        //-->
    </script><script type="text/javascript"
            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script><p>&nbsp;</p><img src ="http://www.blogjava.net/myqiao/aggbug/332371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2010-09-18 11:32 <a href="http://www.blogjava.net/myqiao/archive/2010/09/18/332371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML5边玩边学（1）：画布</title><link>http://www.blogjava.net/myqiao/archive/2010/09/17/HTML5.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Fri, 17 Sep 2010 15:45:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2010/09/17/HTML5.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/332343.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2010/09/17/HTML5.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/332343.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/332343.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Html5 引入了一个新的 canvas 标签，这个标签所代表的区域就好象一块画布，你的所有图形绘制最后都要在这块画布上呈现。有了这个标签，浏览器的图形表现力被极大的提升，Flash 和 SilverLight 有没有感到威胁呢?&nbsp;&nbsp;<a href='http://www.blogjava.net/myqiao/archive/2010/09/17/HTML5.html'>阅读全文</a><img src ="http://www.blogjava.net/myqiao/aggbug/332343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2010-09-17 23:45 <a href="http://www.blogjava.net/myqiao/archive/2010/09/17/HTML5.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wxPython 教程 （2）—— Frame</title><link>http://www.blogjava.net/myqiao/archive/2009/10/07/297397.html</link><dc:creator>左洸</dc:creator><author>左洸</author><pubDate>Wed, 07 Oct 2009 11:59:00 GMT</pubDate><guid>http://www.blogjava.net/myqiao/archive/2009/10/07/297397.html</guid><wfw:comment>http://www.blogjava.net/myqiao/comments/297397.html</wfw:comment><comments>http://www.blogjava.net/myqiao/archive/2009/10/07/297397.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/myqiao/comments/commentRss/297397.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/myqiao/services/trackbacks/297397.html</trackback:ping><description><![CDATA[<table width="750" height="280">
    <tbody>
        <tr>
            <td valign="bottom">
            <p><strong>一、wxpython 包的安装</strong><br />
            在 教程 1 中，有人按照给出的代码运行，出现了如下错误：<br />
            <em>ImportError: No module named wx<br />
            </em><br />
            这是因为 wxpython 不是默认的包，需要自己安装。具体的安装地址是：<br />
            <a href="http://www.wxpython.org/download.php">http://www.wxpython.org/download.php</a><br />
            <br />
            您可以根据自己系统的平台和python版本选择相应的包下载，安装好后就不会出现上面的错误了。下载页面中还有一个 <strong>Demo 包</strong>，里面包含了大量的示例代码和帮助文件，是学习 wxpython 的好帮手。</p>
            </td>
            <td width="30"></td>
            <td width="340">
            <script type="text/javascript"><!--
            google_ad_client = "pub-1798174031137512";
            /* 336x280 图文 */
            google_ad_slot = "0230816054";
            google_ad_width = 336;
            google_ad_height = 280;
            //-->
            </script>
            <script type="text/javascript"
            src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
            </script>
            </td>
        </tr>
    </tbody>
</table>
<p><strong>二、Frame</strong></p>
<p>Frame 其实就是窗体，前面我们生成窗体的时候没有给他任何参数，只生成了一个默认的窗体，生成默认窗体的代码如下：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000">frame&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;wx.Frame(None)</span></div>
<p><br />
其实 wx.Frame 可以传入很多参数，由此来控制生成窗体的样式和行为，现在我们来看看 Frame构造函数的原型：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800080">__init__</span><span style="color: #000000">(self,&nbsp;Window&nbsp;parent,&nbsp;int&nbsp;id</span><span style="color: #000000">=-</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;String&nbsp;title</span><span style="color: #000000">=</span><span style="color: #000000">EmptyString,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Point&nbsp;pos</span><span style="color: #000000">=</span><span style="color: #000000">DefaultPosition,&nbsp;Size&nbsp;size</span><span style="color: #000000">=</span><span style="color: #000000">DefaultSize,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">DEFAULT_FRAME_STYLE,&nbsp;String&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">FrameNameStr)</span></div>
<p><strong>参数1：parent<br />
</strong>父窗体。如果没有父窗体，可以设为 None。</p>
<p><strong>参数2：id</strong><br />
窗体编号。如果设置为-1，则系统自动给他分配一个编号。默认为-1.</p>
<p><strong>参数3：title</strong><br />
窗体的标题栏，即Caption。默认为空。</p>
<p><strong>参数4：pos</strong><br />
窗体的位置坐标。默认值为(-1,-1),则窗体的位置由系统决定。</p>
<p><strong>参数5：size<br />
</strong>窗体的大小。默认值为(-1,-1),则窗体的大小由系统决定。</p>
<p><strong>参数6：style<br />
</strong>窗体样式。默认值为 <strong>DEFAULT_FRAME_STYLE</strong><br />
默认样式 DEFAULT_FRAME_STYLE 是下面这些值的复合：<br />
wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN<br />
它包括最小化按钮、最大化按钮、系统菜单、标题栏、关闭按钮、可变大小等等。您也可以根据自己的需求改变样式，具体请参照帮助。</p>
<p><strong>参数7：name</strong><br />
窗体名称。</p>
<p>可以看到，<strong><u>7个参数中6个都有默认值</u></strong>，只有第一个参数 parent 需要设置一下，所以一个最简单的窗体就是：<br />
frame = wx.Frame(None)</p>
<p><strong>三、几个小例子</strong></p>
<p>窗体标题：<br />
frame = wx.Frame(None,title="Hello World")</p>
<p>位置和大小：<br />
frame = wx.Frame(None,title="世界你好",size=(300,150),pos=(200,200))</p>
<p>样式一：只有一个光秃秃的标题栏<br />
frame = wx.Frame(None,style=wx.CAPTION)</p>
<p>样式二：只有客户区，没有标题栏，也不能改变大小<br />
frame = wx.Frame(None,style=0)</p>
<p>样式三：只有一个关闭按钮，不能改变大小<br />
frame = wx.Frame(None,style= wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX)<br />
</p>
<p>&nbsp;<br />
//========================================== <br />
<script type="text/javascript"><!--
google_ad_client = "pub-1798174031137512";
/* 728x90 图文 */
google_ad_slot = "5397571580";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<img src ="http://www.blogjava.net/myqiao/aggbug/297397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/myqiao/" target="_blank">左洸</a> 2009-10-07 19:59 <a href="http://www.blogjava.net/myqiao/archive/2009/10/07/297397.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>