<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nicrosoft.net (nc-show v3) &#187; 我的书</title>
	<atom:link href="http://nicrosoft.net/?feed=rss2&#038;cat=5" rel="self" type="application/rss+xml" />
	<link>http://nicrosoft.net</link>
	<description>又一个 WordPress 博客</description>
	<lastBuildDate>Tue, 20 Jul 2010 01:28:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>《Delphi高手突破》官方电子版发布</title>
		<link>http://nicrosoft.net/?p=37</link>
		<comments>http://nicrosoft.net/?p=37#comments</comments>
		<pubDate>Wed, 11 Aug 2004 05:36:16 +0000</pubDate>
		<dc:creator>nicrosoft</dc:creator>
				<category><![CDATA[我的书]]></category>

		<guid isPermaLink="false">http://esan.cn/?37</guid>
		<description><![CDATA[PDF格式下载：
http://www.sunistudio.com/nicrosoft/book/DesignInDelphi(Official).zip
]]></description>
			<content:encoded><![CDATA[<p><P>PDF格式下载：</P>
<P><A href="http://www.sunistudio.com/nicrosoft/book/DesignInDelphi(Official).zip">http://www.sunistudio.com/nicrosoft/book/DesignInDelphi(Official).zip</A></P></p>
]]></content:encoded>
			<wfw:commentRss>http://nicrosoft.net/?feed=rss2&amp;p=37</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>后记</title>
		<link>http://nicrosoft.net/?p=26</link>
		<comments>http://nicrosoft.net/?p=26#comments</comments>
		<pubDate>Wed, 10 Mar 2004 13:40:33 +0000</pubDate>
		<dc:creator>nicrosoft</dc:creator>
				<category><![CDATA[我的书]]></category>

		<guid isPermaLink="false">http://esan.cn/?26</guid>
		<description><![CDATA[　　写完全书，突然有一种解脱的感觉。
　　从小时候起，一直有很强烈的发布欲，写了什么，做了什么，都希望放到网络上，让很多人看，让很多人用。
　　写书的机会对于有如此强烈发布欲的我来说，当然是不容错过的。况且早就梦想自己有一天能够著书立说，成为一代大师级的人物。
　　去年年底，不知是偶然还是必然，获得了这样一个写书的机会，一开始踌躇满志、信心百倍。虽然说不上是著书立说，毕竟自己的经验、资历还没到这样的程度，不过对于一个大学毕业不足半年的年轻人来说，还是非常有诱惑的，至少形式上是在著书立说了。
　　我想趁此写书的机会，向很多人推荐我所喜爱的Delphi，与大家共享我学习Delphi的一些经验，同时，也是作为之前一段时间学习的小结。
　　然而写作半年多来，越来越感疲惫。也许是我太过稚嫩，缺乏太多的经验，致使有时还是感到力不从心；也许是我太过年轻，有着太多的想法，但是写书占据了我大部分的时间和心力，致使我想做的很多事情无法开始，从而感到心神倦累。
　　从此感觉，写作和写程序还是不同。写程序可以在时间非常紧迫的压力下顺利进行，而写作却不行，毕竟写作对于我来说，其乐趣还是无法与写程序相比的，虽然我也自感文字方面水准在程序员中算是不错的了 ：）
　　在写完的时候，心底几乎要呐喊：“结束了！”。如同高考最后一场考试结束走出考场的感觉，准备美美的计划一下明天可以做什么，后天可以做什么……
　　但愿这七个多月的辛苦，能换来一些什么，而不要仅仅换来对于写书的恐惧之情，那就……不太好了……&#160; 
　
以上内容，未经许可，不得擅自转载、传播！
]]></description>
			<content:encoded><![CDATA[<p><P align=left><FONT face=Arial>　　写完全书，突然有一种解脱的感觉。</FONT></P>
<P align=left><FONT face=Arial>　　从小时候起，一直有很强烈的发布欲，写了什么，做了什么，都希望放到网络上，让很多人看，让很多人用。</FONT></P>
<P align=left><FONT face=Arial>　　写书的机会对于有如此强烈发布欲的我来说，当然是不容错过的。况且早就梦想自己有一天能够著书立说，成为一代大师级的人物。</FONT></P>
<P align=left><FONT face=Arial>　　去年年底，不知是偶然还是必然，获得了这样一个写书的机会，一开始踌躇满志、信心百倍。虽然说不上是著书立说，毕竟自己的经验、资历还没到这样的程度，不过对于一个大学毕业不足半年的年轻人来说，还是非常有诱惑的，至少形式上是在著书立说了。</FONT></P>
<P align=left><FONT face=Arial>　　我想趁此写书的机会，向很多人推荐我所喜爱的Delphi，与大家共享我学习Delphi的一些经验，同时，也是作为之前一段时间学习的小结。</FONT></P>
<P align=left><FONT face=Arial>　　然而写作半年多来，越来越感疲惫。也许是我太过稚嫩，缺乏太多的经验，致使有时还是感到力不从心；也许是我太过年轻，有着太多的想法，但是写书占据了我大部分的时间和心力，致使我想做的很多事情无法开始，从而感到心神倦累。</FONT></P>
<P align=left><FONT face=Arial>　　从此感觉，写作和写程序还是不同。写程序可以在时间非常紧迫的压力下顺利进行，而写作却不行，毕竟写作对于我来说，其乐趣还是无法与写程序相比的，虽然我也自感文字方面水准在程序员中算是不错的了 ：）</FONT></P>
<P align=left><FONT face=Arial>　　在写完的时候，心底几乎要呐喊：“结束了！”。如同高考最后一场考试结束走出考场的感觉，准备美美的计划一下明天可以做什么，后天可以做什么……</FONT></P>
<P align=left><FONT face=Arial>　　但愿这七个多月的辛苦，能换来一些什么，而不要仅仅换来对于写书的恐惧之情，那就……不太好了……&nbsp; </FONT></P>
<P align=left>　</P>
<P align=left>以上内容，未经许可，不得擅自转载、传播！</P></p>
]]></content:encoded>
			<wfw:commentRss>http://nicrosoft.net/?feed=rss2&amp;p=26</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第一章 重新认识Delphi</title>
		<link>http://nicrosoft.net/?p=25</link>
		<comments>http://nicrosoft.net/?p=25#comments</comments>
		<pubDate>Wed, 10 Mar 2004 13:39:48 +0000</pubDate>
		<dc:creator>nicrosoft</dc:creator>
				<category><![CDATA[我的书]]></category>

		<guid isPermaLink="false">http://esan.cn/?25</guid>
		<description><![CDATA[　　简单性是这个世界上最难获得的东西：它是经验的最终界限，也是天才的最终努力目标。——George Sand
　　您已经是一位熟练的Delphi程序员，可以运用Delphi快速地写出一个漂亮、实用的程序；您热爱Delphi；她已经成了您工作、学习中不可或缺的一部分。我假设这些都为真，那么您当初选择Delphi作为自己的首选开发工具一定有自己的理由或者原因。
　　至少，我自己是符合以上的所有假设的。现在，我所想和您分享的，正是我选择Delphi的理由及原因，以及我对Delphi的认识。您可以把我看作一个拥护Delphi的狂热分子，虽然那样会让我感到您把我看得太过肤浅，我并不承认，但是我不介意。因为，我真的热爱她。
　　第一次接触的Delphi的版本是3.0，那时候只不过把它当作Visual Basic一样的RAD工具来用而已。但是，随着时间的流逝，Delphi 3、Delphi 4、Delphi 5、Delphi 6以及Kylix，对Delphi的认识也越来越深。它是有着丰富内涵的工具，让人对她越了解，就越对她迷恋，越感觉离不开她，虽然它也还只是工具。
　　Pascal是一种讲究程序美学的语言——毫无疑问，Pascal代码是最优美的代码——基于Object Pascal（一种支持面向对象的Pascal语言）的Delphi让这种美达到了极至。
　　现在，你可以打开Delphi，选择“Help”－“About”菜单，出现About窗口后，按住Alt键，同时顺序键入“team”，你看到了什么？是的，Delphi开发人员名单，让我们感谢他们制造出如此的更象艺术品的开发工具吧！
1.1 开发工具“以人为本”论
　　经常可以在各个编程论坛上看到类似这样的问题：“VB还有没有前途？”；“Delphi是不是要淘汰了？”；“MFC是不是要被.NET取代了？”……其实，这些问题在被提出的当时，是没有人能给出答案的。因为一种技术、一个产品的前途，并不完全由其本身所能左右，还与市场需求、出品公司的发展方向等因素有关。而我们所应该关注的，是否就是这些问题的答案呢？我认为不是。
　　我们知道，世间万物由原子组成；千变万化的程序归根结底由顺序、循环、分支三种结构构成；无论VC的MFC，还是Delphi的VCL，都是由面向对象技术构建的（暂且不论其面向对象的程度）。当你拨开事物表面的表象后，你看到的，是相同的或近似的本质！而掌握了本质之后，就会发现表象的表现形式是那么的理所当然。试想，当你能象侯捷（《深入浅出MFC》的作者）那样把MFC剥得体无完肤，你还会担心MFC被某某框架所取代吗？从这个角度来说，对于一名专业程序员，编程的理念是万变不离其宗的。发现问题、分析问题、解决问题的过程是存在着某种模式的，当你掌握了这种模式后，不同的编程语言，不同的开发环境对你来说，是有共通之处的。
　　我认为C++是每个专业程序员所必须掌握的。当然，并不是说单纯学习其语法（甚至可以忽略一些语法的学习），而是通过C++学习面向对象的设计、编程方法。因为C++博大精深，因为C++无所不及。在C++中，你可以学习到面向对象理论的全部，学习之后，你会被C++所改造。因为在面向对象理论中存在的，但有所争议的特性（比如：多重继承）在C++中都得到支持。你只有在掌握之后，才可能作出自己的选择（支持或反对）。在掌握了面向对象的理论之后，无论C++、Object Pascal或是Java乃至C#，你会感觉到它们的异曲同工之处。
　　那是否就是说开发工具（或许应该称为集成开发环境，不过下文还是按我的习惯，用开发工具来称呼）之间除了支持的语言不同外，不存在其他差异了？当然也不是。开发工具是帮助你实现你的理念的工具，也就是构建在基础理念上的上层建筑。开发工具对于你所要实现的理念的支持程度以及对实现过程的简化程度，就是开发工具的体贴度了。开发工具于程序员，犹如兵器于士兵，兵器不顺手，未战先败一半。
　　一直很喜欢诺基亚手机的广告词：科技以人为本！是的，“人”才是本，工具的使命是辅助人更快、更容易地达到目的。因此，开发工具也应该以人为本！
　　作为一名程序员，作为开发工具的最直接的使用者，我希望我所使用的开发工具真正是我的伙伴、助手，它能给我带来自由的感觉，让我自由地在代码的世界中驰骋，它能迁就我、适应我，而不是相反，给我套上枷锁！
　　如今在Windows平台上，有许许多多的开发工具可以选择：Visual C++、Visual Basic、Delphi、C++ Builder、JBuilder……它们基于不同的编程语言、忠于不同的公司的产品理念，从这个角度来说，它们之间的差异是非常大的。
　　那什么样的开发工具才是优秀的、体贴的、以人为本的？我的标准是符合以下四点：
1、能够将要解决的问题简化，并以某种理念快速实现之
2、不隐藏任何你想知道的细节
3、可以忽略你所不想知道的细节
4、主动去适应不同层次的程序员
　　符合以上四点的开发工具有吗？我的答案是：有！那就是Delphi！她将一切化繁为简，却从不阻止我寻求真实。你可以在她给你构造的简化了的VCL的虚拟世界中完成任务。也可以钻进VCL的世界以探询她和现实世界（即Windows平台的真实接口）的映射关系，学习它的Framework的设计。你还可以扩展那个虚拟的VCL世界以适应自己的需要。
　　我为存在着这样的开发工具而感到幸运，更为幸运的是，我可以选择她，和她一起完成我的工作！（现实中，项目中使用什么编程语言、开发工具，时常并不是你个人所能左右的，会受很多因素制约。比如：客户的硬件环境、操作系统环境，开发环境，开发工具的成本、许可证等等。因此能选择自己喜欢的开发工具进行开发工作实在是很幸运的了。）
　　通过C++学习面向对象的理念，用Delphi去解决现实世界的问题，这是我的做法。同时也验证了那句话：学从难处学，用从易处用。
　　真正的程序员用C++，聪明的程序员用Delphi。那么，真正聪明的程序员用C++来理解Delphi！
1.2 Delphi更多的优势
　　用过很多的主流开发工具，为什么还是选择了Delphi？也许是因为没有深入地去熟悉其它开发工具吧，但Delphi本身的优秀至少是原因之一！Delphi优秀在何处？
开发的高效
　　Delphi是一个RAD（Rapid Application Development 快速开发工具），它有可视化的开发环境，当然具有类似功能的开发工具也不少（如Visual Basic），但Delphi有如下的独到之处：
　　1）Delphi是真正面向对象的。其基于OO技术构建的VCL库中的所有组件都可以被继承以创建新的组件，包括窗体类TForm。相比之下，ActiveX组件缺乏这种灵活性。
　　2）Delphi的CodeInsight技术（即代码自动完成功能）是建立在编译器信息上的，而VB使用的是类型库信息，使用编译器信息的好处是更具灵活性。不过，时常有程序员抱怨Delphi的代码提示时间太长。其实，我个人感觉是习惯了其速度之后，能体会到一种节奏的快感。
语言的高效
　　Delphi基于Object Pascal语言。这是一种真正支持面向对象而又优雅美观的语言。其在功能的健全上毫不逊色于各种其它的面向对象的语言，但同时又不贪多，盲目地增加复杂性。使得开发者运用各种模式进行设计时都能得到完善的支持，实现时却不用考虑太多语言／编译器细节。
编译的高效
　　可以说，Delphi是Windows平台上最快的高级语言本地代码编译器了。编译速度快有什么好处呢？快速的编译器可以让你频繁地在修改代码和编译运行的状态间切换。至少，我自己已经非常习惯了这样的工作方式：运行程序看一下效果，退出程序修改少量代码再运行程序。而Delphi的编译器从来不会让我有等待的感觉。
执行的高效
　　Delphi不但编译速度快，生成的目标代码的执行效率也非常高。Delphi与C＋＋Builder使用的是同一个后端优化器，因此其生成的代码的效率与优秀的C++编译器生成的代码相同。
　　Delphi生成完全本地代码，因此Delphi编译结果的可执行文件可以被独立执行、分发（对于“绿色软件”的开发，这一点十分重要）。不需要其他运行库支持。当然，你也可以选择动态链接编译，这样可以大大减小可执行文件的长度，不过这种情况下在分发程序时，必须同时分发必要的运行库文件。
维护的高效
　　C++把许多决策权给了程序员，因此功能十分强大，但同时，要用C++写出出色的面向对象的代码，就要求程序员具有一定的素质。而Delphi程序员会在一定程度上被限制在VCL提供的框架中（当然，完全可以在Delphi中摆脱VCL编程），相对来说，更容易建立良好设计的代码。而Visual Basic则根本没有提供面向对象的编程机制（VB6.0及先前版本都是基于对象，而非面向对象）。代码框架的优良使得软件维护成本大大降低。
　　基于以上所有理由，我选择Delphi！
1.3 本书主题
　　我们平时都会写很多代码，为公司，为自己或者为朋友。有时，为了验证自己的一个想法，或学习某一个技术，会写一些试验性的代码。这样的代码的生命周期很短，基本不需要维护，随意写一下就可以。但是，当你真正要完成一个项目的时候，代码设计就非常重要。因为这样的代码是需要长期维护，不断修改或增强的。设计凌乱的代码会使得维护非常困难或者根本不可能，修改这样的代码意味着产生更多的 bug 或者就是灾难。
　　因此，代码在被编写之前，需要先被设计。这里所说的设计并不是指功能设计，而是指程序员在编码前先对代码框架的设计，以使得今后代码更容易被理解、被维护。
　　经常听到一种说法：程序员的程序寿命只有35岁。我却从不相信程序员的寿命只到35岁，也许35岁以后，实现能力（其实就是工匠能力）有下降的可能，而设计能力是随着经验的增加不降反升的。这才是最宝贵的。
　　国外的软件开发小组，一般的骨干都是40岁上下的人，那些才是大师级的程序员，而所谓的过了35岁就不能当程序员的程序员根本没有资格被称为程序员。
　　软件工程要将程序员变成编码员，变成流水线上的一环，设计工作由专门的设计师完成（如框架设计师）。也许，分工细化是趋势，但是，我们是满足于做编码员还是希望成长为设计师，取决于我们的眼光及努力。
　　放开眼光，而不是将自己局限于、沉迷于“实现高手”。实现能力是基础，有一定的实现能力才可能成长，但是，它只是必要条件，而不是充分的。否则，就象爬到山腰就以为自己到了山顶，停滞不前了。那么，你只可能是编码员，你的程序寿命也只到35岁。在有了这样的眼光之后，希望本书可以助您起步。
　　国内出版的Delphi相关书籍，基本都是讲解实现的。本书的书名是《Delphi高手突破》。那么，假设你现在已经是Delphi高手了。所以本书不会涉及太多的实现技巧，虽然也有实例代码，但重点在于其构架的设计，而并非实现。
　　至此，您也许已经猜出本书的主题了：如何在Delphi中使用面向对象技术，构建良好设计的代码。
　　在我看来，写代码是艺术创作。优雅的代码可以自解释，而不需要过多的注释。当注释过多的时候，就该考虑设计是否合理了。写书应该也是艺术创作，如果能把自己的认识、经验艺术地告诉读者，而不需要过多的“注释”（浪费篇幅的废话），就非常成功了。我希望自己能做到，至少尽量吧。
1.4 小结
　　我相信，走上编程这条路，对于我来说是必然的。能成为专业程序员，也是我所梦想并实现了的。但是，Delphi的出现以及被我所认识、熟悉、迷恋并成为工作的一部分，应该说是一个意外的惊喜。
　　在此，我所想说的就是，对于自己的坚持，就更坚持一些吧。当你清醒地定位了自己之后，清楚地知道自己所选择的道路之后，就不用有所疑问、有所顾忌了，坚持走下去。最终虽然未必会成功（当然，每个人对成功的定义是不一样的），但爱我所爱，无怨无悔！
　
以上内容，未经许可，不得擅自转载、传播！
]]></description>
			<content:encoded><![CDATA[<p><P>　　简单性是这个世界上最难获得的东西：它是经验的最终界限，也是天才的最终努力目标。——George Sand</P>
<P>　　您已经是一位熟练的Delphi程序员，可以运用Delphi快速地写出一个漂亮、实用的程序；您热爱Delphi；她已经成了您工作、学习中不可或缺的一部分。我假设这些都为真，那么您当初选择Delphi作为自己的首选开发工具一定有自己的理由或者原因。</P>
<P>　　至少，我自己是符合以上的所有假设的。现在，我所想和您分享的，正是我选择Delphi的理由及原因，以及我对Delphi的认识。您可以把我看作一个拥护Delphi的狂热分子，虽然那样会让我感到您把我看得太过肤浅，我并不承认，但是我不介意。因为，我真的热爱她。</P>
<P>　　第一次接触的Delphi的版本是3.0，那时候只不过把它当作Visual Basic一样的RAD工具来用而已。但是，随着时间的流逝，Delphi 3、Delphi 4、Delphi 5、Delphi 6以及Kylix，对Delphi的认识也越来越深。它是有着丰富内涵的工具，让人对她越了解，就越对她迷恋，越感觉离不开她，虽然它也还只是工具。</P>
<P>　　Pascal是一种讲究程序美学的语言——毫无疑问，Pascal代码是最优美的代码——基于Object Pascal（一种支持面向对象的Pascal语言）的Delphi让这种美达到了极至。</P>
<P>　　现在，你可以打开Delphi，选择“Help”－“About”菜单，出现About窗口后，按住Alt键，同时顺序键入“team”，你看到了什么？是的，Delphi开发人员名单，让我们感谢他们制造出如此的更象艺术品的开发工具吧！</P>
<P>1.1 开发工具“以人为本”论</P>
<P>　　经常可以在各个编程论坛上看到类似这样的问题：“VB还有没有前途？”；“Delphi是不是要淘汰了？”；“MFC是不是要被.NET取代了？”……其实，这些问题在被提出的当时，是没有人能给出答案的。因为一种技术、一个产品的前途，并不完全由其本身所能左右，还与市场需求、出品公司的发展方向等因素有关。而我们所应该关注的，是否就是这些问题的答案呢？我认为不是。</P>
<P>　　我们知道，世间万物由原子组成；千变万化的程序归根结底由顺序、循环、分支三种结构构成；无论VC的MFC，还是Delphi的VCL，都是由面向对象技术构建的（暂且不论其面向对象的程度）。当你拨开事物表面的表象后，你看到的，是相同的或近似的本质！而掌握了本质之后，就会发现表象的表现形式是那么的理所当然。试想，当你能象侯捷（《深入浅出MFC》的作者）那样把MFC剥得体无完肤，你还会担心MFC被某某框架所取代吗？从这个角度来说，对于一名专业程序员，编程的理念是万变不离其宗的。发现问题、分析问题、解决问题的过程是存在着某种模式的，当你掌握了这种模式后，不同的编程语言，不同的开发环境对你来说，是有共通之处的。</P>
<P>　　我认为C++是每个专业程序员所必须掌握的。当然，并不是说单纯学习其语法（甚至可以忽略一些语法的学习），而是通过C++学习面向对象的设计、编程方法。因为C++博大精深，因为C++无所不及。在C++中，你可以学习到面向对象理论的全部，学习之后，你会被C++所改造。因为在面向对象理论中存在的，但有所争议的特性（比如：多重继承）在C++中都得到支持。你只有在掌握之后，才可能作出自己的选择（支持或反对）。在掌握了面向对象的理论之后，无论C++、Object Pascal或是Java乃至C#，你会感觉到它们的异曲同工之处。</P>
<P>　　那是否就是说开发工具（或许应该称为集成开发环境，不过下文还是按我的习惯，用开发工具来称呼）之间除了支持的语言不同外，不存在其他差异了？当然也不是。开发工具是帮助你实现你的理念的工具，也就是构建在基础理念上的上层建筑。开发工具对于你所要实现的理念的支持程度以及对实现过程的简化程度，就是开发工具的体贴度了。开发工具于程序员，犹如兵器于士兵，兵器不顺手，未战先败一半。</P>
<P>　　一直很喜欢诺基亚手机的广告词：科技以人为本！是的，“人”才是本，工具的使命是辅助人更快、更容易地达到目的。因此，开发工具也应该以人为本！</P>
<P>　　作为一名程序员，作为开发工具的最直接的使用者，我希望我所使用的开发工具真正是我的伙伴、助手，它能给我带来自由的感觉，让我自由地在代码的世界中驰骋，它能迁就我、适应我，而不是相反，给我套上枷锁！</P>
<P>　　如今在Windows平台上，有许许多多的开发工具可以选择：Visual C++、Visual Basic、Delphi、C++ Builder、JBuilder……它们基于不同的编程语言、忠于不同的公司的产品理念，从这个角度来说，它们之间的差异是非常大的。</P>
<P>　　那什么样的开发工具才是优秀的、体贴的、以人为本的？我的标准是符合以下四点：</P>
<P>1、能够将要解决的问题简化，并以某种理念快速实现之</P>
<P>2、不隐藏任何你想知道的细节</P>
<P>3、可以忽略你所不想知道的细节</P>
<P>4、主动去适应不同层次的程序员</P>
<P>　　符合以上四点的开发工具有吗？我的答案是：有！那就是Delphi！她将一切化繁为简，却从不阻止我寻求真实。你可以在她给你构造的简化了的VCL的虚拟世界中完成任务。也可以钻进VCL的世界以探询她和现实世界（即Windows平台的真实接口）的映射关系，学习它的Framework的设计。你还可以扩展那个虚拟的VCL世界以适应自己的需要。</P>
<P>　　我为存在着这样的开发工具而感到幸运，更为幸运的是，我可以选择她，和她一起完成我的工作！（现实中，项目中使用什么编程语言、开发工具，时常并不是你个人所能左右的，会受很多因素制约。比如：客户的硬件环境、操作系统环境，开发环境，开发工具的成本、许可证等等。因此能选择自己喜欢的开发工具进行开发工作实在是很幸运的了。）</P>
<P>　　通过C++学习面向对象的理念，用Delphi去解决现实世界的问题，这是我的做法。同时也验证了那句话：学从难处学，用从易处用。</P>
<P>　　真正的程序员用C++，聪明的程序员用Delphi。那么，真正聪明的程序员用C++来理解Delphi！</P>
<P>1.2 Delphi更多的优势</P>
<P>　　用过很多的主流开发工具，为什么还是选择了Delphi？也许是因为没有深入地去熟悉其它开发工具吧，但Delphi本身的优秀至少是原因之一！Delphi优秀在何处？</P>
<P>开发的高效</P>
<P>　　Delphi是一个RAD（Rapid Application Development 快速开发工具），它有可视化的开发环境，当然具有类似功能的开发工具也不少（如Visual Basic），但Delphi有如下的独到之处：</P>
<P>　　1）Delphi是真正面向对象的。其基于OO技术构建的VCL库中的所有组件都可以被继承以创建新的组件，包括窗体类TForm。相比之下，ActiveX组件缺乏这种灵活性。</P>
<P>　　2）Delphi的CodeInsight技术（即代码自动完成功能）是建立在编译器信息上的，而VB使用的是类型库信息，使用编译器信息的好处是更具灵活性。不过，时常有程序员抱怨Delphi的代码提示时间太长。其实，我个人感觉是习惯了其速度之后，能体会到一种节奏的快感。</P>
<P>语言的高效</P>
<P>　　Delphi基于Object Pascal语言。这是一种真正支持面向对象而又优雅美观的语言。其在功能的健全上毫不逊色于各种其它的面向对象的语言，但同时又不贪多，盲目地增加复杂性。使得开发者运用各种模式进行设计时都能得到完善的支持，实现时却不用考虑太多语言／编译器细节。</P>
<P>编译的高效</P>
<P>　　可以说，Delphi是Windows平台上最快的高级语言本地代码编译器了。编译速度快有什么好处呢？快速的编译器可以让你频繁地在修改代码和编译运行的状态间切换。至少，我自己已经非常习惯了这样的工作方式：运行程序看一下效果，退出程序修改少量代码再运行程序。而Delphi的编译器从来不会让我有等待的感觉。</P>
<P>执行的高效</P>
<P>　　Delphi不但编译速度快，生成的目标代码的执行效率也非常高。Delphi与C＋＋Builder使用的是同一个后端优化器，因此其生成的代码的效率与优秀的C++编译器生成的代码相同。</P>
<P>　　Delphi生成完全本地代码，因此Delphi编译结果的可执行文件可以被独立执行、分发（对于“绿色软件”的开发，这一点十分重要）。不需要其他运行库支持。当然，你也可以选择动态链接编译，这样可以大大减小可执行文件的长度，不过这种情况下在分发程序时，必须同时分发必要的运行库文件。</P>
<P>维护的高效</P>
<P>　　C++把许多决策权给了程序员，因此功能十分强大，但同时，要用C++写出出色的面向对象的代码，就要求程序员具有一定的素质。而Delphi程序员会在一定程度上被限制在VCL提供的框架中（当然，完全可以在Delphi中摆脱VCL编程），相对来说，更容易建立良好设计的代码。而Visual Basic则根本没有提供面向对象的编程机制（VB6.0及先前版本都是基于对象，而非面向对象）。代码框架的优良使得软件维护成本大大降低。</P>
<P>　　基于以上所有理由，我选择Delphi！</P>
<P>1.3 本书主题</P>
<P>　　我们平时都会写很多代码，为公司，为自己或者为朋友。有时，为了验证自己的一个想法，或学习某一个技术，会写一些试验性的代码。这样的代码的生命周期很短，基本不需要维护，随意写一下就可以。但是，当你真正要完成一个项目的时候，代码设计就非常重要。因为这样的代码是需要长期维护，不断修改或增强的。设计凌乱的代码会使得维护非常困难或者根本不可能，修改这样的代码意味着产生更多的 bug 或者就是灾难。</P>
<P>　　因此，代码在被编写之前，需要先被设计。这里所说的设计并不是指功能设计，而是指程序员在编码前先对代码框架的设计，以使得今后代码更容易被理解、被维护。</P>
<P>　　经常听到一种说法：程序员的程序寿命只有35岁。我却从不相信程序员的寿命只到35岁，也许35岁以后，实现能力（其实就是工匠能力）有下降的可能，而设计能力是随着经验的增加不降反升的。这才是最宝贵的。</P>
<P>　　国外的软件开发小组，一般的骨干都是40岁上下的人，那些才是大师级的程序员，而所谓的过了35岁就不能当程序员的程序员根本没有资格被称为程序员。</P>
<P>　　软件工程要将程序员变成编码员，变成流水线上的一环，设计工作由专门的设计师完成（如框架设计师）。也许，分工细化是趋势，但是，我们是满足于做编码员还是希望成长为设计师，取决于我们的眼光及努力。</P>
<P>　　放开眼光，而不是将自己局限于、沉迷于“实现高手”。实现能力是基础，有一定的实现能力才可能成长，但是，它只是必要条件，而不是充分的。否则，就象爬到山腰就以为自己到了山顶，停滞不前了。那么，你只可能是编码员，你的程序寿命也只到35岁。在有了这样的眼光之后，希望本书可以助您起步。</P>
<P>　　国内出版的Delphi相关书籍，基本都是讲解实现的。本书的书名是《Delphi高手突破》。那么，假设你现在已经是Delphi高手了。所以本书不会涉及太多的实现技巧，虽然也有实例代码，但重点在于其构架的设计，而并非实现。</P>
<P>　　至此，您也许已经猜出本书的主题了：如何在Delphi中使用面向对象技术，构建良好设计的代码。</P>
<P>　　在我看来，写代码是艺术创作。优雅的代码可以自解释，而不需要过多的注释。当注释过多的时候，就该考虑设计是否合理了。写书应该也是艺术创作，如果能把自己的认识、经验艺术地告诉读者，而不需要过多的“注释”（浪费篇幅的废话），就非常成功了。我希望自己能做到，至少尽量吧。</P>
<P>1.4 小结</P>
<P>　　我相信，走上编程这条路，对于我来说是必然的。能成为专业程序员，也是我所梦想并实现了的。但是，Delphi的出现以及被我所认识、熟悉、迷恋并成为工作的一部分，应该说是一个意外的惊喜。</P>
<P>　　在此，我所想说的就是，对于自己的坚持，就更坚持一些吧。当你清醒地定位了自己之后，清楚地知道自己所选择的道路之后，就不用有所疑问、有所顾忌了，坚持走下去。最终虽然未必会成功（当然，每个人对成功的定义是不一样的），但爱我所爱，无怨无悔！</P>
<P>　</P>
<P>以上内容，未经许可，不得擅自转载、传播！</P></p>
]]></content:encoded>
			<wfw:commentRss>http://nicrosoft.net/?feed=rss2&amp;p=25</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>第0章 引言——关于本书</title>
		<link>http://nicrosoft.net/?p=24</link>
		<comments>http://nicrosoft.net/?p=24#comments</comments>
		<pubDate>Wed, 10 Mar 2004 13:38:52 +0000</pubDate>
		<dc:creator>nicrosoft</dc:creator>
				<category><![CDATA[我的书]]></category>

		<guid isPermaLink="false">http://esan.cn/?24</guid>
		<description><![CDATA[　　感谢您阅读本书！
　　本书是写给程序员的，更确切说，是写给Delphi程序员的，再确切些，是写给已经有了一定的实现能力而欲求寻找一种“突破”的Delphi程序员的。
　　作者本人，在接触了两年的Delphi之后，曾经迷茫过。我可以写各种各样的程序，我懂得VCL大多数组件的用法，我知道应该调用哪个Windows API来完成我要的功能……但时常会疑惑：这就是写程序了？那时候在大学里读书，课余时间很多，每天就不停地写，写各种程序：包括课堂的作业、在网上发布的免费软件以及接到的开发项目。每天都写代码，有了Delphi的help和MSDN，似乎不会有什么困难，只是偶尔会觉得单调。不禁又问自己：这就是写程序了？
　　我迷茫，是因为我感到，写程序不应该是件单调的事情；我迷茫，是因为自己总在寻求却始终没有找到一种“突破”的感觉；我迷茫，是因为我想成为“高手”却不知道如何去做……
　　我有很多理由喜欢Delphi，但是应该说，那时正是Delphi的RAD开发方式让我陷入迷茫。当时我迷惑于RAD使人能力退化还是一种革命性的进步，相信很多Delphi程序员都会和我有一样的经历。
　　我很幸运，就在我迷茫的时候，认识了我的同学Lythm，受其影响，我开始涉猎面向对象编程类的书籍。从《Thinking in C++》到《C++面向对象高效编程》、从《Inside C++ Object Modal》到《设计模式》……然而，我一直在寻找却始终没有找到一本完整的以Delphi／Object Pascal来讲述面向对象编程方法学的书，其间只有一本Charlie Calvert的《Delphi 4 Unleashed》赢得了我的欢心，其中关于多态的描述非常的精彩，只可惜相关篇幅太少。
　　即便如此，我仍然感到找到了方向，于是就暂时放下手中的键盘，钻研起理论。这段时期已经不会再感到迷茫，取而代之的是一种自身能感受到的“突破”的感觉。工作后，更得以有机会将自己所学习的东西应用于实际开发之中，并不断修正自己头脑中的理论体系。
　　你是否曾经或正在经历我曾经的迷茫呢？　　如果是，那么我想这本书应该是你所正在寻找的，因为我所要写的，就是一本我自己梦寐以求在寻找的书。一本以Delphi／Object Pascal来讲述面向对象编程方法学、代码设计方法的书。
　　我希望您和我一样幸运，不！您比我更幸运，因为您比我多了这本书。
　　本书的书名是《Delphi高手突破》，我并没有任何文字暗示自己已经成为“高手”，所谓“高手突破”的解释并不是高手来帮助你突破。写这样一本书，我只是希望能把自己的“突破”的感觉与经验和大家共享，同时，它也是我对前一段时间学习的一个总结。
　　我很喜欢这本书的英文名称，是我自己起的，我愿意将它叫作《Design in Delphi》，不过请原谅我无法用中文准确地、优美地将它表述出来。
0.1 这本书没有什么？
　　这是本特殊的Delphi编程方面的书，它不会教你如何使用Delphi，也不会教你如何使用类似TListBox那样的组件，更不会涉及诸如多线程、DLL、API等Windows编程的内容，也没有热门的COM／DCOM、Web Service。
0.2 这本书有什么？
　　这本书会告诉你面向对象编程的基础理论，会给你剖析VCL的部分源码，会告诉你在你开始敲键盘写代码之前应该做什么，怎样使你的代码的构架被更良好的设计以致于更容易被维护和修改。
0.3 这本书还没有什么？
　　看起来，这是一本更侧重于讲设计的书。请不要误会，这本书还不会教你关于面向对象分析／设计（OOA／OOD）的内容，更没有UML。
0.4 这本书究竟有什么？
　　就本质来说，这本书只讲OOP，当然，是用Delphi作为载体，因为它是写给Delphi程序员的。其中有设计的内容，但仅限于代码设计。本书末尾会有一章就一个实例向你展示代码构架设计的一种可能的方式，但此方式并不是唯一的。实例不需要被照搬，而需要领会。
0.5 本书章节介绍
　　本书第1、2、3章介绍OOP的知识基础，基本上所有的编程语言的书都会有这样的内容，但本书一定会带给你不同的感觉。第4、5章介绍VCL相关的知识。其中第4章为你剖析部分VCL的核心组件源码，第5章介绍定制、设计组件的方法。第6、7章介绍程序构架设计。第6章介绍一般性的代码设计准则，其内容可以完全脱离Delphi，因为这些准则是跨语言的。第7章为一个完整的代码设计实例，以编写一个多工作区的文本编辑器为例，从实践角度说明程序构架设计的方法。
0.6 本书的支持网页
　　本书的支持网页为：http://www.sunistudio.com/nicrosoft/book/did/　　作者Email：nicrosoft@sunistudio.com
　　希望你喜欢本书以及它的作者——我！谢谢。
0.7 感谢
　　在此，我要感谢为这本书的诞生给予过我帮助的人们。
　　首先，我要感谢我的女友Esan，在我的写作过程中，她一直陪伴在我身边，不断地给我鼓励和支持，使我得以最终完成写作。
　　其次，我要感谢我的同事兼拍档唐沐，是他为本书的每一章创作并提供了精美而有趣而又富有创意的插图，使得本书更富有一些活泼的气氛。
　　再次，我要感谢CSDN以及大富翁论坛的热心网友们，当我在网络上发表了本书的一些预览节选后，他们给予我许多宝贵的意见和建议。
　　最后，我要感谢清华大学出版社的朱英彪编辑，他的宽容和给予我的帮助使得我们的合作非常愉快，也使得本书能够顺利完成及出版。
申 旻　　.2002年7月于珠海
以上内容，未经许可，不得擅自转载、传播！
]]></description>
			<content:encoded><![CDATA[<p><P>　　感谢您阅读本书！</P>
<P>　　本书是写给程序员的，更确切说，是写给Delphi程序员的，再确切些，是写给已经有了一定的实现能力而欲求寻找一种“突破”的Delphi程序员的。</P>
<P>　　作者本人，在接触了两年的Delphi之后，曾经迷茫过。我可以写各种各样的程序，我懂得VCL大多数组件的用法，我知道应该调用哪个Windows API来完成我要的功能……但时常会疑惑：这就是写程序了？那时候在大学里读书，课余时间很多，每天就不停地写，写各种程序：包括课堂的作业、在网上发布的免费软件以及接到的开发项目。每天都写代码，有了Delphi的help和MSDN，似乎不会有什么困难，只是偶尔会觉得单调。不禁又问自己：这就是写程序了？</P>
<P>　　我迷茫，是因为我感到，写程序不应该是件单调的事情；我迷茫，是因为自己总在寻求却始终没有找到一种“突破”的感觉；我迷茫，是因为我想成为“高手”却不知道如何去做……</P>
<P>　　我有很多理由喜欢Delphi，但是应该说，那时正是Delphi的RAD开发方式让我陷入迷茫。当时我迷惑于RAD使人能力退化还是一种革命性的进步，相信很多Delphi程序员都会和我有一样的经历。</P>
<P>　　我很幸运，就在我迷茫的时候，认识了我的同学Lythm，受其影响，我开始涉猎面向对象编程类的书籍。从《Thinking in C++》到《C++面向对象高效编程》、从《Inside C++ Object Modal》到《设计模式》……然而，我一直在寻找却始终没有找到一本完整的以Delphi／Object Pascal来讲述面向对象编程方法学的书，其间只有一本Charlie Calvert的《Delphi 4 Unleashed》赢得了我的欢心，其中关于多态的描述非常的精彩，只可惜相关篇幅太少。</P>
<P>　　即便如此，我仍然感到找到了方向，于是就暂时放下手中的键盘，钻研起理论。这段时期已经不会再感到迷茫，取而代之的是一种自身能感受到的“突破”的感觉。工作后，更得以有机会将自己所学习的东西应用于实际开发之中，并不断修正自己头脑中的理论体系。</P>
<P>　　你是否曾经或正在经历我曾经的迷茫呢？<BR>　　如果是，那么我想这本书应该是你所正在寻找的，因为我所要写的，就是一本我自己梦寐以求在寻找的书。一本以Delphi／Object Pascal来讲述面向对象编程方法学、代码设计方法的书。</P>
<P>　　我希望您和我一样幸运，不！您比我更幸运，因为您比我多了这本书。</P>
<P>　　本书的书名是《Delphi高手突破》，我并没有任何文字暗示自己已经成为“高手”，所谓“高手突破”的解释并不是高手来帮助你突破。写这样一本书，我只是希望能把自己的“突破”的感觉与经验和大家共享，同时，它也是我对前一段时间学习的一个总结。</P>
<P>　　我很喜欢这本书的英文名称，是我自己起的，我愿意将它叫作《Design in Delphi》，不过请原谅我无法用中文准确地、优美地将它表述出来。</P>
<P>0.1 这本书没有什么？</P>
<P>　　这是本特殊的Delphi编程方面的书，它不会教你如何使用Delphi，也不会教你如何使用类似TListBox那样的组件，更不会涉及诸如多线程、DLL、API等Windows编程的内容，也没有热门的COM／DCOM、Web Service。</P>
<P>0.2 这本书有什么？</P>
<P>　　这本书会告诉你面向对象编程的基础理论，会给你剖析VCL的部分源码，会告诉你在你开始敲键盘写代码之前应该做什么，怎样使你的代码的构架被更良好的设计以致于更容易被维护和修改。</P>
<P>0.3 这本书还没有什么？</P>
<P>　　看起来，这是一本更侧重于讲设计的书。请不要误会，这本书还不会教你关于面向对象分析／设计（OOA／OOD）的内容，更没有UML。</P>
<P>0.4 这本书究竟有什么？</P>
<P>　　就本质来说，这本书只讲OOP，当然，是用Delphi作为载体，因为它是写给Delphi程序员的。其中有设计的内容，但仅限于代码设计。本书末尾会有一章就一个实例向你展示代码构架设计的一种可能的方式，但此方式并不是唯一的。实例不需要被照搬，而需要领会。</P>
<P>0.5 本书章节介绍</P>
<P>　　本书第1、2、3章介绍OOP的知识基础，基本上所有的编程语言的书都会有这样的内容，但本书一定会带给你不同的感觉。<BR>第4、5章介绍VCL相关的知识。其中第4章为你剖析部分VCL的核心组件源码，第5章介绍定制、设计组件的方法。<BR>第6、7章介绍程序构架设计。第6章介绍一般性的代码设计准则，其内容可以完全脱离Delphi，因为这些准则是跨语言的。第7章为一个完整的代码设计实例，以编写一个多工作区的文本编辑器为例，从实践角度说明程序构架设计的方法。</P>
<P>0.6 本书的支持网页</P>
<P>　　本书的支持网页为：<A href="http://www.sunistudio.com/nicrosoft/book/did/">http://www.sunistudio.com/nicrosoft/book/did/</A><BR>　　作者Email：<A href="mailto:nicrosoft@sunistudio.com">nicrosoft@sunistudio.com</A></P>
<P>　　希望你喜欢本书以及它的作者——我！谢谢。</P>
<P>0.7 感谢</P>
<P>　　在此，我要感谢为这本书的诞生给予过我帮助的人们。</P>
<P>　　首先，我要感谢我的女友Esan，在我的写作过程中，她一直陪伴在我身边，不断地给我鼓励和支持，使我得以最终完成写作。</P>
<P>　　其次，我要感谢我的同事兼拍档唐沐，是他为本书的每一章创作并提供了精美而有趣而又富有创意的插图，使得本书更富有一些活泼的气氛。</P>
<P>　　再次，我要感谢CSDN以及大富翁论坛的热心网友们，当我在网络上发表了本书的一些预览节选后，他们给予我许多宝贵的意见和建议。</P>
<P>　　最后，我要感谢清华大学出版社的朱英彪编辑，他的宽容和给予我的帮助使得我们的合作非常愉快，也使得本书能够顺利完成及出版。</P>
<P>申 旻　　.<BR>2002年7月于珠海</P>
<P>以上内容，未经许可，不得擅自转载、传播！</P></p>
]]></content:encoded>
			<wfw:commentRss>http://nicrosoft.net/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>目录</title>
		<link>http://nicrosoft.net/?p=23</link>
		<comments>http://nicrosoft.net/?p=23#comments</comments>
		<pubDate>Wed, 10 Mar 2004 13:37:49 +0000</pubDate>
		<dc:creator>nicrosoft</dc:creator>
				<category><![CDATA[我的书]]></category>

		<guid isPermaLink="false">http://esan.cn/?23</guid>
		<description><![CDATA[　　第0章 引言&#8211;关于本书　　　　0.1 这本书没有什么？　　　　0.2 这本书有什么？　　　　0.3 这本书还没有什么？　　　　0.4 这本书究竟有什么？　　　　0.5 本书章节介绍　　　　0.6 本书的支持网页　　　　0.7 感谢第1篇 DELPHI 与OOP　　第1章 重新认识DELPHI　　　　1.1 开发工具&#8221;以人为本&#8221;论　　　　1.2 Delphi更多的优势　　　　1.3 本书主题　　　　1.4 小结　　第2章 面向对象编程理论基础　　　　2.1 类和对象的本质　　　　2.2 封装　　　　2.3 继承的本质　　　　　　2.4 多态的本质　　　　2.5 小结　　第3章 异常及错误处理　　　　3.1 异常的本质　　　　3.2 创建自己的异常类　　　　3.3 try…finally　　　　3.4 构造函数与异常　　　　3.5 小结第2篇 VCL与组件　　第4章 VCL库　　　　4.1 VCL概貌　　　　4.2 TObject与消息分发　　　　4.3 TControl与Windows消息的封装　　　　4.4 TApplication与主消息循环　　　　4.5 TPersistent与对象赋值　　　　4.6 TComponent与对象持久　　　　4.7 TCanvas与Windows GDI　　　　4.8 TGraphicControl／TCustomControl与画布（Canvas）　　　　4.9 TCustomPanel与窗口重绘　　　　4.10 TCustomForm与模态窗口　　　　4.11 小结　　第5章 扩展VCL库　　　　5.1 组件基础　　　　5.2 扩展现有组件　　　　5.3 定制组件　　　　5.4 光盘上的组件以及演示程序代码　　　　5.5 小结第3篇 OOP与代码设计　　第6章 代码设计基础　　　　6.1 创建良好设计的代码　　　　6.2 使用OOP进行代码设计　　　　6.3 小结　　第7章 代码设计实例&#8211;SUNNY SMARTNOTE　　　　7.1 [...]]]></description>
			<content:encoded><![CDATA[<p>　　第0章 引言&#8211;关于本书<BR>　　　　0.1 这本书没有什么？<BR>　　　　0.2 这本书有什么？<BR>　　　　0.3 这本书还没有什么？<BR>　　　　0.4 这本书究竟有什么？<BR>　　　　0.5 本书章节介绍<BR>　　　　0.6 本书的支持网页<BR>　　　　0.7 感谢<BR>第1篇 DELPHI 与OOP<BR>　　第1章 重新认识DELPHI<BR>　　　　1.1 开发工具&#8221;以人为本&#8221;论<BR>　　　　1.2 Delphi更多的优势<BR>　　　　1.3 本书主题<BR>　　　　1.4 小结<BR>　　第2章 面向对象编程理论基础<BR>　　　　2.1 类和对象的本质<BR>　　　　2.2 封装<BR>　　　　2.3 继承的本质　　<BR>　　　　2.4 多态的本质<BR>　　　　2.5 小结<BR>　　第3章 异常及错误处理<BR>　　　　3.1 异常的本质<BR>　　　　3.2 创建自己的异常类<BR>　　　　3.3 try…finally<BR>　　　　3.4 构造函数与异常<BR>　　　　3.5 小结<BR>第2篇 VCL与组件<BR>　　第4章 VCL库<BR>　　　　4.1 VCL概貌<BR>　　　　4.2 TObject与消息分发<BR>　　　　4.3 TControl与Windows消息的封装<BR>　　　　4.4 TApplication与主消息循环<BR>　　　　4.5 TPersistent与对象赋值<BR>　　　　4.6 TComponent与对象持久<BR>　　　　4.7 TCanvas与Windows GDI<BR>　　　　4.8 TGraphicControl／TCustomControl与画布（Canvas）<BR>　　　　4.9 TCustomPanel与窗口重绘<BR>　　　　4.10 TCustomForm与模态窗口<BR>　　　　4.11 小结<BR>　　第5章 扩展VCL库<BR>　　　　5.1 组件基础<BR>　　　　5.2 扩展现有组件<BR>　　　　5.3 定制组件<BR>　　　　5.4 光盘上的组件以及演示程序代码<BR>　　　　5.5 小结<BR>第3篇 OOP与代码设计<BR>　　第6章 代码设计基础<BR>　　　　6.1 创建良好设计的代码<BR>　　　　6.2 使用OOP进行代码设计<BR>　　　　6.3 小结<BR>　　第7章 代码设计实例&#8211;SUNNY SMARTNOTE<BR>　　　　7.1 需求概述与代码风格说明<BR>　　　　7.2 IssnEditor／TssnEditor／TssnWorkSpace<BR>　　　　7.3 TssnWorkSpaceMgr／TssnWorkSpace<BR>　　　　7.4 构造器TssnEditorCtor／TssnWorkSpaceMgrCtor<BR>　　　　7.5 事件委托TssnEditorEvent／TssnWorkSpaceEvent<BR>　　　　7.6 其它模块<BR>　　　　7.7 光盘上的代码说明<BR>　　　　7.8 小结<BR>附录<BR>　　浅谈OBJECT PASCAL的指针<BR>　　RAD与non-RAD<BR>后记</p>
]]></content:encoded>
			<wfw:commentRss>http://nicrosoft.net/?feed=rss2&amp;p=23</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>勘误表</title>
		<link>http://nicrosoft.net/?p=21</link>
		<comments>http://nicrosoft.net/?p=21#comments</comments>
		<pubDate>Wed, 10 Mar 2004 13:35:54 +0000</pubDate>
		<dc:creator>nicrosoft</dc:creator>
				<category><![CDATA[我的书]]></category>

		<guid isPermaLink="false">http://esan.cn/?21</guid>
		<description><![CDATA[　　1、第36页代码：“TPersion = class”应该改为“TPerson = class”
　　2、第44页第9行：“可以定位到TCopter.fly()的地非曲直址”，应该改为“可以定位到TCopter.fly()的地址”
　　3、第66页第19行 “因为带领读者它们同样是用代码铸造成的”，应该改为“因为他们同样是用代码铸造成的”
　　4、第128页代码：“FDropFile: TMyNotifyEvent;”应该改为“FDropFile: TMyNotifyEvent: TDropFileNotifyEvent;”
　　5、第128页代码：“property OnDropFiles: TMyNotifyEvent read FDropFile write FDropFile;”应该为“property OnDropFiles: TDropFileNotifyEvent read FDropFile write FDropFile;”
　　6、第129页代码：“FEnabled := Enabled;”应该为“FEnabled := bEnabled;”
　　7、第192页代码中：“if frMatchCase in Option then”应该为“if not frMatchCase in Option then”
　　8、第193页下代码中：“if frMatchCase in Option then”应该为“if not frMatchCase in Option then”　
以上内容，未经许可，不得擅自转载、传播！
]]></description>
			<content:encoded><![CDATA[<p><P>　　1、第36页代码：“TPersion = class”应该改为“TPerson = class”</P>
<P>　　2、第44页第9行：“可以定位到TCopter.fly()的地非曲直址”，应该改为“可以定位到TCopter.fly()的地址”</P>
<P>　　3、第66页第19行 “因为带领读者它们同样是用代码铸造成的”，应该改为“因为他们同样是用代码铸造成的”</P>
<P>　　4、第128页代码：“FDropFile: TMyNotifyEvent;”应该改为“FDropFile: TMyNotifyEvent: TDropFileNotifyEvent;”</P>
<P>　　5、第128页代码：“property OnDropFiles: TMyNotifyEvent read FDropFile write FDropFile;”应该为“property OnDropFiles: TDropFileNotifyEvent read FDropFile write FDropFile;”</P>
<P>　　6、第129页代码：“FEnabled := Enabled;”应该为“FEnabled := bEnabled;”</P>
<P>　　7、第192页代码中：“if frMatchCase in Option then”应该为“if not frMatchCase in Option then”</P>
<P>　　8、第193页下代码中：“if frMatchCase in Option then”应该为“if not frMatchCase in Option then”<BR>　</P>
<P>以上内容，未经许可，不得擅自转载、传播！</P></p>
]]></content:encoded>
			<wfw:commentRss>http://nicrosoft.net/?feed=rss2&amp;p=21</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>随书光盘下载</title>
		<link>http://nicrosoft.net/?p=20</link>
		<comments>http://nicrosoft.net/?p=20#comments</comments>
		<pubDate>Wed, 10 Mar 2004 13:25:50 +0000</pubDate>
		<dc:creator>nicrosoft</dc:creator>
				<category><![CDATA[我的书]]></category>

		<guid isPermaLink="false">http://esan.cn/?20</guid>
		<description><![CDATA[点击下载
]]></description>
			<content:encoded><![CDATA[<p><a href="wp-content/uploads/2010/02/ea_2004310133122.zip">点击下载</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nicrosoft.net/?feed=rss2&amp;p=20</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《Delphi高手突破－－Design in Delphi》</title>
		<link>http://nicrosoft.net/?p=19</link>
		<comments>http://nicrosoft.net/?p=19#comments</comments>
		<pubDate>Wed, 10 Mar 2004 13:25:03 +0000</pubDate>
		<dc:creator>nicrosoft</dc:creator>
				<category><![CDATA[我的书]]></category>

		<guid isPermaLink="false">http://esan.cn/?19</guid>
		<description><![CDATA[　　很幸运，得到一次出书的机会，能将自己的Delphi编程经验分享给众多的人。同时，也是对自己之前的一段时间的学习的总结。
　　书名是《Delphi高手突破》， 我给她起了一个我喜欢的英文名《Design in Delphi》。
　　另外，我为这本书建立了一个读者论坛，欢迎读者交流和反馈
http://www.sunistudio.com/nicrosoft/List.Asp?ClassID=5&#38;NClassID=8
]]></description>
			<content:encoded><![CDATA[<p><P>　　很幸运，得到一次出书的机会，能将自己的Delphi编程经验分享给众多的人。同时，也是对自己之前的一段时间的学习的总结。</P>
<P>　　书名是《Delphi高手突破》， 我给她起了一个我喜欢的英文名《Design in Delphi》。</P>
<P>　　另外，我为这本书建立了一个读者论坛，欢迎读者交流和反馈</P>
<P><A href="http://www.sunistudio.com/nicrosoft/List.Asp?ClassID=5&amp;NClassID=8">http://www.sunistudio.com/nicrosoft/List.Asp?ClassID=5&amp;NClassID=8</A></P></p>
]]></content:encoded>
			<wfw:commentRss>http://nicrosoft.net/?feed=rss2&amp;p=19</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
