第一篇 OLE自动化 1
第1章OLE自动化 3
1.1 创建OLE自动化对象 3
1.2 OLE对象的两种状态 5
1.3 对象链接与嵌入的比较 5
1.4 OLE容器 6
1.5 OLE的数据类型 9
1.5.1 OLE的基本数据类型 10
1.5.2 Ole Variant类型 10
1.6 Ole Variant类型的应用 13
1.6.1 创建OLE Automation对象的实例 13
1.6.2 访问Automation对象的特性 14
1.6.3 访问Automation对象的方法 15
2.1 编辑类型库 17
第2章 开发OLE自动化服务器程序 17
2.2 操纵Automation对象 18
2.2.1 添加新的属性 18
2.2.2 添加新的方法 19
2.2.3 添加新的事件 19
2.3 制作一个简单的自动化客户 20
2.4 制作一个简单的自动化服务器 23
第3章 OLE在Office系统中的实现 33
3.1 OLE文件 33
3.2 Delphi 6与Office系统的连接 34
3.2.1 设计多文件窗体 34
3.2.2 代码实现 34
3.2.3 运行程序 44
3.3.1 从Delphi 6导出数据到Word 2000 46
3.3 导入数据到Office系统 46
3.3.2 从Delphi 6导出数据到Excel 2000 51
3.3.3 从Delphi 6导出数据到PowerPoint 2000 53
第二篇 DLL的使用 59
第4章 DLL概述 61
4.1 认识DLL 61
4.2 为什么使用DLL 62
4.2.1 共享代码、资源和数据 63
4.2.2 隐藏实现的细节 63
4.2.3 自定义构件 63
4.3 设置DLL的首选基地址 64
4.4 DLL工程文件 65
4.4.1 DLL工程文件与普通Delphi工程文件的区别 65
4.4.2 DLL中的变量 66
4.5.1 使用关键字Exports 67
4.4.3 DLL与EXE文件 67
4.5 在Delphi中创建简单的DLL 67
4.5.2 创建DLL 68
4.5.3 DLL的初始化代码 72
4.5.4 例程——创建一个简单的DLL 73
4.6 显示DLL中的窗体 76
4.6.1 显示DLL中的模式窗体 76
4.6.2 显示DLL中的非模式窗体 78
第5章 窗体重用的实现 81
5.1 重用DLL的设计 81
5.1.1 口令设置窗体 81
5.1.2 口令检查窗体 84
5.1.3 保存DLL 84
5.2 重用DLL的调用 85
6.1 调用DLL 87
6.1.1 静态调用DLL 87
第6章 DLL的调用及调试 87
6.1.2 动态调用DLL 91
6.1.3 静态调用与动态调用的区别 97
6.2 访问DLL 97
6.2.1 DLL的入出口函数 97
6.2.2 一个允许共享数据的DLL 102
6.2.3 访问DLL中的共享数据 104
6.2.4 访问DLL中的对象及方法 107
6.3 DLL调试技巧 112
6.3.1 设置调试选项 113
6.3.2 使用内部调试器 114
6.3.3 单步执行 117
6.3.4 使用监视窗口 117
6.3.5 其他的调试工具 118
6.3.6 调试DLL 119
第三篇 多线程编程 121
第7章 Windows系统的消息、事件和多任务 123
7.1 进程与线程 123
7.2 Win32的内存管理 126
7.3 Win32的消息 127
7.3.1 Win32的消息机制 127
7.3.2 Windows的消息处理 130
7.3.3 消息分类和消息句柄 133
7.3.4 消息陷阱 135
7.4 Windows事件 137
7.5 发送消息与时间处理 138
第8章 TThread对象 141
8.1 在应用程序中使用多线程 141
8.2 线程的控制 141
8.2.1 线程的创建 142
8.2.2 线程的挂起和恢复 146
8.2.3 线程的终止 147
8.3 设置线程的优先级 149
8.4 线程的调度 151
8.4.1 抢先式调度 151
8.4.2 非抢先式调度 151
8.5 测试线程代码的执行时间 151
8.6 设计一个简单的多线程 153
8.6.1 设计窗体 153
8.6.2 创建线程对象 154
8.6.3 添加事件代码 156
8.6.4 运行程序 156
8.7 复杂例程——利用多线程排序 157
8.7.1 设计窗体 157
8.7.2 程序实现 158
8.7.3 运行程序 165
8.8 多线程与数据库 165
第9章 多线程的管理 171
9.1 线程的局部存储 171
7.1.1 缓存线程对象 171
7.1.2 线程的局部变量 172
7.1.3 局部存储示例 173
9.2 多线程的同步 175
9.2.1 多线程的同步机制 175
9.2.2 使用Synchronize方法 176
9.2.3 使用VCL类的Lock对象方法 177
9.2.4 使用WaitFor方法 177
9.2.5 利用Windows API实现同步 182
第四篇 Delphi 6的文件处理 191
10.1.1 文本文件的处理 193
第10章 文件处理 193
10.1 文件的输入/输出 193
10.1.2 类型文件的处理 197
10.1.3 无类型文件的处理 198
10.1.4 TFileStream类 201
10.1.5 应用举例 202
10.2 内存映射文件 208
10.2.1 内存映射文件的应用 209
10.2.2 创建/打开内存映射文件 209
10.2.3 创建文件映射对象 210
10.2.4 建立文件视图的映射 210
10.2.6 关闭文件映射对象 211
10.2.7 内存映射文件的一致性 211
10.2.5 取消文件视图的映射 211
10.2.8 内存映射文件实例 212
10.2.9 一个文本搜索程序 214
10.3 目录和驱动器 222
10.3.1 获得可用的驱动器列表 222
10.3.2 获取驱动器信息 223
10.3.3 获取Windows目录的信息 225
10.3.4 获取System目录所在位置 226
10.3.5 获取当前目录 226
10.3.6 在目录中查找文件 227
10.3.7 复制和删除目录树 230
10.3.8 获取文件的版本信息 235
第五篇 GUI开发 245
11.1.1 屏幕坐标系 247
11.1.2 窗口客户区坐标系 247
11.1 常用的坐标系统与坐标转换 247
第11章 坐标系统和映射模型 247
11.1.3 逻辑坐标系 248
11.1.4 窗体坐标系 248
11.2 GDI坐标系统和映射模式 248
11.3 设置映射模式 250
第12章 图像显示与图形绘制 251
12.1 图像组件TImage 251
12.1.1 TImage组件的属性 252
12.1.2 TImage组件的方法 270
12.1.3 TImage组件的事件 273
12.2 TImage组件的应用 275
12.2.1 TImage组件在VCL库中的地位 275
12.2.2 TImage组件应用举例 276
12.3 图形组件——TCanvas 296
12.3.1 TCanvas的属性 297
12.3.2 TCanvas的方法 307
12.3.3 TCanvas控件的事件 312
12.4 TCcavas控件应用举例 312
第13章 高级图形程序开发技术 337
13.1 编写绘画程序 337
13.2 编写动画程序 345
13.2.1 第一种实现:绘制一擦除法 346
13.2.2 第二种实现:TAnimate组件的使用 352
13.3 制作字体动画 356
第六篇 多媒体应用的开发 361
第14章 创建媒体播放器 363
14.1 多媒体的基本概念 363
14.1.1 多媒体系统的层次结构 363
14.2.1 TMediaPlayer组件概述 364
14.2 TMediaPlayer(媒体播放器)组件 364
14.1.3 数字音频的基本概念 364
14.1.2 数字视频的基本概念 364
14.2.2 TMediaPlayer组件的属性 365
14.2.3 TMediaPlayer组件的方法 375
14.2.4 TMediaPlayer组件的事件 382
14.3 制作媒体播放器 383
第15章 播放视频和音频 395
15.1 播放音频 395
15.1.1 用TMediaPlayer播放WAV文件 395
15.1.2 用PlaySound函数播放WAV文件 396
15.2 播放视频 398
15.3 制作CD播放器 403
第七篇 组件、控件开发 407
16.1.1 Delphi可视组件类库 409
16.1 Delphi组件编程概述 409
第16章 组件开发 409
16.1.2 建立组件的起点 410
16.1.3 手工创建组件 411
16.1.4 测试未安装的组件 412
16.1.5 测试已安装的组件 414
16.2 面向对象技术 414
16.2.1 组件的访问控制 414
16.2.2 派送方法 417
16.2.3 创建属性 419
第17章 组件设计 447
17.1 创建图形组件 447
17.1.1 创建和注册组件 447
17.1.2 公布继承属性 448
17.1.3 增加图形功能 448
17.2.1 创建并注册组件 450
17.2 定制表格组件 450
17.2.2 发布继承的属性 451
17.2.3 改变初始值 452
17.2.4 调整单元格大小 453
17.2.5 填充单元格 454
17.2.6 跟踪日期 454
17.2.7 浏览月和年 459
17.2.8 浏览日期 459
第八篇 网络编程 463
第18章 利用Delphi 6设计Web 浏览器 465
18.1 浏览器的工作原理 465
18.1.1 URL与域名系统 466
18.1.2 HTTP协议 469
18.2 浏览器的设计 490
18.2.1 浏览器组件介绍 491
18.2.2 设计Web浏览器 503
18.2.3 页面生成组件 530
第19章 设计Web服务器 549
19.1 服务器工作原理 549
19.1.1 Intenret组件 550
19.1.2 服务器的调度与管理 552
19.2 应用层协议控件及应用 578
19.2.1 TNMFTP 578
19.2.2 TNMUDP 599
19.2.3 TNMNNTP 604
19.2.4 XML 618
19.3 电子邮件系统的开发 625
19.3.1 TNMSMTP 625
19.3.2 TNMPOP3 632
19.3.3 一个复杂的E-mail收发程序 638