第1章 回到基础点
全章 : ~50页
* 多任务操作系统环境
* 窗口讯息系统(Window Messaging System)
* 系统讯息队列(System Message Queue)和应用程序讯息队列(Application Queue)
* 典型的的窗口应用程序
* 典型应用程序设计的缺点
* 为什么我们需要Window Framework
* Window Framework的世代
* 1-1 角色扮演
* 1-1-1 如何设计和驱动多任务执行环境
* 讯息驱动模型
* 窗口运作模型
* 执行系统,事件,讯息和触发应用程序代码
* 1-1-2 是的,这就是Window的基本运作原理
* Window定义的讯息数据结构
* 回叫函式以及呼叫惯例
* 回叫函式(Callback Routine) 以及呼叫惯例(Calling Convention)
* 注册Window窗口类别
* 建立Window窗口
* 数据结构和数据型态的转换
* 1-2 回到从前!典型的Window应用程序
* 1-3 窗口回叫程序设计的缺点
* 我们可以改善窗口应用程序的撰写吗?
* 1-4 Window Framework的诞生和发展
* 为什么我们需要Window Framework
* 第1代的Framework- OWL 1.x,MFC
* 第2代的Framework-OWL 2
* 百花齐放的阶段-ZApp, Zinc, etc....
* 第3代的Framework-VCL
* 第4代的Framework-.NET Framework, VCL.NET
* 1-5 窗口组件Framework
* 1-6 结论
第2章 VCL的诞生和设计原理
全章 : ~40页
* Borland VCL Framework的诞生
* VCL Framework的架构设计
* VCL Framework的对象服务
* Object Pascal的对象模型和『TObject』
* 2-1 Borland VCL Framework的诞生
* 2-2 VCL的架构设计
* 2-3 从无到有-VCL对象生命的成形
* 2-3-1 Object Pascal的对象模型
* 2-3-2 从原始内存到对象雏型
* 2-4 Object Pascal对象服务
* 2-4-1对象建立服务
* 2-4-2对象识别服务
* 2-4-3对象信息服务
* 2-5 从原始基本对象到提供基本服务的VCL对象
* 2-6 VCL对象的释放服务
* 2-7 类别和对象的MetaData-VMT(Virtual Method Table)
* 2-8 结论
第3章 Object Pascal对象导向程序语言的支持
全章 : 82页
* 对象导向程序语言和VCL Framework
* Framework使用对象导向程序语言的设计手法
* 神仙棒一挥-让它变成组件吧
* 这还不够,让它成为Window控件吧
* 如何让Framework提供客制化的能力
* 不使用Window Handle的组件封装类别
* 封装Canvas的类别
* COMAdmin类别的设计和实作
* 3-1 对象导向程序语言和VCL Framework
* 3-2 Framework使用对象导向程序语言的设计手法
* 抽象类别法
* Place Holder方法
* 逐渐增加法
* 三明治手法
* 复盖父代实作法
* BootStrap设计法
* 3-3 神仙棒一挥-让它变成组件吧
* 3-3-1 VCL Framework的核心组件架构
* 3-3-2 TComponent类别的设计
* 可同时扮演Container组件和单一组件的功能
* 基础组件互动通知功能(Notification)
* 同时提供可视化和非可视化组件架构基础
* 和Delphi整合发展环境互动的机制
* 3-4 这还不够,让它成为Window控件吧
* 3-4-1 Tcontrol
* TControl控件基本信息
* 基础资源服务
* 处理鼠标的服务
* 处理讯息和事件的服务
* 控件重绘服务
* 3-4-2 封装Window控件的TWinControl类别
* 封装Window控件
* 封装Window建立功能
* 封装Window讯息
* Window控件重绘服务
* 处理Window讯息服务
* 3-4-3 不使用Window Handle的组件封装类别
* 3-4-4 客制化控件类别TcustomControl
* 3-4-5 封装Canvas的类别
* TCanvas类别
* TControlCanvas类别
* 3-4-6 结合Canvas和TWinControl类别
* 3-5 COMAdmin类别的设计和实作
* 3-5-1 TCOMAdminCatalog类别的设计
* 3-5-2 CoCOMAdminCatalogCollection类别的设计
* 3-5-3 TCOMAdminCatalogObject类别的设计
* 3-6 结论
第4章 VCL Framework和窗口讯息
全章 : 69页
* 窗口讯息和VCL Framework
* VCL Framework如何封装窗口讯息
* 4-1 窗口讯息和VCL Framework
* 4-1-1 原始的方式
* 4-2 VCL的窗口讯息封装机制
* 4-2-1 从窗口回叫函式到对象导向
* 4-3 TObject的讯息分派服务
* 4-3-1 窗口讯息分类
* 4-3-2 呼叫惯例(Calling Convention)
* 4-3-2 VCL封装类别的方法种类
* 4-3-3 TObject分派讯息的原理和流程
* 4-3-4 VCL讯息分派架构
* 4-4 Delphi窗口应用程控者:TApplication
* 4-4-1 TApplication对象的建立
* 4-3-2 TApplication和秘密窗口
* 4-4-3 TApplication的讯息循环
* 4-5 TApplication建立的主窗体
* 4-5-1 主窗体的建立流程
* TWinControl.Create
* TForm.HandleNeeded
* TForm.CreateHandle
* TForm.CreateWnd
* TForm的父代类别TScrollingWinControl
* TWinControl.CreateWnd
* VCL Framework的窗口thunk回叫函式-InitWndProc
* TForm. CreateParams
* TCustomForm.CreateWindowHandle
* 4-5-2 Delphi窗体类别处理窗口讯息的机制
* 有趣的范例-拦截窗口讯息以及改变窗体属性
* 4-6 TApplication的设计思想
* 4-7 结论
第5章 VCL组件和窗口控件的结合
全章 : 48页
* VCL Framework的偷天换日之计
* 讯息分派核心程序StdWndProc
* 从静态类别Framework到动态组件架构
* 完整的窗口讯息处理流程
* VCL Framework的设计样式(Design Pattern)
* 5-1 VCL组件的建立和窗口控件的结合
* 5-1-1 填入跳跃程序区块
* 5-1-2 VCL Framework统一讯息分派函式-StdWndProc
* 5-2 VCL Framework的客制化讯息(Customized Framework Message)
* 5-3 VCL完整的讯息分派流程
* 5-3-1 TButton类别范例
* 5-3-2 动态讯息和VCL事件处理函式的结合
* 5-3-3 TForm类别
* 5-3-4 内定窗口讯息函式- DefaultHandler
* 5-4 VCL 讯息处理设计样式(Design Pattern)
* 5-4-1 Dispatcher设计样例
* 数值 Dispatcher设计样例
* 字符串Dispatcher设计样例
* 5-4-2 Broadcasting设计样例
* 5-4-3 利用VCL Framework的讯息分配机制
* 5-5 结论
第6章 界面程序设计
全章 : 92页
* 为什么要使用接口?
* 界面的演进和比较
* Delphi的界面机制
* 界面程序设计
* 6-1 为什么要有界面?
* 6-1-1 接口程序的驱动力
* 公用服务方法的汇集
* Plug-in Point
* Proxy/Stub的应用
* 软件服务
* 功能汇集
* 物件角色(Object Role)
* collections和成员
* 对象互动
* intra-class的角色
* 6-2 接口的演进,比较以及Delphi的接口
* 6-2-1 Microsoft COM
* 6-2-2 Java
* 6-2-3 C#的界面
* 6-2-4 Delphi接口设计的发展
* 为了对COM支援
* 6-3 Delphi的界面机制
* 6-3-1 接口是互动的合约
* 6-3-2 宣告界面
* 6-3-3 实作和使用接口
* 使用型态转换(Type Casting)
* 利用Delphi编译器的内建机制
* 使用TObject的GetInterface
* 使用对象的QueryInterface方法
* 使用COM的QueryInterface API
* 使用Object Pascal的as操作数
* 6-3-4 接口和对象的生命周期
* 物件生命周期掌握在他人手中
* 对象生命周期掌握在程序员手中
* 6-3-5 宣告继承和实作继承
* 6-3-6 多重接口的实作
* 6-3-7 界面的委派
* 使用对象接口委派
* 使用类别对象委派
* 6-3-8 接口特性
* 6-3-9 通用接口机制的实作方式
* 6-3-10 COM组件模型影响的接口机制
* 界面参考计数值
* GUID接口实作原理
* 6-3-11 VCL Framework提供的通用接口和接口类别
* TInterfacedObject
* Self Returning
* 6-3-12 接口小范例-Interface Walker
* 6-4 高阶接口技术
* 6-4-1 Delphi 延伸接口机制加入的接口RTTI(Run-Time Type Information)
* 接口机制结合RTTI
* 使用接口和RTTI
* 6-4-2 接口设计会影响组件系统的效能
* 6-5 Delphi接口机制未来的发展
* 6-6 结论
第7章 VCL Framework和COM的设计架构
全章 : 100页
* 以对象导向技术来设计COM的支持架构
* VCL Framework支持COM的对象导向架构
* VCL Framework建立COM对象的流程
* Factory/Factory Method设计样例
* Bootstrap设计样例
* ForEach设计样例
* 7-1 以对象导向技术来设计COM的支持架构
* 7-1-1 什么是COM对象
* 7-1-2 ClassFactory
* 7-1-3 COM Aggregation
* 7-1-4 Type Information
* 7-1-5 注册信息
* 7-1-6 设计的想法
* 7-2 VCL Framework支持COM的对象导向架构
* 7-2-1 COM执行环境的服务
* 7-2-2 建立COM对象的服务
* 7-2-3 COM对象类别
* 7-2-4 Delphi编译器实作的变化
* Delphi 3
* Delphi 3的对于COM支持的编译器实作
* Delphi 5的对于COM支持的编译器实作
* Delphi 7的对于COM支持的编译器实作
* 7-2-5 TAggregatedObject
* 一般应用程序使用TAggregatedObject
* 在COM组件模型中使用TAggregatedObject
* 7-2-6 TContainedObject类别
* 7-2-7 VCL Framework如何提供COM Aggregate的功能
* 7-3 VCL Framework建立COM对象的流程
* 7-4 VCL Framework使用的设计样例
* 7-4-1 Factory/Factory Method设计样例
* 7-4-2 Bootstrap设计样例
* 7-4-3 ForEach设计样例
* 7-5 结论
第8章 VCL Framework的永续储存
全章 : 89页
* 什么是永续储存
* 永续储存的发展
* Delphi/C++Builder,Java和.NET下的永续储存比较
* VCL Framework的永续储存机制
* VCL Framework永续储存的秘密
* 使用VCL Framework的永续储存能力
* VCL Framework的串行流类别(Stream Class)
* VCL Framework永续储存的设计样例
* 8-1 什么是永续储存(Persistence)?
* 8-2 永续储存的发展
* 8-2-1 COM的永续储存
* 8-2-2 Java的永续储存
* Form Designer和永续储存
* Java Serialization
* Java Remoting
* 8-2-3 .NET的永续储存
* Form Designer和永续储存
* .NET Serialization
* .NET Remoting
* 8-2-4 Delphi/C++Builder
* 8-3 Delphi的永续储存机制
* 8-3-1 复制对象变量和Assign方法
* 8-3-2 Shallow Copy
* 8-3-3 Deep Copy
* 8-3-4 TFiler类别
* 8-3-5 TWriter类别
* 8-3-6 TReader类别
* 8-4使用Delphi的永续储存能力
* 8-4-1 使用TPersistent/TComponent类别
* 8-4-2 动态建立和储存VCL组件
* 8-4-3 动态储存客制化VCL组件
* 8-5 VCL Framework永续储存的Design Pattern
* Two-Way Sequential设计样例
* Adapter 设计样例
* 接口-类别混合的Adapter设计样例
* 类别继承的Adapter设计样例
* 设计样例使用范例
* 8-6 串行流类别
* 8-7 结论
第9章 VCL Framework和Design Pattern
全章 : 71页
* VCL Framework和设计样例
* Notify设计样例
* Facade设计样例
* Command设计样例
* Table Module 设计样例
* Table Data Gateway 设计样例
* Record Set设计样例
* Service Layer设计样例
* 9-1 Framework设计样例
* 9-1-1 Notify设计样例
* 9-1-2 Facade设计样例
* 9-1-3 Command设计样例/Action设计样例
* 9-2 企业应用设计样例
* 9-2-1 Table Module设计样例
* 9-2-2 Record Set设计样例
* 9-2-3 Service Layer设计样例
* 9-3 结论
第10章 VCL Framework的演化-VCL.NET
全章 : 114页
* Object Pascal和CLR
* 设计的挑战
* .NET对于VCL Framework的影响
* VCL.NET的实作
* 从Win32到虚拟执行环境
* 实作技术的改变
* 10-1 Object Pascal和CLR
* 10-1-1 数据型态
* 10-1-2 类别参考(Class Reference )
* 10-1-3 虚拟建构函式和多形对象建立
* 10-1-4 Class Method/Class Static Method
* 10-2 设计的挑战
* 10-2-1 辅助类别(Helper Class)的功能
* 10-2-2 Unit Initialization/Finalization
* 10-2-3 Cracker Class
* 10-2-4 解构函式的执行
* 10-3 VCL.NET的实作
* 10-3-1 使用.NET的PInvoke机制呼叫Win32服务
* 10-3-2 串联Delphi.NET执行时期和.NET虚拟执行环境的机制
* 10-3-3 使用.NET Framework类别取代VCL Framework类别
* 10-3-4 实作额外.NET接口以提供VCL.NET开发.NET组件的能力
* 10-3-5 扮演.NET和VCL.NET间Adapter角色的TObjectHelper
* 10-3-6 .NET和Win32间的Wrapper
* 10-4 VCL.NET如何处理窗口讯息
* 10-5 VCL.NET使用的设计样例
* 10-5-1 使用Adapter设计样例
* 10-5-2 使用Wrapper设计样例
* 10-5-3 Register/Notify设计样例
* 10-6 结论