Delphi 高手突破
申 旻 著
清 华 大 学 出 版 社
申旻
Digitally signed by 申旻
DN: CN = 申旻, C =
CN
Reason: I am the author
of this document
Location: http://www.
sunistudio.com/
nicrosoft/
Date: 2004.08.11
05:31:39 +08'00'
(京)新登字 158 号
内 容 简 介
本书以理论结合实践的方式,论述“如何在 Delphi 中使用面向对象编程方法,构建良好设计的程序”
的主题。本书第 1、2、3 章以不同于一般书籍的方式,介绍面向对象编程的基础知识及其在 Object Pascal
中的语言实现。第 4、5 章介绍 VCL 库的相关知识,其中第 4 章为您剖析部分 VCL 的核心组件源码,第
5 章介绍定制、设计组件的方法。第 6、7 章介绍程序构架设计,其中第 6 章介绍一般性的代码设计准则,
其内容可以完全脱离 Delphi,因为这些准则是跨语言的;第 7 章是一个完整的代码设计实例,以编写一个
多工作区的文本编辑器为例,从实践角度说明程序构架设计的方法。
本书面向 Delphi 程序员,特别是写给那些已经具有一定的实现能力而欲求寻找一种“突破”的 Delphi
程序员,作为他们提高的参考用书,同时也可以作为高校学生以及程序爱好者的参考用书。
版权所有,翻印必究。
本书封面贴有清华大学出版社激光防伪标签,无标签者不得销售。
书 名:Delphi 高手突破
作 者:申 旻 编著
出 版 者:清华大学出版社(北京清华大学学研大厦,邮编 100084)
http://www.tup.tsinghua.edu.cn
责任编辑:朱英彪
印 刷 者:国防工业出版社印刷厂
发 行 者:新华书店总店北京发行所
开 本:787×1092 1/16 印张: 字数: 千字
版 次:2002 年 月第 1 版 2002 年 月第 1 次印刷
书 号:ISBN 7-900643-57-5
印 数:0001~4000
定 价:37.00 元
引 言
感谢您阅读本书!
本书是写给程序员的,确切地说,是写给 Delphi 程序员的,再确切些,是写给已经有
了一定的实现能力而欲求寻找一种“突破”的 Delphi 程序员的。
在接触了两年的 Delphi 之后,我曾经迷茫过。我可以写各种各样的程序,我懂得 VCL
大多数组件的用法,我知道应该调用哪个 Windows API 来完成我要的功能……但时常会疑
惑:这就是写程序了?那时候在大学里读书,课余时间很多,每天就不停地写,写各种程
序,包括课堂的作业、在网上发布的免费软件以及接到的开发项目。每天都写代码,有了
Delphi 的 help 和 MSDN,似乎不会有什么困难,只是偶尔会觉得单调。不禁又问自己:这
就是写程序了?
我迷茫,是因为我感到,写程序不应该是件单调的事情;我迷茫,是因为自己总在寻
求却始终没有找到一种“突破”的感觉;我迷茫,是因为我想成为“高手”却不知道如何
去做……
我有很多理由喜欢 Delphi,但是应该说,正是 Delphi 的 RAD 开发方式让我陷入迷茫。
我迷惑于 RAD 使人能力退化还是一种革命性的进步。我相信很多 Delphi 程序员都会和我
有一样的经历。
我很幸运,就在我迷茫的时候,认识了我的同学 Lythm,受其影响,我开始涉猎面
向对象编程类的书籍。从《Thinking in C++》到《C++面向对象高效编程》、从《Inside
C++ Object Model》到《设计模式》……然而,我一直在寻找却始终没有找到一本完整
的以 Delphi/Object Pascal 来讲述面向对象编程方法学的书,其间只有一本 Charlie Calvert
的《Delphi 4 Unleashed》赢得了我的欢心,其中关于多态的描述非常精彩,只可惜相关
篇幅太少。
即便如此,我仍然感到找到了方向,于是就暂时放下手中的键盘,钻研起理论。这
段时期已经不会再感到迷茫,取而代之的是一种自身能感受到的“突破”的感觉。工作
后,更加有机会将自己所学的东西应用于实际开发之中,并不断修正自己头脑中的理论
体系。
您是否曾经或正在经历我曾经的迷茫呢?
如果是,那么我想这本书应该是您所要寻找的,因为我所要写的,就是一本我自己梦
寐以求在寻找的书,一本以 Delphi/Object Pascal 来讲述面向对象编程方法学、代码设计方
法的书。
我希望您和我一样幸运,不!应该说,您比我更幸运,因为您比我多了这本书。
本书的书名是《Delphi 高手突破》,我并没有任何文字暗示自己已经成为“高手”,
Delphi 高手突破
所谓“高手突破”的解释并不是高手来帮助您突破。写这样一本书,我只是希望能把自己
的“突破”的感觉与经验和大家共享,同时,它也是我对前一段时间学习的一个总结。
我很喜欢这本书的英文名称,是我自己起的,我愿意将它叫作《Design in Delphi》,
不过请原谅我无法用中文准确地、优美地将它表述出来。
~ 这本书没有什么
这是本特殊的 Delphi 编程方面的书,它不会教您如何使用 Delphi,也不会教您如何使
用类似 TListBox 那样的组件,更不会涉及诸如多线程、DLL、API 等 Windows 编程的内容,
也没有热门的 COM/DCOM、Web Service 等。
~ 这本书有什么
这本书会告诉您面向对象编程的基础理论,会为您剖析 VCL 的部分源码,会告诉您在
开始敲键盘写代码之前应该做什么,怎样使您的代码的构架被更良好地设计以致便于更容
易被维护和修改。
~ 这本书还没有什么
看起来,这是一本更侧重于讲设计的书。请不要误会,这本书还不会教您关于面向对
象分析/设计(OOA/OOD)的内容,更没有 UML。
~ 这本书究竟有什么
就本质来说,这本书只讲 OOP,当然,是用 Delphi 作为载体,因为它是写给 Delphi
程序员的。其中有设计的内容,但仅限于代码设计。本书第 7 章就一个实例向您展示代码
构架设计的一种可能的方式,但此方式并不是惟一的。实例不需要照搬,而需要领会。
~ 本书章节介绍
本书第 1、2、3 章介绍 OOP 的基础知识,基本上所有编程语言的书都会有这样的内容,
但本书一定会带给您不同的感觉。
第 4、5 章介绍 VCL 相关的知识。其中第 4 章为您剖析部分 VCL 的核心组件源码,第
5 章介绍定制、设计组件的方法。
第 6、7 章介绍程序构架设计。第 6 章介绍一般性的代码设计准则,其内容可以完全脱
离 Delphi,因为这些准则是跨语言的。第 7 章是一个完整的代码设计实例,以编写一个多
工作区的文本编辑器为例,从实践角度说明程序构架设计的方法。
·II·
引 言
~ 本书的支持网页
本书的支持网页为:http://www.sunistudio.com/nicrosoft/book/did/
作者 Email:nicrosoft@sunistudio.com
希望您喜欢本书以及它的作者——我!谢谢。
~ 感谢
在此,我要感谢为这本书的诞生给予过我帮助的人们。
首先,我要感谢我的女友 Esan,在我的写作过程中,她一直陪伴在我身边,不断地给
我鼓励和支持,使我得以最终完成写作。
其次,我要感谢我的同事兼拍档唐沐,是他为本书的每一章创作提供了精美、有趣而
又富有创意的插图,使得本书更富有一些活泼的气氛。
再次,我要感谢 CSDN 以及大富翁论坛的热心网友们,当我在网络上发表了本书的一
些预览节选后,他们给我提出了许多宝贵的意见和建议。
最后,我要感谢清华大学出版社的朱英彪编辑,他的宽容和给予我的帮助使得我们的
合作非常愉快,也使得本书能够顺利完成及出版。
申 旻
2002 年 7 月于珠海
·III·