第1章 Delphi6.0入门 1
1.1 Delphi的历史回顾 1
1.2 Delphi6.0的新特性 2
1.3 Delphi6.0的菜单 5
1.3.1 主菜单 5
1.3.2 File菜单 5
1.3.3 Edit菜单 7
1.3.4 Search菜单 9
1.3.5 View菜单 10
1.3.6 Project菜单 18
1.3.7 Run菜单 22
1.4 Delphi6.0的工具栏 25
1.5 组件选项板 26
1.6 Delphi6.0的主编辑器 27
1.7 Delphi6.0中的快捷方式 30
1.8 本章小结 31
第2章 Object Pascal语言 32
2.1 Object Pascal程序框架 32
2.1.1 工程主程序框架 32
2.1.2 程序单元框架和语法 33
2.13 程序单元引用方式与Uses子句 35
2.2 Object Pascal语法元素 36
2.3 注释 36
2.4 变量 37
2.5 常量 38
2.6.1 赋值运算符 39
2.6.2 比较运算符 39
2.6 运算符 39
2.6.3 逻辑运算符 40
2.6.4 算术运算符 40
2.6.5 按位运算符 41
2.7 Object Pascal数据类型 41
2.7.1 类型的比较 41
2.7.2 字符和字符串 42
2.8 用户自定义类型 43
2.8.1 数组 43
2.8.2 动态数组 44
2.8.4 集合 45
2.8.3 记录 45
2.8.5 对象 47
2.8.6 指针 47
2.9 条件语句 48
2.9.1 If语句 48
2.9.2 Case语句 49
2.10 循环结构 50
2.10.1 For循环 50
2.10.2 While循环 50
2.10.3 Repeat...Until循环 51
2.10.4 Break语句 51
2.11 过程和函数 52
2.10.5 Continue语句 52
2.13 包 53
2.13 面向对象编程 54
2.14.Delphi对象 55
2.14.1 声明和创建实例 55
2.14.2 析构 56
2.15 方法 56
2.15.1 重载 57
2.15.2 特性 57
2.15.3 代码可见性 58
2.16 接口 59
2.17 异常处理 63
2.17.1 异常类 65
2.17.2 触发异常 67
2.18 运行期类型信息 67
2.19 本章小结 68
第3章 Delhi应用程序框架和设计 69
3.1 Delhi环境和项目的体系结构 69
3.2 构成Delhi项目的文件 69
3.2.1 项目文件 69
3.2.2 单元文件 70
3.2.3 Form文件 70
3.2.4 资源文件 72
3.2.5 项目选项和桌面设置文件 72
3.3.2 代码中被共享的单元 73
3.3.1 一个项目一个目录 73
3.2.6 包文件 73
3.3 Delhi项目管理 73
3.3.3 多项目管理 74
3.4 项目选项设置 75
3.5 Delphi项目的框架类 80
3.5.1 TForm 80
3.5.2 有模式的Form 81
3.5.3 无模式的Form 81
3.5.4 管理Form的图标和边框 81
3.5.5 Tapplication类型 83
3.5.6 TApplication的特性 83
3.5.7 TApplication的方法 84
3.5.8 TApplication的事件 85
3.5.9 TSereen类 85
3.6 MDI应用程序 86
3.6.1 创建MDI应用程序 86
3.6.2 使用菜单 87
3.6.3 隐藏一个子Form 88
3.7 公共体系结构 88
3.7.1 应用程序的体系结构 88
3.7.2 Delphi固有的体系结构 89
3.7.3 体系结构的示例 89
3.8.1 显示程序的启动界面 90
3.8 程序窗体设计 90
3.8.3 实现窗体拖动 91
3.8.4 Form生成的顺序 91
3.8.2 限制窗体的大小 91
3.8.5 停靠窗口 92
3.9 本章小结 95
第4章 代码标准规则 96
4.1 源代码格式规则 96
4.1.1 缩进 96
4.1.2 边距 96
4.2.2 过程和函数 97
4.2.3 例程中的形参 97
4.2 Object Pascal 97
4.2.1 括号 97
4.2.4 变量 98
4.2.5 类型 99
4.2.6 构造类型 99
4.2.7 语句 100
4.2.8 结构化异常处理 101
4.2.9类 102
4.3.3 数据模块文件 103
4.3.2 Form文件 103
4.3.4 单元文件 103
4.3.1 项目文件 103
4.3 文件 103
4.4 Form和数据模块 104
4.4.1 Form 104
4.4.2 数据模块 104
4.5 包 105
4.5.1 运行期包与设计期包 105
4.5.2 文件命名标准 105
4.6 组件 105
4.6.1 自定义组件 105
4.6.2 组件实例的命名规则 106
4.6.3 组件的前缀 106
4.7 本章小结 111
第5章 使用Delphi6.0的组件 112
5.1 Standard组件组 112
5.1.1 TFrame 113
5.1.2 TMainMenu 和 TPopMenu菜单 115
5.1.3 TLabel、TEdit和 TlabeledEdit组件 118
5.1.4 TCheckBox和 TradioButton组件 118
5.1.5 TListBox和 TcomboBox组件 119
5.1.6 Tpanel组件 120
5.1.7 TactionList组件 121
5.2 Additional组件组 121
5.2.1 TmaskEdit组件 122
5.2.2 Timage组件 122
5.2.4 TapplicationEvents组件 123
5.2.3 Tsplitter组件 123
5.2.5 TActionManager组件 124
5.3 Win32组件组 126
5.3.1 TpageControl组件 126
5.3.2 TimageList组件 129
5.3.3 TstatusBar组件 131
5.3.4 TMonthCalendar和TdateTimePicker组件 131
5.3.5 TcomboBoxEx组件 132
5.4 Dialogs组件组 133
5.5 本章小结 135
6.1 VCL应用框架 136
第6章 VCL组件基础 136
6.2 组件简介 137
6.3 组件的种类 138
6.4 组件的结构 139
6.4.1 组件的特性 139
6.4.2 组件的事件 140
6.4.3 组件的拥有关系 141
6.4.4 组件的父子关系 142
6.5 组件的继承关系 142
6.5.1 TPersistent类 143
6.5.2 TComponent组件 143
6.5.4 TGraphicControl类 145
6.5.5 TWinControl类 145
6.5.3 TControl类 145
6.5.7 VCL助手类 146
6.6 运行期类型信息 150
6.6.1 Typlnfo.pas 单元 151
6.6.2 获取RTTI 153
6.6.3 检查特性 157
6.7 本章小结 158
第7章 编写自己的组件 159
7.1 组件设计基础 159
7.1.1 编写组件的时机 159
7.1.2 编写组件的步骤 159
7.1.3 确定组件的祖先类 160
7.1.4 创建组件单元 161
7.1.5 加入新的特性 162
7.1.6 向组件中加入事件 171
7.1.7 加入自定义的方法 173
7.1.8 构造和析构 174
7.1.9 注册组件 175
7.1.10 组件图标 176
7.2 定制组件 176
7.3 复合组件 177
7.4 组件包 181
7.4.1 使用包的好处 181
7.4.2 包的类型 182
7.4.3 包文件 182
7.4.4 安装包 183
7.4.5 设计包 184
7.4.6 维护包的版本 185
7.5 本章小结 185
8.1 异常理论 187
8.1.1 错误处理方法 187
8.1.2 Try...Finally块 188
8.1.3 Try...Except块 190
8.1.4 混合使用资源保护和异常处理 192
8.1.5 异常处理的必要性 194
8.2 异常类 195
8.3.1 一个异常的实例 197
8.3 异常的实例 197
8.3.2 找到异常的地址 200
8.4 引发异常 200
8.4.1 引发VCL异常类 200
8.4.2 创建和引发异常 201
8.4.3 再次引发异常 203
8.5 高级异常处理技术 204
8.5.1 事件驱动环境下的异常 204
8.5.2 哑异常 205
8.5.3 应用对象的错误处理 205
8.6 处理数据库异常 206
8.6.1 EDatebaseError和EDBEngineError异常 206
8.6.3 错误常量 207
8.6.2 OnPostErrorr()、OnEditError()和OnDeleteError()事件 207
8.6.4 自定义数据库服务器异常 209
8.7 本章小结 210
第9章 动态链接库 211
9.1 DLL简介 211
9.2 静态链接和动态链接 212
9.3 使用DLL的必要性 212
9.3.1 共享代码、资源和数据 213
9.3.2 隐藏实现的细节 213
9.3.3 自定义控件 213
9.4 创建和使用DLL 213
9.4.1 创建DLL 213
9.4.2 定义接口单元 215
9.5.1 显示模式Form 216
9.5.2 显示无模式Form 217
9.6 DLL的入口和出口函数 218
9.7 本章小结 221
第10章 数据库开发 222
10.1 配置ODBC数据源 222
10.2 Borland数据库引擎 225
10.2.1 BDE管理器 225
10.2.2 Databases选项卡 228
10.2.3 Configuration选项卡 229
10.3.2 BDE数据访问组件 230
10.3.1 数据集 230
10.3 数据库应用程序体系结构 230
10.2.4 分发BDE 230
10.3.3 数据库的连接 235
10.4 数据库应用程序实例 236
10.4.1 打开和关闭数据集 236
10.4.2 浏览数据集 236
10.4.3 一个实例 237
10.4.4 对数据集的操作 240
10.4.5 TField类型 241
10.4.6 字段编辑器 241
10.4.7 计算字段和查找字段 244
10.4.8 过滤器 246
10.4.9 主从表 247
10.5 数据模块 248
10.6 SQL语句 248
10.6.1 SQL语句语法 248
10.6.2 动态SQL 250
10.7 连接数据库 252
10.8 dbExpress 255
10.9 本章小结 258
第11章 COM基础 259
11.1 COM基础 259
11.1.1 COM(组件对象模型) 259
11.1.4 COM技术中的术语 261
11.1.3 COM、OLE和ActiveX的异同 261
11.1.2 COM的问题和未来 261
11.5 COM的线程模式 262
11.2 接口 262
11.2.1 接口简介 262
11.2.2 声明接口类型 264
11.2.3 实现接口 265
11.2.4 使用接口的原因 270
11.2.5 接口的维护和更新 271
11.2.6 理解IUnknown 272
11.2.7 IDispatch、双重接口和DispInterface 279
11.2.9 虚方法表 280
11.3 COM对象和类工厂 280
11.2.8 HResult类型 280
11.3.1 TComObject和TComObjectFactory 281
11.3.2 进程内COM服务器 281
11.3.3 进程外COM服务器 282
11.4 DCOM(分布式COM) 282
11.5 COM Automation服务器 283
11.5.1 创建Automation服务器 284
11.5.2 创建Automation控制器 287
11.6 TOloContainer 289
11.6.1 一个简单的程序示例 289
11.6.2 OLE对象的操作方法 291
11.7 本章小结 291
12.1.1 DCOM简介 292
第12章 DCOM 292
12.2 COM和分布式体系结构 292
12.1.2 DCOM的系统设置 293
12.2 DCOM服务器和客户程序 293
12.2.1 创建DCOM服务器 293
12.2.2 理解Safecall服务器 300
12.2.3 创建DCOM客户程序 302
12.2.4 深入DCOM 307
12.3 本章小节 307
第13章 分布式编程 308
13.1 MIDAS多层应用 308
13.1.1 MIDAS的概念 308
13.1.2 MIDAS的核心技术 309
13.1.3 简单理解MIDAS 313
13.1.4 MIDA、COM/DCOM、CORBA、OLEnterprise 313
13.1.5 MIDAS的应用和未来 315
13.2 分布式应用程序基础 315
13.2.1 DataSnap组件组 315
13.2.2 建立3层MIDAS结构 317
13.2.3 创建MIDAS服务器 318
13.2.4 理解服务器 326
13.2.5 创建和理解MIDAS客户程序 326
13.3 建立一对多应用程序 329
13.3.1创建步骤 329
13.3.2 刷新和更新数据 330
13.3.4 PacketRecords 331
13.3.3 公文包模式 331
13.4 错误处理 333
13.5 服务器端和客户端逻辑 334
13.6 本章小结 336
第14章 创建ActiveX控件 337
14.1 创建ActiveX控件的原因 337
14.2 创建ActiveX控件 337
14.2.1 ActiveX控件向导 338
14.2.2 ActiveX控件示例 339
14.2.3 ActiveX框架 349
14.3.2 Web分发 351
14.3 ActiveX控件在Web上的应用 351
14.3.1 与Web浏览器交互 351
14.4 本章小结 354
第15章 文件处理 355
15.1 文件的输入/输出 355
15.1.1 文体文件 355
15.1.2 处理有类型文件 358
15.1.3 处理无类型文件 366
15.2 TTextRec和TFilRec结构 368
15.3 驱动器和目录 369
15.3.1 获得驱动器列表 370
15.3.2 获得驱动器信息 371
15.3.3 获取Windows目录 373
15.3.4 获取系统目录 374
15.3.5 获取当前目录 374
15.3.6 从目录中查找文件 375
15.3.7 复制和删除目录 378
15.4 内存映射文件 380
15.4.1 内存映射文件的作用 380
15.4.2 创建内存映射文件 381
15.5 本章小结 387
第16章 图像编程 388
16.1 GDI和TCanvas类 388
16.1.1 理解GDI 388
16.1.2 画笔TPen 389
16.1.3 TCanvas.Pixels特性 391
16.1.4 TCanvas.Brush特性 391
16.1.5 Font字体 392
16.1.6 TCanvas.CopyMode特性 393
16.2 TCanvas的方法 396
16.2.1 TCanvas画线 396
16.2.2 TCanvas画几何形状 396
16.2.3 TCanvas输出文字 397
16.2.4 定制图形 401
16.2.5 设备描述表 403
16.3.4 Form坐标系 404
16.3.3 屏幕坐标系 404
16.3.1 设备坐标系 404
16.3 坐标系统和映射模式 404
16.3.2 逻辑坐标系 404
16.3.5 坐标映射 405
16.3.6 设置映射模式 407
16.3.7 设置窗口/视区范围 407
16.4 高级字体 408
16.4.1 Win32字体类型 409
16.4.2 基本字体元素 409
16.4.3 GDI字体分类 410
16.4.4 显示不同字体 411
16.5 本章小结 411
17.1 一个简单的媒体播放器 412
第17章 多媒体编程 412
17.2 播放WAV文件 413
17.3 播放AVI文件 413
17.4 设备支持 415
17.5 音频CD播放器 416
17.5.1 编写CD播放器程序 416
17.5.2 获取CD播放信息 417
17.6 本章小结 420
附录1 Delphi函数方法参考手册 421
附录2 Win32 API函数库 429
附录3 Delphi网络资源 476