第1篇 Delphi与OOP 3
第1章 重新认识Delphi 3
1.1 开发工具“以人为本”论 4
1.2 Delphi更多的优势 5
1.3 本书主题 7
1.4 小结 7
第2章 面向对象编程理论基础 9
2.1 类和对象的本质 10
2.1.1 语言的“类”和“对象” 10
2.1.2 语义的“类”和“对象” 22
2.2 封装 25
2.2.1 类级别的封装 26
2.2.2 单元级别的封装 26
2.3 继承的本质 28
2.3.1 语言的“继承” 29
2.3.2 语义的“继承” 33
2.4 多态的本质 37
2.4.1 多态的概念与接口重用 37
2.4.2 多态的实现与VMT/DMT 41
2.5 小结 46
第3章 异常及错误处理 49
3.1 异常的本质 50
3.2 创建自己的异常类 53
3.3 try...finally 57
3.4 构造函数与异常 59
3.5 小结 61
第2篇 VCL与组件 65
第4章 VCL库 65
4.1 VCL概貌 66
4.2 TObject与消息分发 67
4.3 TControl与Windows消息的封装 73
4.4 TApplication与主消息循环 77
4.4.1 脱离VCL的Windows程序 77
4.4.2 Application对象的本质 80
4.4.3 TApplication创建主消息循环 83
4.4.4 窗口函数(WndProc)处理消息 85
4.5 TPersistent与对象赋值 90
4.6 TComponent与对象持久 95
4.7 TCanvas与Windows GDI 98
4.7.1 TPen 98
4.7.2 TBrush 104
4.7.3 TCanvas 109
4.8 TGraphicControl/TcustomControl与画布(Canvas) 113
4.9 TCustomPanel与窗口重绘 117
4.10 TCustomForm与模态窗口 119
4.11 小结 121
第5章 扩展VCL库 123
5.1 组件基础 124
5.1.1 属性 124
5.1.2 方法 125
5.1.3 事件 125
5.1.4 包 126
5.1.5 组件的安装 126
5.2 扩展现有组件 127
5.2.1 实例一:支持文件拖放操作的ListBox 127
5.2.2 实例二:能显示图片的Panel 130
5.3 定制组件 136
5.3.1 TActiveButton 136
5.3.2 TActiveCheckBox 148
5.3.3 TActiveRadioButton 155
5.4 光盘上的组件以及演示程序代码 158
5.5 小结 160
第3篇 OOP与代码设计 163
第6章 代码设计基础 163
6.1 创建良好设计的代码 164
6.2 使用OOP进行代码设计 165
6.3 小结 172
第7章 代码设计实例——Sunny SmartNote 173
7.1 需求概述与代码风格说明 174
7.1.1 需求概述 174
7.1.2 代码风格说明 175
7.1.3 图的说明 175
7.2 IssnEditor/TssnEditor/TssnWorkSpace 177
7.2.1 IssnEditor 178
7.2.2 TssnEditor 180
7.2.3 TssnMemoEditor 188
7.2.4 TssnRichEditor 202
7.2.5 TssnWorkSpace 210
7.3 TssnWorkSpaceMgr/TssnWorkSpace 220
7.3.1 TssnWorkSpaceMgr 220
7.3.2 TssnTabWorkSpace 232
7.3.3 TssnTabWorkSpaceMgr 234
7.4 构造器TssnEditorCtor/TssnWorkSpaceMgrCtor 240
7.4.1 TssnEditorCtor/TssnMemoEditorCtor/TssnRichEditorCtor 240
7.4.2 TssnWorkSpaceMgrCtor/TssnTabWorkSpaceMgrCtor 247
7.5 事件委托TssnEditorEvent/TssnWorkSpaceEvent 251
7.5.1 TssnEditorEvent 252
7.5.2 TssnWorkSpaceEvent 255
7.6 其他模块 258
7.6.1 默认设置管理 258
7.6.2 用户交互 264
7.6.3 界面模块 272
7.6.4 其他单元 287
7.7 光盘上的代码说明 295
7.8 小结 296
附录 297
A 浅谈Object Pascal的指针 297
B RAD与non-RAD 301