第一部分 C++Builder编程基础 1
第1章 使用C++Builder进行软件开发 1
1.1 软件开发概况 1
1.1.1 计算模式的发展概况 1
1.1.2 程序设计方法的发展概况 3
1.1.3 软件开发与软件开发人员 4
1.2 集成开发环境简介 6
1.3 例程:第一个Windows应用程序 8
1.4 集成调试器 10
1.5 开发环境的优化 12
1.5.1 自定义工具栏 12
1.5.2 编程环境设置 13
1.5.3 编辑环境设置 14
1.5.4 工程设置 15
1.6 方法与技巧 16
1.6.1 使用代码浏览器 16
1.6.2 使用代码编辑器 17
1.6.3 使用帮助系统 17
1.6.4 设置IDE桌面 18
第2章 C++语言的关键技术 19
2.1 普通注释与特殊格式的注释 19
2.2 const与volatile的用法 20
2.2.1 const 20
2.2.3 volatile 22
2.3 sizeof与#pragma pack的用法 22
2.4 引用 24
2.4.1 引用变量 24
2.4.2 引用参数传递 25
2.5 名空间 26
2.5.1 namespace 27
2.5.2 using 28
2.6 new与delete运算符 30
2.7 void指针 31
2.8 typeid运算符 32
2.9 函数 33
2.9.1 内联函数 34
2.9.2 指定函数形参的默认值 34
2.9.3 参数个数不定的函数 35
2.9.4 模板函数 37
2.9.5 重载函数 39
2.9.6 指向函数的指针 40
2.10.1 类的封装 41
2.10 类与对象 41
2.10.2 类的派生与继承 42
2.10.3 构造函数和析构函数 42
2.10.4 对象的引用参数传递 45
2.10.5 静态成员变量与静态成员函数 47
2.10.6 const类型成员函数与mutable 48
2.10.7 对象的初始化与初始化行 50
2.10.8 拷贝构造函数 52
2.10.9 模板类 54
2.11 友元函数与友元类 56
2.12 运算符重载 57
2.13 派生和继承 59
2.13.1 派生与继承 59
2.13.2 多重、多层派生与继承 63
2.13.3 虚基类 64
2.14 多态性和虚函数 65
2.15 集合 67
2.15.1 集合的基本概念 68
2.15.2 集合的操作 68
2.16 异常处理 72
2.16.1 C++的异常处理 72
2.16.2 BCB中的异常类 75
第二部分C++Builder编程通用技术 83
第3章 窗体和组件 83
3.1 窗体和组件 83
3.1.1窗体 84
3.1.2 组件 86
3.1.3 在窗体中使用组件 87
3.2 文本组件 90
3.3 特殊输入组件 92
3.4 按钮及其分类组件 94
3.5 列表组件 95
3.6 分组组件 98
3.7 信息反馈组件 100
3.8 表格显示组件 101
3.9 图形显示组件 102
3.10 开发MDI应用程序 104
3.11 例程:常用组件的用法 106
3.11.1 例程S03B 106
3.11.2 例程S03C 109
3.11.3 例程S03D 112
3.11.4 例程S03E 113
3.12 方法与技巧 118
3.12.1 窗体、组件的使用原则 118
3.12.2 使用信息对话框 119
3.12.3 使用组件的Hint属性 122
3.12.4 使用Edit组件的IME属性 123
3.12.5 将系统字体添加到ComboBox组件中 124
3.12.6 在RichEdit组件中存取文件 124
3.12.7 设置模态对话框的返回值 125
3.12.8 使用事件处理过程中的Sender参数 126
3.12.9 为控件生成多行提示信息 126
3.12.10 生成非矩形窗口 126
3.12.11 移动无标题栏窗口 129
3.12.12 制作动态字幕 130
3.12.13 在窗体上动态地设置背景画面 131
3.12.14 Owner和Parent的区别 132
第4章 菜单、工具栏和状态栏 134
4.1 菜单 134
4.1.1 主菜单 135
4.1.2 鼠标右键弹出式菜单 136
4.1.3 使用菜单模板 136
4.2 工具栏 137
4.2.1 ToolBar 137
4.2.2 CoolBar 137
4.2.3 ControlBar 138
4.3 状态栏 138
4.4 例程S04A 139
4.5 方法与技巧 144
4.5.1 动态管理菜单 144
4.5.2 定制系统菜单 148
4.5.3 制作图形菜单项 149
4.5.4 在状态栏中添加进度条等其他组件 152
4.5.5 MDI应用程序中的菜单融合 154
4.5.6 制作可四处拖放的工具栏 158
4.5.7 将菜单项移到菜单栏的最右边 158
4.5.8 运行时控件的移动 159
第5章 键盘和鼠标 161
5.1 键盘事件 161
5.2 鼠标事件 162
5.2.1 常用鼠标事件 162
5.2.2 拖曳事件 162
5.3 例程S05A 163
5.4.1 检测Shift、Alt和Ctrl键是否按下 164
5.4 方法与技巧 164
5.4.2 屏蔽系统功能键 166
5.4.3 模拟按下键盘上的某个键 166
5.4.4 限制鼠标移动的范围 167
5.4.5 自定义鼠标 168
5.4.6 设置光标闪烁的速度 169
8.4.7 不同程序间的拖曳操作 171
第6章 文件、目录和驱动器 173
6.1 文件 173
6.1.1 C标准文件类型 173
6.1.2 C++流式文件类 174
6.1.3 非缓冲文件 174
6.2 文件对话框组件 175
6.4.1 文件操作常用函数 176
6.4 常用文件管理函数 176
6.3 Win3.1相关组件 176
6.4.2 目录操作常用函数 182
6.4.3 驱动器操作常用函数 184
6.4.4 文件名操作常用函数 184
6.5 例程S06A 186
6.6 例程S06B 188
6.7 例程S06C 190
6.8 例程S06D 191
6.9方法与技巧 193
6.9.1 获取驱动器类型信息 193
6.9.2 操作INI文件 194
6.9.3 获取文件的日期信息 196
6.9.4 检测软盘或光盘是否有过变化 198
6.9.5 检测驱动器容量 199
6.9.6 拷贝整个目录 200
6.9.7 将文件删除到回收站中 202
6.9.8 检测驱动器是否就绪 203
6.9.9 获取应用程序的文件名 203
6.9.10 操作临时文件 204
第7章 打印 206
7.1 一些简单的打印输出 206
7.2 TPrinter对象和TScreen对象 207
7.3 TPrintDialog、TPrinterSetupDialog组件 208
7.4 打印操作常用API函数 211
7.5 例程S07A 213
7.6 例程S07B 216
7.7 方法与技巧 218
7.7.1 获取默认打印机的信息 218
7.7.2 获取打印机队列的状态信息 219
7.7.3 打印窗体 221
第三部分 C++Builder高级编程技术 223
第8章 数据共享 223
8.1 使用剪贴板 223
8.1.1 组件对剪贴板操作的支持 223
8.1.2 使用剪贴板类 225
8.1.3 操作图形 227
8.1.4 操作组件 229
8.1.5 操作定制格式的数据 230
8.2 动态数据交换(DDE) 231
8.2.1 例程S08F 232
8.2.2 操作程序管理器 235
8.3.1 Windows 95/NT内存管理 237
8.3 内存映射文件 237
8.3.2 内存映射文件 239
8.3.3 映射文件的共享方式 240
第9章 操作注册表 246
9.1 TRegistry类 247
9.2 例程S09A 247
9.3 与注册表相关的API函数 251
9.4 TRegIniFile组件 256
第10章 帮助系统的制作 258
10.1 RTF文件 258
10.2 HPJ文件与HLP文件 261
10.3 启动帮助 266
第11章 安装与卸载 269
12.1 进程与线程 280
第12章 多线程应用程序 280
12.2 TThread类 281
12.3 线程的同步 283
12.4 线程的优先级 284
12.5 例程S12A 284
第13章 动态链接库 291
13.1 DLL基本理论 291
13.1.1 导入与导出匹配 292
13.1.2 隐式链接和显式链接 293
13.1.3 符号链接和序号链接 293
13.1.4 客户程序如何查找DLL 293
13.2 创建动态链接库 294
13.3 使用动态链接库 296
13.4 DLL中包含VCL组件 298
13.5.2 在DLL中使用MessageBox代替ShowMessage 301
13.5 方法与技巧 301
13.5.1 如何调试动态链接库 301
13.5.3 如何动态地装入DLL 302
13.5.4 如何定制不同语言版本的应用程序 303
第14章 图形与多媒体 305
14.1 图形与图像 305
14.1.1 图形对象 306
14.1.2 图形类 306
14.1.3 图形对象、类和组件之间的关系 307
14.1.4 画布类 308
14.1.5 橡皮条例程(S14A) 310
14.2 多媒体 316
14.2.1 概述 316
14.2.2 多媒体应用领域 317
14.2.3 多媒体软件开发工具 318
14.3.1 位图 320
14.3 图像格式的处理 320
14.3.2 JPEG文件 324
14.4 特殊显示效果 326
14.5 动画 334
14.5.1 文字动画 334
14.5.2 图像动画 334
14.6 音频、视频 342
14.7 方法与技巧 346
14.7.1 使用MessageBeep与Beep 346
14.7.2 使用PlaySound 347
14.7.3 使用mciSendString 349
15.1 数据管理的发展 353
15.2 数据库技术的发展 353
第四部分 数据库编程 353
15.1 数据库技术的发展 353
第15章 关系数据库 353
15.2 关系数据库基础 354
15.2.1表 354
15.2.2字段 355
15.2.3数据类型 355
15.2.4记录 356
15.2.5关键字与索引 356
15.2.6完整性 357
15.2.7 Paradox数据库的关键字、索引和引用完整性规则 358
15.2.8 存储过程 358
15.2.10 结构化查询语言(SQL) 359
15.2.9 触发器 359
15.3 数据库设计 368
15.3.1 数据库规范化 368
15.3.2 设计工具 369
15.4 C++Builder提供的数据库辅助工具 369
15.4.1 SQL Explorer 370
15.4.2 Database Desktop 372
15.4.3 BDE Administrator 374
第16章 数据库组件 377
16.1 设计数据库应用程序 377
16.1.1 使用数据库 377
16.1.2 数据库应用程序结构 379
16.1.3 设计用户界面 382
16.2 常用数据库组件 384
16.2.1 例程S16A 385
16.2.2 数据访问组件 393
16.2.3 数据控制组件 402
16.2.4 表的连接 403
16.2.5 计算字段 407
16.2.6 查找字段 409
16.2.7 DBGrid组件 411
16.3 查询记录 412
16.3.1 使用GotoKey 413
16.3.2 使用FindKey 414
16.3.3 使用模糊查询 415
16.3.4 使用Locate 416
16.4 修改记录 417
16.5 插入和删除记录 418
16.6 数据模块 420
16.7 数据字典查看器 422
16.8 事务 425
16.9 处理数据库异常 431
16.10 报表组件 436
16.10.1 QuickRep组件 438
16.10.2 Band组件 439
16.10.3 创建一个简单的报表(例程S16P) 440
16.10.4 QuickReport向导 443
第17章 InterBase服务器 445
17.1 设置InterBase 445
17.1.1 设置本地InterBase 445
17.1.2 设置InterBase别名 446
17.2.2 InterBase客户例程库 447
17.2.3 InterBase服务器 447
17.2.1 客户 447
17.2 客户/服务器的概念 447
17.2.4 Borland数据库引擎 448
17.3 数据库的管理和维护 448
17.3.1 创建数据库 448
17.3.2 创建表 450
17.3.3 数据库安全 451
17.3.4 备份与恢复 451
17.4 服务器端程序 453
17.4.1 存储过程 453
17.4.2 触发器 453
17.5本地缓存 454
18.1.2 DAO 461
18.1.1 ODBC 461
18.1 数据库客户技术概述 461
第18章 OLE DB/ADO 461
18.2 OLE DB/ADO原理 462
18.3 ADO组件 462
18.3.1 连接到一个ADO数据存储 463
18.3.2 使用ADO数据集组件 468
18.3.3 使用ADO命令组件 475
18.3.4 例程S18A 476
第19章 Web与数据库 481
19.1 数据库与Internet 481
19.1.1 Web浏览器与Web服务器 481
19.1.2 Web文档 482
19.1.3 统一资源定位符URL 482
19.1.5 ISAPI/NSAPI概况 483
19.1.4 CGI概况 483
19.2 CGI编程 484
19.2.1 普通CGI编程 484
19.2.2 CGI数据库编程 489
19.2.3 普通ISAPI编程 489
19.3 C++Builder对CGI与ISAPI/NSAPI的支持 489
19.3.1 TWebModule 490
19.3.2 TWebResponse 491
19.3.3 TWebRequest 491
19.4 创建Web应用程序 492
19.4.1 CGI类型服务器程序 492
19.4.2 ISAPI/NSAPI类型服务器程序 494
19.4.3 表单 500
19.4.4 把信息保存到数据库 502
19.5.1 PageProducer组件 506
19.5 HTML生成器组件 506
19.5.2 QueryTableProducer组件 508
19.5.3 TDataSetTableProducer组件 510
19.5.4 DataSetPageProducer组件 512
第五部分 组件对象模型(COM) 515
第20章 COM理论与应用 515
20.1 COM基础理论 515
20.1.1 软件组件的特点 516
20.1.2 DLL的局限性 516
20.1.3 COM的特性 517
20.2 COM对象和接口 517
20.2.1 COM对象 517
20.2.2 COM接口 518
20.2.4 自定义模拟接口 521
20.2.3 C++抽象基类 521
20.2.5 IUnknown接口 524
20.3 COM客户与服务器 524
20.3.1 COM客户 524
20.3.2 COM服务器 524
20.3.3 类厂 526
20.3.4 COM服务器的定位 526
20.4 创建COM应用程序 529
20.4.1 类型库 529
20.4.2 类型库编辑器 529
20.4.3 创建COM服务器程序 534
20.4.4 创建COM客户程序 539
21.1 自动化概述 545
21.1.1 派发接口 545
第21章 OLE自动化 545
21.1.2 双接口 546
21.1.3 早期绑定和后期绑定 547
21.1.4 Variant类型 547
21.2 创建OLE自动化服务器 553
21.3 创建OLE客户程序 555
21.4 完成Word和Excel自动化 557
21.4.1 添加/删除服务器组件 557
21.4.2 启动Word和Excel 560
21.4.3 Word和Excel自动化对象 561
21.5 复合文档 566
21.5.1 为没有类型库的服务器创建客户应用程序 566
21.5.2 复合文档 567
22.1 分布式系统 577
22.1.1 分布式系统的发展 577
第六部分 分布式程序设计 577
第22章 MIDAS和DCOM 577
22.1.2 分布式系统使用的技术 579
22.1.3 C++Builder能开发的分布式结构 579
22.2 MIDAS 580
22.2.1 MIDAS组件 580
22.2.2 MIDAS应用系统结构 581
22.3 DCOM 582
22.4 开发多层应用系统 582
22.4.1 创建应用程序服务器 583
22.4.2 创建客户应用程序 586
22.4.3 更新数据 588
22.4.4 查询数据 591
22.4.5 参数传递 593
22.4.6 主从约束 595
22.4.7 离线处理 598
22.5 DCOM和多层应用系统的配置 599
22.5.1 客户端应用程序的分发 600
22.5.2 服务器端应用程序的分发 601
第23章 ActiveForm 602
23.1 ActiveX控件 602
23.2 ActiveForm概述 602
23.2.1 如何创建ActiveForm组件 603
23.2.2 注册ActiveX控件 603
23.2.3 在网络上配置ActiveX控件 604
23.2.4 开发在IE中使用的ActiveForm 605
23.3 浏览器中的数据库ActiveForm 609
23.4 技巧:将Delphi的应用程序转换成ActiveFrorm 612
第24章 CORBA与分布式应用程序 613
24.1 CORBA结构 613
24.1.1 存根和构架 614
24.1.2 聪明代理 614
24.1.3 VisiBroker CORBA系统的运行流程 615
24.2 编写CORBA应用程序 615
24.2.1 编写CORBA应用程序服务器 616
24.2.2 编写CORBA客户程序 625
24.3 编写CORBA数据库应用系统 629
24.3.1 创建对象服务器 629
24.3.2 创建客户应用程序 632
24.4.1 OSAgent 637
24.4.2 OSFind 637
24.4 VisiBroker简介 637
24.4.3 OAD和IREP 638
第25章 其他编程方法与技巧 641
25.1 获取Windows版本信息 641
25.2 获取系统的度量信息和相关配置信息 642
25.3 获取CPU信息 644
25.4 获取内存信息 645
25.5 存取系统的颜色信息 646
25.6 获取Windows及系统路径 647
25.7 存取计算机名称 647
25.8 获取用户注册信息 648
25.9 关闭Windows 649
25.10 启动控制面板 649
25.12 使窗体标题栏闪烁 652
25.11 启动屏幕保护 652
25.13 使窗口背景颜色渐变 653
25.14 隐藏/显示桌面上的图标 654
25.15 获取窗口标题栏中的文字 654
25.16 制作软件封面 655
25.17 隐藏/显示Windows任务栏 658
25.18 使应用程序不出现在Windows的任务栏上 658
25.19 状态栏编程 658
25.20 存取系统参数信息 665
25.21 Windows启动时运行程序 666
25.22 为程序在启动菜单中创建快捷方式 667
25.23 在程序中运行其他程序 668
25.24 同时只运行程序的一个实例 669
25.25 关闭运行的其他应用程序 671
25.26 显示旋转字体 672