前言 1
第一部分 Delphi编程基础 1
第1章 Delphi集成开发环境 1
1.1 集成开发环境简介 1
目录 1
1.2 集成调试器 5
1.3 开发环境的优化 6
1.3.1 自定义工具栏 6
1.3.2 编程环境设置 7
1.3.4 工程设置 8
1.3.3 编辑环境设置 8
1.4 方法与技巧 9
1.4.1 使用代码浏览器 9
1.4.2 使用代码编辑器 9
1.4.3 使用帮助系统 10
1.4.4 设置IDE桌面 11
第2章 对象Pascal语言 12
2.1 学习对象Pascal语言的一个通用例程 12
2.2.2 保留字和指令字 14
2.2 对象Pascal语言基础 14
2.2.1 标识符 14
2.2.3 注释 15
2.2.4 数据类型 16
2.2.5 运算符 21
2.2.6 语句 24
2.2.7 过程与函数 27
2.3 对象Pascal语言的关键技术 30
2.3.2 类的封装与继承 31
2.3.1 对象和类 31
2.3.3 构造函数和析构函数 32
2.3.4 多态性 35
2.3.5 抽象类 38
2.3.6 运行时类型信息 39
2.3.7 类方法 41
2.3.8 类引用 42
2.3.9 单元文件与工程文件 43
2.4.2 try...except语句 45
2.4 异常处理 45
2.4.1 raise语句 45
2.4.3 try...finally语句 47
2.5 方法与技巧 48
2.5.1 命名规则 48
2.5.2 在编译时自由设置是否获得提示信息 48
2.5.3 使用代码模板 49
2.5.4 使用动态多维数组 49
2.5.5 定义两个相互包含的类 50
2.5.7 引用参数传递 51
2.5.6 获取和使用命令行参数 51
第二部分 Delphi编程的核心技能 53
第3章 窗体和组件 53
3.1 窗体和组件 53
3.1.1 窗体 54
3.1.2 组件 56
3.1.3 在窗体中使用组件 57
3.2 文本组件 60
3.3 特殊输入组件 61
3.4 按钮及其分类组件 63
3.5 列表组件 64
3.6 分组组件 67
3.7 信息反馈组件 69
3.8 表格显示组件 70
3.9 图形显示组件 71
3.10 开发MDI应用程序 73
3.11 常用组件的用法 74
3.12.1 窗体、组件的使用原则 84
3.12 方法与技巧 84
3.12.2 使用信息对话框 85
3.12.3 使用组件的Hint属性 88
3.12.4 使用Edit组件的IME属性 89
3.12.5 将系统字体添加到ComboBox组件中 89
3.12.6 在RichEdit组件中存取文件 90
3.12.7 设置模态对话框的返回值 90
3.12.8 使用事件处理过程中的Sender参数 91
3.12.9 为控件生成多行提示信息 91
3.12.10 生成非矩形窗口 92
3.12.11 移动无标题栏窗口 94
3.12.12 制作动态字幕 95
3.12.13 在窗体上动态地设置背景画面 96
3.12.14 Owner和Parent的区别 97
第4章 菜单、工具栏和状态栏 98
4.1 菜单 98
4.1.2 鼠标右键弹出式菜单 99
4.1.3 使用菜单模板 99
4.1.1 主菜单 99
4.2 工具栏 100
4.2.1 ToolBar 100
4.2.2 CoolBar 100
4.2.3 ControlBar 101
4.3 状态栏 101
4.4 方法与技巧 106
4.4.1 动态创建菜单 106
4.4.2 为菜单动态定义快捷键 108
4.4.3 动态改变菜单 108
4.4.4 定制系统菜单 109
4.4.5 制作图形菜单项 110
4.4.6 在状态栏中添加进度条等其他组件 111
4.4.7 MDI应用程序中的菜单融合 113
4.4.8 制作可随处拖放的工具栏 116
4.4.9 将菜单项移到菜单栏的最右边 117
4.4.10 运行时控件的移动 117
第5章 键盘和鼠标 119
5.1 键盘事件 119
5.2.2 拖曳事件 120
5.2 鼠标事件 120
5.2.1 常用鼠标事件 120
5.3 方法与技巧 122
5.3.1 检测Shift、Alt和Ctrl键是否按下 122
5.3.2 屏蔽系统功能键 123
5.3.3 模拟按下键盘上的某个键 124
5.3.4 限制鼠标移动的范围 124
5.3.5 自定义鼠标 125
5.3.6 设置光标闪烁的速度 126
5.3.7 不同程序间的拖曳操作 127
第6章 文件、目录和驱动器 129
6.1 文件 129
6.2 文件对话框组件 129
6.3 Win3.1相关组件 131
6.4 常用函数 131
6.4.1 文件操作常用函数 131
6.4.2 目录操作常用函数 136
6.4.3 驱动器操作常用函数 138
6.4.4 文件名操作常用函数 139
6.5 方法与技巧 145
6.5.1 获取驱动器类型信息 145
6.5.2 操作INI文件 146
6.5.3 从文件中读取超过255个字符的行 148
6.5.4 获取文件的日期信息 149
6.5.5 检测软盘或光盘是否有变化 150
6.5.6 检测驱动器容量 151
6.5.7 拷贝整个目录 152
6.5.9 检测驱动器是否就绪 153
6.5.8 将文件删除到回收站中 153
6.5.10 获取应用程序的文件名 154
6.5.11 操作临时文件 154
第7章 打印 156
7.1 一些简单的打印输出 156
7.2 TPrinter对象和TScreen对象 156
7.3 打印操作常用函数 157
7.4 方法与技巧 164
7.4.1 获取默认打印机的信息 164
7.4.2 获取打印机队列的状态信息 165
7.4.3 打印窗体 166
第8章 多线程应用程序 167
8.1 进程与线程 167
8.2 TThread类 167
8.3 线程的同步 169
8.4 线程的优先级 170
第9章 动态链接库 176
9.1 概述 176
9.2 创建动态链接库 177
9.3 使用动态链接库 179
9.4 方法与技巧 180
9.4.1 如何调试动态链接库 180
9.4.2 在DLL中使用MessageBox代替ShowMessage 181
9.4.3 如何动态地装入DLL 181
9.4.4 如何定制不同语言版本的应用程序 183
第三部分 Delphi高级编程技术 185
第10章 多媒体技术 185
10.1 多媒体 185
10.1.1 概述 185
10.1.2 多媒体应用领域 186
10.1.3 多媒体软件开发工具 187
10.2 图像格式的处理 188
10.2.1 位图 189
10.2.2 JPEG文件 191
10.3 特殊显示效果 193
10.3.1 画布 193
10.3.2 调用CopyRect 193
10.3.3 调用BitBlt 194
10.4.1 文字动画 199
10.4 动画 199
10.4.2 图像动画 200
10.5 音频、视频 206
10.6 方法与技巧 209
10.6.1 使用MessageBeep与Beep 209
10.6.2 使用PlaySound 210
10.6.3 使用mciSendString 211
11.1.2 表之间的约束 215
11.1.1 关键字 215
11.1 关系数据库 215
第11章 关系数据库 215
11.1.3 结构化查询语言(SQL) 216
11.2 Delphi提供的数据库辅助工具 218
11.2.1 使用SQL Explorer 218
11.2.2 使用Database Desktop 218
11.2.3 使用BDE Administrator 220
11.3 数据库组件 221
11.3.1 TTable 221
11.3.2 TQuery 225
11.3.3 表的连接 227
11.3.4 计算字段 229
11.3.5 查找字段 230
11.3.6 网格 231
11.4 查询记录 232
11.4.1 GotoKey 232
11.4.2 FindKey 233
11.4.3 模糊查询 233
11.5 修改记录 234
11.4.4 Locate 234
11.6 插入和删除记录 235
11.7 数据模块 237
11.8 数据字典查看器 238
11.9 事务 240
11.10 处理数据库异常 244
12.1.4 Borland数据库引擎 248
12.1.3 InterBase服务器 248
12.1.2 InterBase客户例程库 248
12.1.1 客户 248
12.1 客户/服务器的概念 248
第12章 InterBase服务器 248
12.2 数据库的管理和维护 249
12.2.1 创建数据库 249
12.2.2 创建表 250
12.2.3 数据库安全 250
12.2.4 备份与恢复 251
12.3.2 触发器 252
12.3.1 存储过程 252
12.3 服务器端程序 252
12.4 本地缓存 253
第13章 Web与数据库 260
13.1 CGI的工作原理 260
13.2 Delphi对CGI的支持 260
13.3 创建Web应用程序 261
13.4 表单 262
13.5 把信息保存到数据库 264
13.6 查找记录 266
14.1 在DLL中实现对象 270
第14章 COM 270
14.2 接口 274
14.2.1 对象的生存期 277
14.2.2 IUnknown 279
14.2.3 全局唯一标志符(GUID) 281
14.2.4 注册表 281
14.2.5 多个接口问题 281
14.2.6 Variant类型 284
14.2.7 TComObject 289
14.2.8 TTypedComObject 295
14.3.1 创建OLE自动化服务器 307
14.3 OLE自动化 307
14.3.2 建立OLE客户程序 314
14.3.3 访问自动化服务器的方法 316
14.3.4 使用Word 316
14.4 复合文档 319
第15章 分布式程序设计 329
15.1 CORBA结构 329
15.1.1 CORBA在数据库的应用 335
15.1.3 OSFind 341
15.1.2 远程访问 341
15.2 远程数据集 342
15.2.1 基础 342
15.2.2 扩展服务器 346
15.2.3 参数传递 353
15.2.4 主从约束 355
15.2.5 离线处理 358
15.2.6 ActiveForm 361
15.3.1 插口的使用 362
15.3 插口Socket 362
15.3.2 使用插口的一个例子 363
15.3.3 TNMUDP组件 369
第16章 其他编程技术 374
16.1 使用剪贴板 374
16.1.1 组件对剪贴板操作的支持 374
16.1.2 使用剪贴板类 375
16.1.3 操作图形 378
16.1.5 操作定制格式的数据 379
16.1.4 操作组件 379
16.2 动态数据交换(DDE) 381
16.3 操作注册表 385
16.3.1 TRegistry类 387
16.3.2 与注册表相关的API函数 390
16.4 帮助系统的制作 395
16.4.1 RTF文件 395
16.4.2 HPJ文件与HLP文件 398
16.4.3 启动帮助 402
16.5 安装与卸载 403
16.6 方法与技巧 404
16.6.1 获取Windows版本信息 404
16.6.2 获取系统的度量信息和相关配置信息 405
16.6.3 获取CPU信息 407
16.6.4 获取内存信息 408
16.6.5 存取系统的颜色信息 409
16.6.6 获取Windows及系统路径 409
16.6.7 存取计算机名称 410
16.6.9 关闭Windows 411
16.6.8 获取用户注册信息 411
16.6.10 启动控制面板 412
16.6.11 启动屏幕保护 415
16.6.12 使窗体标题栏闪烁 415
16.6.13 使窗口背景颜色渐变 416
16.6.14 隐藏/显示桌面上的图标 416
16.6.15 获取窗口标题栏中的文字 417
16.6.16 制作软件封面 418
16.6.18 使应用程序不出现在Windows的任务栏上 420
16.6.17 隐藏/显示Windows任务栏 420
16.6.19 状态栏编程 421
16.6.20 存取系统参数信息 426
16.6.21 Windows启动时运行程序 427
16.6.22 为程序在启动菜单中创建快捷方式 428
16.6.23 在程序中运行其他程序 429
16.6.24 同时只运行程序的一个实例 429
16.6.25 关闭运行的其他应用程序 431
16.6.26 显示旋转字体 432