Inside深入核心VCL架构剖析

Inside深入核心VCL架构剖析
作 者: 李维
出版社: 电子工业出版社
丛编项: Borland In-Depth Series\Borland大系
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Delphi
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  李维,Borland公司大中华区首席技术官(CTO),Borland/Inprise公司台湾首席工程师、资深技术顾问、著名的Delphi专家。他具有相当丰富的一线开发经验,著术丰富,所他作的技术图书极具感染力。在书中他常常运用层层推进的演绎手法,引导读者主动思考,对技术趋势分析和预测更是堪称一绝。国内读者对他的作品评价甚高,虽然是程序设计方面的书籍,读者却常常感觉到他的作吕阅读起来让人毫无倦意,不但能学习到扎实的编程技术,还能在阅读的过程中使自己的思维能力得到相当大的锻炼和提升,同时品尝到阅读的乐趣。李维先生为人达观,幽默风趣,待人处事谦虚,内心永远充满逢信。相关图书Delphi深度探索

内容简介

本书包括10个章节,从最基础的Windows操作系统原理讲起,回顾Windows Framework和VCL Framework的发展历史,介绍Object Pascal在00方面对VCL的支持,描述VCL Framework与Windows消息体系的集成,列举VCL组件与Windows组件的结合,探究基于接口的程序设计,指明VCL Framework设计COM架构的方法,探讨VCL Framework的永续储存,还以一章的篇幅专门讨论了VCL Framework中的设计模式,最后对下一代VCL Framework——VCL.NET作了前瞻式的研究。单看目录就可以知道,这本书不但涉及VCL Framework本身,还旁及Windows Framework、COM、设计模式等相关技术。读者从中获得的,也不仅只是VCL架构知识,更会在整个阅读和实作过程中极大地拓宽自己的开发眼界,形成在系统设计方面的大局观,追寻大师级的Framework设计思路,提升整体开发素质。

图书目录

第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 结论