第1章 回到基礎點
全章 : ~50頁
* 多任務操作系統環(huán)境
* 窗口訊息系統(Window Messaging System)
* 系統訊息隊列(System Message Queue)和應用程序訊息隊列(Application Queue)
* 典型的的窗口應用程序
* 典型應用程序設計的缺點
* 為什么我們需要Window Framework
* Window Framework的世代
* 1-1 角色扮演
* 1-1-1 如何設計和驅動多任務執(zhí)行環(huán)境
* 訊息驅動模型
* 窗口運作模型
* 執(zhí)行系統,事件,訊息和觸發(fā)應用程序代碼
* 1-1-2 是的,這就是Window的基本運作原理
* Window定義的訊息數據結構
* 回叫函式以及呼叫慣例
* 回叫函式(Callback Routine) 以及呼叫慣例(Calling Convention)
* 注冊Window窗口類別
* 建立Window窗口
* 數據結構和數據型態(tài)的轉換
* 1-2 回到從前!典型的Window應用程序
* 1-3 窗口回叫程序設計的缺點
* 我們可以改善窗口應用程序的撰寫嗎?
* 1-4 Window Framework的誕生和發(fā)展
* 為什么我們需要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整合發(fā)展環(huán)境互動的機制
* 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的訊息循環(huán)
* 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
* 從靜態(tài)類別Framework到動態(tài)組件架構
* 完整的窗口訊息處理流程
* VCL Framework的設計樣式(Design Pattern)
* 5-1 VCL組件的建立和窗口控件的結合
* 5-1-1 填入跳躍程序區(qū)塊
* 5-1-2 VCL Framework統一訊息分派函式-StdWndProc
* 5-2 VCL Framework的客制化訊息(Customized Framework Message)
* 5-3 VCL完整的訊息分派流程
* 5-3-1 TButton類別范例
* 5-3-2 動態(tài)訊息和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接口設計的發(fā)展
* 為了對COM支援
* 6-3 Delphi的界面機制
* 6-3-1 接口是互動的合約
* 6-3-2 宣告界面
* 6-3-3 實作和使用接口
* 使用型態(tài)轉換(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接口機制未來的發(fā)展
* 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執(zhí)行環(huán)境的服務
* 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的永續(xù)儲存
全章 : 89頁
* 什么是永續(xù)儲存
* 永續(xù)儲存的發(fā)展
* Delphi/C++Builder,Java和.NET下的永續(xù)儲存比較
* VCL Framework的永續(xù)儲存機制
* VCL Framework永續(xù)儲存的秘密
* 使用VCL Framework的永續(xù)儲存能力
* VCL Framework的串行流類別(Stream Class)
* VCL Framework永續(xù)儲存的設計樣例
* 8-1 什么是永續(xù)儲存(Persistence)?
* 8-2 永續(xù)儲存的發(fā)展
* 8-2-1 COM的永續(xù)儲存
* 8-2-2 Java的永續(xù)儲存
* Form Designer和永續(xù)儲存
* Java Serialization
* Java Remoting
* 8-2-3 .NET的永續(xù)儲存
* Form Designer和永續(xù)儲存
* .NET Serialization
* .NET Remoting
* 8-2-4 Delphi/C++Builder
* 8-3 Delphi的永續(xù)儲存機制
* 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的永續(xù)儲存能力
* 8-4-1 使用TPersistent/TComponent類別
* 8-4-2 動態(tài)建立和儲存VCL組件
* 8-4-3 動態(tài)儲存客制化VCL組件
* 8-5 VCL Framework永續(xù)儲存的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 企業(yè)應用設計樣例
* 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
* 設計的挑戰(zhàn)
* .NET對于VCL Framework的影響
* VCL.NET的實作
* 從Win32到虛擬執(zhí)行環(huán)境
* 實作技術的改變
* 10-1 Object Pascal和CLR
* 10-1-1 數據型態(tài)
* 10-1-2 類別參考(Class Reference )
* 10-1-3 虛擬建構函式和多形對象建立
* 10-1-4 Class Method/Class Static Method
* 10-2 設計的挑戰(zhàn)
* 10-2-1 輔助類別(Helper Class)的功能
* 10-2-2 Unit Initialization/Finalization
* 10-2-3 Cracker Class
* 10-2-4 解構函式的執(zhí)行
* 10-3 VCL.NET的實作
* 10-3-1 使用.NET的PInvoke機制呼叫Win32服務
* 10-3-2 串聯Delphi.NET執(zhí)行時期和.NET虛擬執(zhí)行環(huán)境的機制
* 10-3-3 使用.NET Framework類別取代VCL Framework類別
* 10-3-4 實作額外.NET接口以提供VCL.NET開發(fā).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 結論