本书以理论结合实践的方式,论述“如何在Delphi中使用面向对象编程方法,构建良好设计的程序”的主题。本书第1、2、3章以不同于一般书籍的方式,介绍面向对象编程的基础知识及其在Object Pascal中的语言实现。第4、5章介绍VCL库的相关知识,其中第4章为您剖析部分VCL的核心组件源码,第5章介绍定制、设计组件的方法。第6、7章介绍程序构架设计,其中第6章介绍一般性的代码设计准则,其内容可以完全脱离Delphi,因为这些准则是跨语言的;第7章是一个完整的代码设计实例,以编写一个多工作区的文本编辑器为例,从实践角度说明程序构架设计的方法。\r\n 本书面向Delphi程序员,特别是写给那些已经具有一定的实现能力而欲求寻找一种“突破”的Delphi程序员,作为他们提高的参考用书,同时也可以作为高校学生以及程序爱好者的参考用书。
第1篇 Delphi与OOP\r\n\r\n第1章 重新认识Delphi\r\n\r\n1.1 开发工具“以人为本”论\r\n1.2 Delphi更多的优势\r\n1.3 本书主题\r\n1.4 小结\r\n\r\n第2章 面向对象编程理论基础\r\n\r\n2.1 类和对象的本质\r\n2.1.1 语言的“类”和“对象”\r\n2.1.2 语义的“类”和“对象”\r\n2.2 封装\r\n2.2.1 类级别的封装\r\n2.2.2 单元级别的封装\r\n2.3 继承的本质\r\n2.3.1 语言的“继承”\r\n2.3.2 语义的“继承”\r\n2.4 多态的本质\r\n2.4.1 多态的概念与接口重用\r\n2.4.2 多态的实现与VMT/DMT\r\n2.5 小结\r\n\r\n第3章 异常及错误处理\r\n\r\n3.1 异常的本质\r\n3.2 创建自己的异常类\r\n3.3 try...finally\r\n3.4 构造函数与异常\r\n3.5 小结\r\n\r\n第2篇 VCL与组件\r\n\r\n第4章 VCL库\r\n\r\n4.1 VCL概貌\r\n4.2 TObject与消息分发\r\n4.3 TControl与Windows消息的封装\r\n4.4 TApplication与主消息循环\r\n4.4.1 脱离VCL的Windows程序\r\n4.4.2 Application对象的本质\r\n4.4.3 TApplication创建主消息循环\r\n4.4.4 窗口函数(WndProc)处理消息\r\n4.5 TPersistent与对象赋值\r\n4.6 TComponent与对象持久\r\n4.7 TCanvas与Windows GDI\r\n4.7.1 TPen\r\n4.7.2 TBrush\r\n4.7.3 TCanvas\r\n4.8 TGraphicControl/TcustomControl与画布(Canvas)\r\n4.9 TCustomPanel与窗口重绘\r\n4.10 TCustomForm与模态窗口\r\n4.11 小结\r\n\r\n第5章 扩展VCL库\r\n\r\n5.1 组件基础\r\n5.1.1 属性\r\n5.1.2 方法\r\n5.1.3 事件\r\n5.1.4 包\r\n5.1.5 组件的安装\r\n5.2 扩展现有组件\r\n5.2.1 实例一:支持文件施放操作的ListBox\r\n5.2.2 实例二:能显示图片的Panel\r\n5.3 定制组件\r\n5.3.1 TActiveButton\r\n5.3.2 TActiveCheckBox\r\n5.3.3 TActiveRadioButton\r\n5.4 光盘上的组件以及演示程序代码\r\n5.5 小结\r\n\r\n第3篇 OOP与代码设计\r\n\r\n第6章 代码设计基础\r\n\r\n6.1 创建良好设计的代码\r\n6.2 使用OOP进行代码设计\r\n6.3 小结\r\n\r\n第7章 代码设计实例——Sunny SmartNote\r\n\r\n7.1 需求概述与代码风格说明\r\n7.1.1 需求概述\r\n7.1.2 代码风格说明\r\n7.1.3 图的说明\r\n7.2 IssnEditor/TssnEditor/TssnWorkSpace\r\n7.2.1 IssnEditor\r\n7.2.2 TssnEditor\r\n7.2.3 TssnMemoEditor\r\n7.2.4 TssnRichEditor\r\n7.2.5 TssnWorkSpace\r\n7.3 TssnWorkSpaceMgr/TssnWorkSpace\r\n7.3.1 TssnWorkSpaceMgr\r\n7.3.2 TssnTabWorkSpace\r\n7.3.3 TssnTabWorkSpaceMgr\r\n7.4 构造器TssnEditorCtor/TssnWorkSpaceMgrCtor\r\n7.4.1 TssnEditorCtor/TssnMemoEditorCtor/TssnRichEditorCtor\r\n7.4.2 TssnWorkSpaceMgrCtor/TssnTabWorkSpaceMgrCtor\r\n7.5 事件委托TssnEditorEvent/TssnWorkSpaceEvent\r\n7.5.1 TssnEditorEvent\r\n7.5.2 TssnWorkSpaceEvent\r\n7.6 其他模块\r\n7.6.1 默认设置管理\r\n7.6.2 用户交互\r\n7.6.3 界面模块\r\n7.6.4 其他单元\r\n7.7 光盘上的代码说明\r\n7.8 小结\r\n\r\n附录\r\n\r\nA 浅谈Object Pascal的指针\r\nB RAD与non-RAD
感谢您阅读本书!
本书是写给程序员的, 确切地说, 是写给Delphi程序员的, 再确切些, 是写给已经有了一定的实现能力而欲求寻找一种“突破”的Delphi程序员的.
在接触了两年的Delphi之后, 我曾经迷茫过. 我可以写各种各样的程序, 我懂得VCL大多数组件的用法, 我知道应该调用哪个WindowsAPI来完成我要的功能……但时常会疑惑:这就是写程序了?那时候在大学里读书, 课余时间很多, 每天就不停地写, 写各种程序, 包括课堂的作业. 在网上发布的免费软件以及接到的开发项目. 每天都写代码, 有了Delphi的help和MSDN7似乎不会有什么困难, 只是偶尔会觉得单调. 不禁又问自己:这就是写程序了?
我迷茫, 是因为我感到, 写程序不应该是件单调的事情, 我迷茫, 是因为自己总在寻求却始终没有找到一种“突破”的感觉:我迷茫, 是因为我想成为“高手”却不知道如何去做……
我有很多理由喜欢Delphi, 但是应该说, 正是Delphi的RAD开发方式让我陷入迷茫. 我迷惑于RAD使人能力退化还是一种革命性的进步. 我相信很多Delphi程序员都会和我有一样的经历.
我很幸运, 就在我迷茫的时候, 认识了我的同学Lythm, 受其影响, 我开始涉猎面向对象编程类的书籍. 从《Thinkingin C++》到《C++面向对象高效编程》. 从《Inside C++ Object Model》到《设计模式》……然而, 我一直在寻找却始终没有找到一本完整的以Delphi/Object Pascal来讲述面向对象编程方法学的书, 其间只有一本Charlie Calvert的《Delphi 4 Unleashed》赢得了我的欢心, 其中关于多态的描述非常精彩, 只可惜相关篇幅太少.
即便如此, 我仍然感到找到了方向, 于是就暂时放下手中的键盘, 钻研起理论. 这段时期已经不会再感到迷范, 取而代之的是一种自身能感受到的“突破”的感觉. 工作后, 更加有机会将自己所学的东西应用于实际开发之中, 并不断修正自己头脑中的理论体系.
您是否曾经或正在经历我曾经的迷茫呢?
如果是, 那么我想这本书应该是您所要寻找的, 因为我所要写的, 就是一本我自己梦寐以求在寻找的书, 一本以Delphi/Object Pascal来讲述面向对象编程方法学. 代码设计方法的书.
我希望您和我一样幸运, 不!应该说, 您比我更幸运, 因为您比我多了这本书.
本书的书名是《Delphi高手突破》, 我并没有任何文字暗示自己已经成为“高手”, 所谓“高手突破”的解释并不是高手来帮助您突破. 写这样一本书, 我只是希望能把自己的“突破”的感觉与经验和大家共享, 同时, 它也是我对前一段时间学习的一个总结.
我很喜欢这本书的英文名称, 是我自己起的, 我愿意将它叫作《Designin Delphi》, 不过请原谅我无法用中文准确地. 优美地将它表述出来.
这本书没有什么
这是本特殊的Delphi编程方面的书, 它不会教您如何使用Delphi, 也不会教您如何使用类似TListBox那样的组件, 更不会涉及诸如多线程. DLL. API等Windows编程的内容, 也没有热门的COM/DCOM. Web Service等.
这本书有什么
这本书会告诉您面向对象编程的基础理论, 会为您剖析VCL的部分源码, 会告诉您在开始敲键盘写代码之前应该做什么, 怎样使您的代码的构架被更良好地设计以便于更容易被维护和修改.
这本书还没有什么
看起来, 这是一本更侧重于讲设计的书. . 请不要误会, 这本书还不会教您关于面向对象分析/设计(OOA/00D)的内容, 更没有UML.
这本书究竟有什么
就本质来说, 这本书只讲00P, 当然, 是用Delphi作为载体, 因为它是写给Delphi程序员的. 其中有设计的内容, 但仅限于代码设计. 本书第7章就一个实例向您展示代码构架设计的一种可能的方式, 但此方式并不是惟一的. 实例不需要照搬, 而需要领会.
本书章节介绍
本书第1. 2. 3章介绍OOP的基础知识, 基本上所有编程语言的书都会有这样的内容, 但本书一定会带给您不同的感觉.
第4. 5章介绍VCL相关的知识. 其中第4章为您剖析部分VCL的核心组件源码, 第5章介绍定制. 设计组件的方法.
第6. 7章介绍程序构架设计. 第6章介绍一般性的代码设计准则, 其内容可以完全脱离Delphi, 因为这些准则是跨语言的. 第7章是一个完整的代码设计实例, 以编写一个多工作区的文本编辑器为例, 从实践角度说明程序构架设计的方法.
本书的支持网页
本书的支持网页为:http://www. sunistudio. com/nicrosoft/book/did/
作者Email:nicrosoft@sunistudio. com
希望您喜欢本书以及它的作者——我!谢谢.
感谢
在此. 我要感谢为这本书的诞生给予过我帮助的人们.
首先, 我要感谢我的女友Esan, 在我的写作过程中, 她一直陪伴在我身边, 不断地给我鼓励和支持, 使我得以最终完成写作.
其次, 我要感谢我的同事兼拍档唐沐, 是他为本书的每一章创作提供了精美. 有趣而又富有创意的插图, 使得本书更富有一些活泼的气氛.
再次, 我要感谢CSDN以及大富翁论坛的热心网友们, 当我在网络上发表了本书的一些预览节选后, 他们给我提出了许多宝贵的意见和建议.
最后, 我要感谢清华大学出版社的朱英彪编辑, 他的宽容和给予我的帮助使得我们的合作非常愉快, 也使得本书能够顺利完成及出版.