基础篇:Delphi深度编程技术 1
第1章 理解Windows消息 1
1.1 消息概述 1
1.2 Windows消息工作机理 2
1.3 Delphi的VCL消息系统处理原理 3
1.4 发送消息 5
1.4.1 Perform() 5
1.4.2 SendMessage()和PostMessage() 5
1.4.3 消息的发送 5
1.6 消息过滤 7
1.5 消息处理 7
第2章 进程与线程 10
2.1 进程与线程 10
2.1.1 进程概述 10
2.1.2 进程的直接创建 10
2.1.3 列举系统打开的进程 12
2.1.4 线程概述 13
2.2 进程间通讯(IPC) 14
2.2.1 利用WM_COPYDATA消息实现进程间通讯 14
2.2.2 利用内存映射文件实现进程间通讯 28
2.3 TThread对象 40
2.3.1 线程的创建 40
2.3.3 线程的终止 44
2.3.2 线程的挂起和恢复 44
2.3.4 与VCL同步 45
2.4 线程同步 46
2.4.1 临界区(CriticalSection) 48
2.4.2 互斥(Mutex) 51
2.4.3 信号量(Semaphore) 55
2.5 进程的优先级别 58
2.5.1 进程的优先级类 58
2.5.2 相对优先级 59
2.6 后台多线程数据查询实例 59
3.1 组件的基本概念 64
第3章 自定义组件的编写 64
3.1.1 属性 65
3.1.2 方法 68
3.1.3 事件 69
3.1.4 拥有关系 70
3.1.5 父子关系 71
3.2 组件创建实例 71
3.3 组件的高级技术——属性编辑器和组件编辑器 76
3.3.1 组件的属性编辑器 76
3.3.2 组件的组件编辑器 78
3.3.3 带有属性编辑器和组件编辑器的自定义组件实例 78
3.4 创建对话框组件 87
4.1.1 文本文件 90
第4章 文件操作 90
4.1 文件的基本操作 90
4.1.2 有类型文件 93
4.1.3 INI文件 94
4.1.4 无类型文件 98
4.1.5 文件的复制 99
4.2 内存映射文件 101
4.2.1 内存映射文件的应用 101
4.2.2 映射文件的使用 102
4.3 内存映射文件的应用 106
5.1 DLL概述 114
第5章 创建DLL应用程序 114
5.2 DLL的创建 115
5.2.1 DLL项目文件 115
5.2.2 Exports关键字的使用 116
5.2.3 DLL中的变量 117
5.2.4 DLL实例:动态DLL中的窗体 117
5.3 DLL的调用 119
5.3.1 静态调用 119
5.3.2 动态调用 121
5.4 DLL的入口函数和出口函数 123
5.4.1 进程/线程的初始化和例程的终止 123
5.4.2 DLL入口/出口示例 124
5.5 利用DLL创建插件程序 127
5.5.1 插件程序的设计思想 128
5.5.2 插件应用程序的创建 128
5.5.3 创建调用插件程序的主程序 130
第6章 两层数据库应用程序 135
6.1 关系型数据库 135
6.1.1 关系型数据库概述 135
6.1.2 结构化查询语言(SQL) 135
6.2 数据库的连接 138
6.2.1 基于BDE的数据库连接 138
6.2.2 基于ODBC的数据库连接 139
6.2.3 基于ADO的数据库连接技术 142
6.3 TSession元件 144
6.4 TDataBase组件 146
6.4.1 TDataBase组件的使用 147
6.4.2 用配置文件动态设置BDE 148
6.5 数据访问组件 149
6.5.1 TTable组件 149
6.5.2 TQuery组件 152
6.5.3 TStoredProc过程 156
6.6 数据感知组件 157
6.7 事务 158
7.1 一个简单的多层应用系统 160
7.1.1 服务器端应用程序的建立 160
第7章 多层数据库应用程序 160
7.1.2 客户端应用程序的建立 163
7.2 多层应用系统处理数据的原理 164
7.2.1 多层应用系统的结构 164
7.2.2 存取数据的运作原理 165
7.2.3 更新数据的运作原理 166
7.3 容错处理和负载平衡 166
7.4 Active Form 174
第8章 Socket编程 179
8.1 WinSock基础 179
8.1.1 TCP、UDP和IP协议 179
8.1.4 面向连接的协议套接字的调用 181
8.1.2 套接字(Socket) 181
8.1.3 客户/服务器模式 181
8.1.5 面向无连接协议的套接字的调用 183
8.2 利用Winsock API实现Socket编程 184
8.2.1 常用WinSock API函数 184
8.2.2 利用WinSock API实现Socket编程 188
8.3 利用组件实现Socket编程 199
8.3.1 TClientSocket组件 199
8.3.2 TServerSocket组件 200
8.3.3 远程抓屏示例 201
8.4 通讯中间件的制作 210
8.4.1 磁盘队列的实现 211
8.4.2 客户端和服务器端发送接收磁盘队列数据的套接字的建立 228
8.4.3 中间件的简单应用 235
第9章 串口编程 241
9.1 串口通信的基础知识 241
9.1.1 同步通信和异步通信 241
9.1.2 波特率和数据传输率 242
9.2 串口通信API 243
9.2.1 DCB数据结构 243
9.2.2 与串口通信相关的函数 246
9.3 利用API函数创建串口通信示例 251
9.3.1 发送数据部分设计(向串口写数据) 251
9.3.3 程序的具体设计和实现 252
9.3.2 数据部分设计(从串口读数据) 252
9.4 利用SPCOMM组件实现串口通信编程 265
9.4.1 SPCOMM组件的安装 265
9.4.2 SPCOMM组件的属性、方法和事件 265
9.4.3 利用SPCOMM通讯组件实现串口通讯的实例 266
应用篇:物资管理信息系统项目应用开发 272
第10章 物资管理信息系统概述及其总体框架设计 272
10.1 系统总体结构设计 272
10.2 物资管理信息系统需求定义和业务流程图 274
10.2.1 仓储管理 274
10.2.4 物资管理系统的业务流程 275
10.2.3 合同管理 275
10.2.2 计划管理 275
第11章 物资管理信息系统后台数据库设计 277
11.1 关系型数据库概述 277
11.1.1 关系型数据库 277
11.1.2 物资管理信息系统数据库的建立 278
11.2 物资管理信息系统数据结构的设计 278
11.2.1 权限管理数据结构的设计 279
11.2.2 仓储管理数据结构的设计 280
11.2.3 计划管理数据结构的设计 281
11.2.4 合同管理数据结构的设计 282
11.2.5 基础设置数据结构的设计 284
第12章 应用服务器的实现 287
12.1 创建应用服务器的实例 287
12.2 状态区编程 288
12.3 动态数据库的连接 292
12.4 远程数据模块的建立 297
第13章 客户端应用程序的设计 299
13.1 客户端应用程序系统流程和系统功能 299
13.1.1 系统流程 299
13.1.2 系统功能 301
13.2 构建客户端应用程序框架 301
第14章 动态连接应用服务器的实现 302
15.1 系统登录的设计 316
第15章 通用权限管理模块的设计 316
15.2 权限设计表中数据的维护 327
第16章 通用查询和报表组件的制作 344
16.1 通用查询组件的创建 344
16.2 通用报表模块的制作 354
第17章 通用基础数据维护模块的设计 363
17.1 界面设计 363
17.2 代码实现 364
17.2.1 以目录树的格式显示部门档案数据 365
17.2.2 利用目录树导航数据 366
17.2.3 利用目录树操作数据 367
17.2.5 打印部门档案 372
17.2.4 按表格的标题排序 372
第18章 物资管理信息系统业务操作模块的设计 375
18.1 数据表的设置 375
18.2 收料单据主表显示区 377
18.3 具体的材料明细表显示区 380
18.4 数据操作区 384
第19章 综合查询模块的设计 390
19.1 数据源的设置 390
19.2 窗体样式设计 390
19.3 代码实现 391
19.3.1 查询数据 391
19.3.2 打印数据 392
19.3.3 全部浏览 393