第1章 绪言 1
1.1 程序员开发之路 1
1.2 本书学习方法 1
1.3 Delphi开发分类 2
1.4 对共享软件的看法 3
1.5 支持源代码开源 3
1.6 关于系统分析师 3
1.7 关于计算机语言 3
第2章 开发串口通讯程序 5
2.1 串口通讯组件的结构 5
2.1.1 事件对象的使用 6
2.1.2 接收数据线程 8
2.1.3 发送数据线程 8
2.2 在Delphi IDE环境开发组件 9
2.3 使用线程类TThread 11
2.4 组件的调试 12
2.5 代码分析 12
2.6 应用程序设计 23
2.7 总结 28
习题 28
第3章 万能图形编辑器 29
3.1 功能分析 29
3.2 知识准备 30
3.3 TMyShape源代码分析 30
3.4 在应用程序中动态创建可视组件 45
3.5 总结 52
习题 52
第4章 通用表格编辑器 53
4.1 .INI文件的使用 53
4.2 .INI文件的结构 54
4.3 .INI文件的读写 54
4.4 .INI文件的高级应用 56
4.5 .INI文件的优缺点 60
4.6 总结 60
习题 60
第5章 逻辑梯形图编辑器 61
5.1 学习目标 61
5.2 结构化存储复合文件的结构 61
5.3 .STG文件的读写 62
5.4 .STG文件的优缺点 66
5.5 .INI和.STG文件的性能测试比较 66
5.6 “简易逻辑梯形图编辑器”的开发 68
5.6.1 逻辑梯形图的数据结构 68
5.6.2 类TMyLogic的实现 70
5.6.3 类TLGLink的实现 72
5.6.4 类TTestLG的实现 73
5.7 关于逻辑梯形图路径的遍历 79
5.8 总结 80
习题 80
第6章 CMOS数据读写程序 81
6.1 编写组件访问IO内存地址 81
6.2 组件源代码分析 81
6.3 TMyWinIO的使用 86
6.4 总结 88
习题 89
第7章 多声卡音频自动播出系统 90
7.1 需求分析 90
7.2 知识准备 90
7.3 混音器组件简介 91
7.4 混音器组件源代码分析 91
7.4.1 混音器类 91
7.4.2 混音通道类 93
7.4.3 混音效果管理类 95
7.5 节目表编辑器简介 96
7.6 自动播出软件简介 99
7.7 总结 109
习题 109
第8章 报表打印与动态连接库 110
8.1 任务分析 110
8.2 如何显示.DLL中的窗体 111
8.3 创建包含窗体的动态连接库 112
8.4 如何模拟显示报表和打印报表 115
8.5 总结 121
习题 122
第9章 坦克大战游戏程序编写 123
9.1 编写实时游戏程序的要求 123
9.2 Tank War游戏简介 124
9.3 素材库程序编写 125
9.4 地图编辑程序编写 133
9.5 游戏主程序编写 141
9.5.1 精灵基类Tsprite的实现 141
9.5.2 精灵引擎TSpriteEngine的实现 144
9.5.3 坦克类的实现 145
9.5.4 主控程序编写 152
9.6 总结 159
习题 159
第10章 系统编程——键盘监视 160
10.1 任务分析 160
10.2 建立键盘监视.DLL 160
10.3 键盘监视组件的编写 169
10.4 创建应用程序“键盘监视” 179
第11章 服务程序编写——定时关机 180
11.1 需求分析 180
11.2 如何编写服务程序 181
11.3 源代码分析 182
11.4 安装和使用服务程序 189
习题 190
第12章 进程隐藏——监视系统键盘 191
12.1 进程和线程 191
12.2 创建进程隐藏程序 193
12.3 动态连接库的编写 198
习题 203
第13章 局域网编程 204
13.1 学习任务 204
13.2 选择通讯协议 205
13.3 获取局域网中的工作组和计算机 206
13.4 建立简单的通讯联络方式 207
13.5 取得远程计算机的屏幕图像 207
13.6 取得远程计算机的进程信息 210
13.7 改进思路 211
13.8 完整代码 211
习题 228
第14章 再谈Win32 SDK编程 229
14.1 再谈使用Win32 API的必要性 229
14.2 混音器编程中使用API 229
14.2.1 如何确定相关API之间的关系 230
14.2.2 正确使用数据结构 233
14.3 使用API的经验总结 234
14.4 用组件封装API 235
习题 235
第15章 软件编程实例 236
15.1 实例——工作任务管理器 236
15.1.1 需求目的 236
15.1.2 设计构思 237
15.1.3 主要API函数介绍 238
15.1.4 主要工作流程 239
15.1.5 习题 243
1.5.2 实例2——桌面提示器 243
15.2.1 需求发现 243
15.2.2 设计思路 245
15.2.3 改变桌面墙纸 245
15.2.4 习题 248
15.3 实例3——邮件群发程序 249
15.3.1 非功能性要求 249
15.3.2 使用Indy9组件发送邮件 251
15.3.3 使用多线程方式发送邮件 251
15.3.4 共享软件改进建议 256
习题 257
附录 258
光盘使用说明 258
开发包的安装 258