目录 2
Part 1 系统编程篇 2
Examble 01 右键注册程序 2
1.1 设计思路 2
1.2 编程原理 2
1.2.1 注册表简介 2
1.2.2 Delphi读注册表的相关操作函数简介 4
1.2.3 Delphi写注册表的相关操作函数简介 4
1.2.4 Delphi操作注册表的其他相关函数简介 5
1.3 实例详解 6
1.3.1 程序运行时显示用户注册信息 6
1.3.2 右犍注册详解 7
Example 02 记事本程序 8
2.1 设计思路 8
2.2 编程原理 9
2.2.1 TRichEdit组件 9
2.2.2 “查找”时话框 10
2.2.3 “替换”对话框 11
2.2.4 Perform函数 11
2.3 实例详解 11
2.3.1 声明变量和对象 12
2.3.2 检查当前文件是否需要保存 12
2.3.3 “保存当前文件”功能 13
2.3.4 “打开文档”功能 13
2.3.5 “字体设置”功能 13
2.3.6 “撤销”功能 14
2.3.7 “查找”功能 14
2.3.8 “自动换行”功能 15
Example 03 系统托盘程序 15
3.1 设计思路 15
3.2 系统托盘程序原理详解 16
3.2.1 Shell_Notifylcon函数 16
3.2.2 消息处理机制 17
3.2.3 动态改变图标 18
3.2.4 资源文件的制作与使用 19
3.2.5 在任务栏上隐藏应用程序 21
3.3 实例详解 21
3.3.1 程序运行时在托盘上添加图标 22
3.3.2 变换托盘图标 23
3.3.3 鼠标单击的消息处理 23
3.3.4 系统菜单中最小化按钮的实现 25
3.3.5 系统退出的实现 25
Example 04 简易计算器 26
4.1 设计思路 26
4.2 操作DLL编程原理 26
4.2.1 DLL原理 26
4.2.2 DLL的特点 26
4.2.3 可执行程序与DLL的区别 27
4.2.4 编写DLL注意事项 27
4.3 实例详解 28
4.3.1 创建动态链接库 28
4.3.2 两个DLL的具体实现 29
4.3.3 使用动态链接库 30
4.3.4 调试动态链接库 32
Example 05 电子秒表系统 33
5.1 设计思路 33
5.2 编程原理 33
5.2.1 CLX应用程序概述 33
5.2.2 TLCDNumber控件 34
5.2.3 FormatDateTime函数 35
5.3 实例详解 35
5.3.1 声明变量和对象 36
5.3.2 响应定时器事件 36
5.3.3 “开始”事件 36
5.3.4 “暂停”事件 37
5.3.5 “继续”事件 37
5.3.6 “停止”事件 37
5.3.7 设置已选定的电子秒表的边框样式 37
5.3.8 设置已选定的电子秒表的数字片段类型 38
Example 06 硬件信息获取系统 38
6.1 设计思路 38
6.2 编程原理 39
6.2.1 获取CPU频率 39
6.2.2 获取显示器刷新频率 39
6.2.3 获取内存信息 39
6.2.4 获取显示卡信息 40
6.2.5 获得驱动器信息 40
6.3 实例详解 41
6.3.1 实现获取CPU频率 41
6.3.2 实现获取显示器刷新频率 42
6.3.3 实现获取内存信息 42
6.3.4 实现获取显示卡信息 42
6.3.5 实现检查指定驱动器是否准备就绪 42
6.3.6 实现获取驱动器信息 43
Example 07 屏幕保护系统 45
7.1 设计思路 45
7.2 编程原理 45
7.2.1 实现图像的随机出现 45
7.2.2 获取桌面位图 46
7.2.3 设置窗口置顶和隐藏鼠标 46
7.3 实例详解 47
7.3.1 声明变量和对象 47
7.3.2 防止屏保程序重复运行 48
7.3.3 创建窗体 48
7.3.4 按空格键后弹出密码框 49
7.3.5 播放启动声音 49
7.3.6 定时器响应事件 49
7.3.7 重画事件 50
Example 08 批量制作邀请函 50
8.1 设计思路 50
8.2 编程原理 51
8.2.1 Word组件 51
8.2.2 Delphi中操作Word文件的方法 53
8.3 实例详解 53
8.3.1 声明变量和对象 54
8.3.2 窗体显示 54
8.3.3 选择文件 55
8.3.4 制作文件 56
精彩实例赏析 58
Part 2 多媒体/图形图像篇 64
Example 09 状态栏上加入可视构件 64
9.1 设计思路 64
9.2 编程原理 64
9.2.1 状态栏组件 64
9.2.2 TAnimate组件 65
9.3 实例详解 65
9.3.1 声明变量和对象 66
9.3.2 创建可视构件对象 66
9.3.3 响应状态栏的重画事件 66
9.3.4 设置进度条和图像参数 66
9.3.5 定时器响应事件 67
Example 10 图像动画系统 68
10.1 设计思路 68
10.2 编程原理 68
10.2.1 定时器组件 68
10.2.2 图像组件 69
10.3 实例详解 69
10.3.1 图像列表中的“增加”功能 70
10.3.2 图像列表中的“删除”功能 71
10.3.3 图像列表中的“确定”功能 71
10 3 4 播放动画 71
10.3.5 播放控制功能 72
Example 11 媒体播放系统 74
11.1 设计思路 74
11.2 编程原理 75
11.2.1 TMediaPlayer组件 75
11.2.2 文件选择组件 76
11.3 实例详解 77
11.3.1 选择媒体文件 78
11.3.2 绑定媒体文件 79
11.3.3 “单击”媒体播放器 79
Example 12 按键发音系统 80
12.1 设计思路 80
12.2 编程原理 80
12.2.1 键盘编程 80
12.2.2 声音资源文件的制作与调用 82
12.2.3 PlaySound的使用方法 82
12.3 实例详解 83
12.3.1 处理键盘事件 83
12.3.2 添加一个字符 84
12.3.3 删除一个字符 84
12.3.4 播放声音 84
12.3.5 伴随音乐启动和退出 84
Example 13 Flash动画播放系统 85
13.1 设计思路 85
13.2 编程原理 86
13.2.1 在Delphi中使用ActiveX控件 86
13.2.2 TShockwaveFlash控件 87
13.2.3 替换Flash弹出菜单 88
13.3 实例详解 88
13.3.1 选择新的Flash文件 89
13.3.2 Flash文件的播放、暂停和停止 89
13.3.3 替换右键弹出菜单 89
13.3.4 全屏播放Flash 90
13.3.5 普通视图播放Flash 91
Example 14 图像处理系统——点运算篇 91
14.1 设计思路 91
14.2 编程原理 92
14.2.1 TBitmap组件 92
14.2.2 像素化图像 92
14.3 实例详解 93
14.3.1 声明变量和对象 93
14.3.2 像素化图像 93
14.3.3 膨胀效果 94
14.3.4 腐蚀效果 95
14.3.5 提取轮廓 95
14.3.6 细化图像 97
14.3.7 Sobel边缘检测 98
Example 15 图像处理系统——几何变换篇 99
15.1 设计思路 99
15.2 编程原理 101
15.2.1 位图和位图对象 101
15.2.2 SetBrushOrgEx函数 101
15.2.3 SetStretchBltMode函数 101
15.3 实例详解 102
15.3.1 声明变量和对象 102
15.3.2 打开位图文件 103
15.3.3 顺时针旋转90 ° 103
15.3.4 逆时针旋转90 ° 103
15.3.5 任意角度旋转 104
15.3.6 缩小 104
15.3.7 放大 105
15.3.8 扭曲效果 105
15.3.9 波浪效果 106
15.3.10 远视图效果 108
15.3.11 水平镜像 108
15.3.12 垂直镜像 109
15.3.13 裁剪图像 109
15.3.14 还原图像 110
Example 16 图像处理系统——特效篇 110
16.1 设计思路 110
16.2 编程原理 112
16.2.1 CopyRect函数 112
16.2.2 BitBlt函数 112
16.3 实例详解 113
16.3.1 声明变量和对象 114
16.3.2 实现飞入效果的函数 114
16.3.3 实现拉伸效果的函数 116
16.3.4 实现百叶窗效果的函数 118
16.3.5 堆沙效果 119
Example 17 图像处理系统——色彩通道篇 120
17.1 设计思路 120
17.2 编程原理 120
17.2.1 RGB颜色空间 120
17.2.2 Delphi操作RGB颜色空间 121
17.3 实例详解 121
17.3.1 声明变量和对象 121
17.3.2 选择色彩通道 122
17.3.3 单一色彩通道 122
17.3.4 调节通道分量 123
精彩实例赏析 125
Part 3 网络通信篇 132
Example 18 网络测速系统 132
18.1 设计思路 132
18.2 编程原理 132
18.2.1 ICMP协议介绍 132
18.2.2 在Delphi中实现ICMP协议 133
18.2.3 WinSock网络编程接口 134
18.3 实例详解 135
18.3.1 对单个目标地址进行Ping操作 136
18.3.2 处理返回信息 136
18.3.3 获得两个目标地址之间的数量值 137
18.3.4 获得下一个目标地址 138
18.3.5 实现目标地址群Ping操作 138
Example 19 局域网聊天系统 139
19.1 设计思路 139
19.2 编程原理 139
19.2.1 UDP协议简介 139
19.2.2 TldUDPClient组件 140
19.2.3 TldUDPServer对象 140
19.3 实例详解 141
19.3.1 程序初始化 141
19.3.2 发送数据 142
19.3.3 接收数据 143
19.3.4 增加聊天人员 143
19.3.5 删除聊天人员 144
Example 20 E-mail发送系统 144
20.1 设计思路 144
20.2 编程原理 145
20.2.1 SMTP协议 145
20.2.2 TldSmtp组件 145
20.2.3 TldMessage组件 146
20.3 实例详解 147
20.3.1 发送邮件 147
20.3.2 增加附件 148
20.3.3 删除附件 148
20.3.4 显示当前状态 149
Example 21 文件传递系统 149
21.1 设计思路 149
21.2 编程原理 150
21.2.1 Socket工作原理 150
21.2.2 Delphi中的Socket组件 151
21.2.3 TClientSocket组件 151
21.2.4 TServerSocket组件 152
21.2.5 使用Socket传送文件的顺序图 153
21.3 实例详解 153
21.3.1 声明变量和对象 153
21.3.2 客户端发送文件 154
21.3.3 客户端接收文件 154
21.3.4 服务器端接收文件 156
21.3.5 取消发送 157
精彩实例赏析 158
Part 4 数据库篇 164
22.1 设计思路 164
22.2 编程原理 165
22.2.1 图表组件 165
22.2.2 TDBChart组件 165
22.2.3 Series对象 167
22.3 实例详解 168
22.3.1 声明变量和对象 168
22.3.2 窗口显示 169
22.3.3 显示图表 170
22.3.4 显示直方图 170
22.3.5 显示3D效果 172
22.3.6 显示旋转效果 172
Example 23 商品管理系统——BDE篇 173
23.1 设计思路 173
23.2 编程原理 173
23.2.1 基于BDE的体系结构 174
23.2.2 BDE控件 174
23.2.3 TDatabase控件 175
23.2.4 建立连接 176
23.2.5 TTable控件 176
23.3 实例详解 178
23.3.1 增加 178
23.3.2 修改 179
23.3.3 删除 179
23.3.4 保存 180
23.3.5 退出 181
Example 24 商场收银系统——ADO篇 181
24.1 设计思路 181
24.2 ADO数据库编程原理 182
24.2.1 基于ADO的体系结构 182
24.2.2 ADO控件 183
24.2.3 连接AD0数据库 183
24.2.4 TADOConnection控件 185
24.2.5 TADOQuery控件 185
24.2.6 TADOStoredProc控件 186
24.3 实例详解 188
24.3.1 增加 189
24.3.2 修改 189
24.3.3 删除 190
24.3.4 保存 190
24.3.5 退出 191
Example 25 用户管理系统——InterBase篇 191
25.1 设计思路 191
25.2 编程原理 192
25.2.1 InterBase数据库 192
25.2.2 InterBase控件 193
25.2.3 建立连接 194
25.3 实例详解 194
25.3.1 声明变量和对象 195
25.3.2 创建窗体 195
25.3.3 显示用户信息界面 195
25.3.4 数据录入 195
25.3.5 数据查询 196
Example 26 用户管理系统——DbExpress篇 197
26.1 设计思路 197
26.2 编程原理 198
26.2.1 DbExpress简介 198
26.2.2 DbExpress组件 199
26.2.3 建立连接 199
26.2.4 TSQLConnection组件 200
26.2.5 TSQLDataSet组件 200
26.2.6 TSimpleDataSet组件 201
26.2.7 TSQLMonitor组件 201
26.3 实例详解 202
26.3.1 声明变量和对象 202
26.3.2 显示窗体 202
26.3.3 更新 203
26.3.4 排序 203
26.3.5 显示DbExpress与后台数据库之间传递的信息 204
Example 27 数据库备份系统 204
27.1 设计思路 204
27.2 编程原理 205
27.2.1 系统数据库master 205
27.2.2 Backup命令 205
27.3 实例详解 206
27.3.1 声明变量和对象 207
27.3.2 窗体显示 207
27.3.3 选择备份目录 208
27.3.4 选择抄送目录 208
27.3.5 设置参数 208
27.3.6 备份数据库 209
Example 28 数据库恢复系统 210
28.1 设计思路 210
28.2 编程原理 210
28.2.1 Drop Database命令 211
28.2.2 Restore命令 211
28.3 实例详解 212
28.3.1 声明变量和对象 213
28.3.2 窗体显示 213
28.3.3 选择恢复文件 214
28.3.4 恢复数据库 214
Example 29 数据导出系统 215
29.1 设计思路 215
29.2 编程原理 216
29.2.1 Excel组件 216
29.2.2 使用AD0直接访问Excel数据文件 217
29.3 实例详解 218
29.3.1 窗体显示 219
29.3.2 导出数据 219
29.3.3 查看Excel文件 221
29.3.4 查看导出数据 221
Example 30 数据库模糊查询系统 221
30.1 设计思路 221
30.2 编程原理 222
30.2.1 设定搜索条件 222
30.2.2 Like运算符 223
30.2.3 Between运算符 224
30.3 实例详解 224
30.3.1 窗体显示 225
30.3.2 选择Between的情况 225
30.3.3 限制只能输入数字 225
30.3.4 运行“模糊查询” 226
Example 31 报表打印——QuickReport篇 227
31.1 设计思路 227
31.2 编程原理 228
31.2.1 QuickReport组件 228
31.2.2 TQuickRep控件 229
31.2.3 TQRBand控件 230
31.2.4 TQRSysData控件 231
31.2.5 QuickReport安装方法 231
31.3 实例详解 231
31.3.1 窗体显示 232
31.3.2 预览 232
31.3.3 打印 232
31.3.4 根据字段值调整显示内容 232
Example 32 报表打印——Rave篇 233
32.1 设计思路 233
32.2 编程原理 234
32.2.1 Rave组件 234
32.2.2 TRvProject组件 234
32.2.3 TRvSystem组件 235
32.2.4 报表设计器 236
32.2.5 DataText组件 237
32.2.6 DataMemo组件 237
32.2.7 Region组件 237
32.2.8 DataBand组件 237
32.2.9 DataCycle组件 237
32.2.10 Bitmap组件 238
32.3 实例详解 238
32.3.1 窗体显示 239
32.3.2 预览和打印 240
Example 33 超市票据打印——FastReport篇 241
33.1 设计思路 241
33.2 编程原理 241
33.2.1 FastReport组件 241
33.2.2 TfrReport控件 243
33.2.3 TfrDBDataSet控件 244
33.2.4 报表设计器 244
33.2.5 Text对象 245
33.2.6 Band对象 245
33.2.7 Line对象 245
33.3 实例详解 246
33.3.1 窗体显示 247
33.3.2 “商品数量”输入框失去焦点事件 247
33.3.3 结账事件 248
33.3.4 “结账付款”界面中的窗体显示 249
33.3.5 “结账付款”界面中的付款确定 249
33.3.6 “显示找零”界面中的窗体显示 250
33.3.7 “显示找零”界面中的打印预览 250
精彩实例赏析 251
Part 5 MIS开发篇 254
Example 34 个人通讯录管理系统 254
34.1 设计思路 254
34.2 编程原理 254
34.2.1 系统功能分析 254
34.2.2 系统模块设计 254
34.2.3 数据库需求分析 255
34.2.4 数据库逻辑结构设计 255
34.2.5 第三方控件XPMenu的安装 256
34 3 实例详解 257
34.3.1 系统设计概述 257
34.3.2 用户登录身份验证模块 257
34.3.3 数据模块 258
34.3.4 系统主窗体 259
34.3.5 分类管理模块 263
34.3.6 名片管理模块 265
34.3.7 查询模块 268
Example 35 图书进销存管理系统 271
35.1 设计思路 271
35.2 编程原理 271
35.2.1 系统功能分析 271
35.2.2 系统模块设计 271
35.2.3 数据库需求分析 271
35 2 4 数据库逻辑结构设计 272
35.3 实例详解 275
35.3.1 系统设计概括 275
35.3.2 用户登录身份验证模块 276
35.3.3 数据模块 277
35.3.4 公用函数单元 278
35.3.5 入库管理模块 278
35.3.6 出库管理模块 286
35.3.7 库存维护模块 289
35.3.8 库存预警模块 291
35.3.9 供应商维护模块 292
35.3.10 数据字典维护模块 292
35.3.11 会员信息维护模块 293
35.3.12 报表统计模块 293
Exapmle 36 仓库信息管理系统 297
36.1 设计思路 297
36.2 编程原理 300
36.2.1 系统功能分析 300
36.2.2 系统模块设计 300
36.2.3 UML系统建模 303
36.2.4 数据库需求分析 306
36 2 5 数据库逻辑结构设计 308
36.3 实例详解 310
36.3.1 系统设计概述 310
36.3.2 系统主界面设计 311
36.3.3 用户登录身份验证模块 312
36.3 4 系统主模块 312
36.3.5 仓库入库模块 313
36.3.6 仓库出口模块 316
36.3.7 仓库盘点模块 316
36.3.8 库存查询模块 317
36.3.9 商品销售查询模块 318
36.3.10 仓库历史记录查询模块 319
36.3.11 供应商信息模块 319
Example 37 学生学籍信息管理系统 321
37.1 设计思路 321
37.2 编程原理 323
37.2.1 系统功能分析 323
37.2.2 系统模块设计 324
37.2.3 UML系统建模 328
37.2.4 数据库需求分析 331
37.2.5 数据库逻辑结构设计 332
37.3 实例详解 337
37.3.1 系统设计概述 337
37.3.2 第3方控件安装 338
37.3.3 用户登录模块 339
37.3.4 学生基本信息输入模块 339
37.3.5 入学成绩输入模块 340
37.3.6 专业管理模块 341
37.3.7 成绩录入、修改模块 342
37.3.8 学生信息变动输入和查询模块 344
37.3.9 学生学位初审模块 344
37.3.10 奖励情况录入模块 346
37.3.11 毕业情况录入模块 346
37.3.12 统计模块 346
37.3.13 数据模块的使用 347
Example 38 医院信息系统 347
38.1 设计思路 347
38.2 编程原理 350
38.2.1 系统功能分析 350
38.2.2 系统模块设计 351
38.2.3 UML系统建模 355
38.2.4 数据库需求分析 360
38.2.5 数据库逻辑结构设计 363
38.3 实例详解 369
38.3.1 系统设计概述 369
38.3.2 程序技术要点说明 370
38 3 3 系统主界而实现 371
38.3.4 数据库服务器配置和数据模块 378
38.3.5 通用组合查询模块 381
38.3.6 门诊管理模块 384
38.3.7 药品管理模块 391
38.3.8 住院管理模块 393
38.3.9 医务人员管理模块 393
38.3.10 辅助资料管理模块 395
38.3.11 安全管理模块 396
38.3.12 帮助文件设计 396
精彩实例赏析 397
Part 6 游戏篇 408
Example 39 五子棋游戏 408
39.1 设计思路 408
39.2 编程原理 408
39.2.1 图像重叠显示 408
39.2.2 将鼠标坐标转换为棋盘上的棋格位置 410
39.3 实例详解 411
39.3.1 声明变量和对象 412
39.3.2 创建窗体 412
39.3.3 响应点击棋盘事件 412
39.3.4 判断胜负 414
精彩实例赏析 416