第一章 C++语言简介 1
1.1 C++语言初步 1
1.1.1 C++语言概览 1
1.1.2 if与switch条件表达式 8
1.1.3 switch条件表达式 10
1.1.4 循环控制 10
1.1.5 do-while循环 11
1.1.6 new和delete操作符 12
1.1.7 指针与引用 13
1.2 C++类 14
1.2.1 类的定义 14
1.2.2 类的解释 15
1.2.3 继承 30
1.2.4 多重继承 30
1.2.5 基本文件输入/输出 31
1.3 C++类库和可视化构件模型 31
1.3.1 C++类库 31
1.3.2 可视构件库 32
1.3.3 C++ Builder和VCL 34
第二章 安装和卸载C++ Builder 4 35
2.1 系统要求 35
2.2 安装C++ Builder 4 35
2.2.1 安装程序的启动 35
2.2.2 安装主界面 36
2.2.3 安装信息 37
2.2.4 安装确认 38
2.2.5 安装选项 40
2.2.6 安装路径和文件夹选择 43
2.2.7 复制文件 44
2.3 运行C++ Builder 4 46
2.3.1 创建BCB4快捷方式 46
2.3.2 运行C++ Builder 4 47
2.4 卸载C++ Builder 4 47
2.4.1 启动卸载工具 47
2.4.2 卸载C++ Builder 4 48
3.1.1 IDE定义 49
3.1.2 IDE结构 49
第三章 C++ Builder 4的集成开发环境 49
3.1 C++ Builder 4 IDE概述 49
3.2 C++ Builder 4项目 50
3.2.1 项目的文件 50
3.2.2 C++ Builder 4主菜单和工具栏按钮 51
3.3 项目组管理 52
3.3.1 项目组 52
3.3.2 建立项目组 53
3.3.3 项目选项 53
3.4.1 基本操作 57
3.4 代码编辑器 57
3.4.2 几个编辑器特性 59
3.4.3 编辑器选项 59
3.5 构件面板使用技巧 61
3.5.1 修改构件面板 61
3.5.2 放置多个构件 62
3.6 类观察器 63
3.6.1 类观察器显示 63
3.6.2 类观察器的操作 64
3.7 对象观察器 65
3.7.1 构件选择器 65
3.7.2 属性页 66
3.7.3 事件页面 67
3.8 C++ Builder窗体 67
3.8.1 窗体背景知识 67
3.8.2 窗体的读写属性 68
3.8.3 窗体的只读属性 68
3.8.4 常用的窗体方法 69
3.8.5 常用窗体事件 69
第四章 设计窗体和菜单 70
4.1 设计窗体 70
4.1.1 概述 70
4.1.2 窗体弹出菜单 70
4.1.3 放置和选择构件 71
4.1.4 移动和缩放构件 72
4.1.5 对齐构件 73
4.1.6 设置跳表顺序 74
4.2 设计菜单 75
4.2.1 概述 75
4.2.2 设计主菜单 75
4.2.3 编写代码 78
4.2.4 弹出式菜单的设计 78
4.2.5 制作菜单模板 79
5.1.1 引言 80
5.1.2 Name属性 80
5.1 VCL构件的公用属性 80
第五章 VCL构件 80
5.1.3 Color属性 81
5.1.4 光标(Cursor)属性 81
5.1.5 Enabled属性 82
5.1.6 Font属性 82
5.1.7 Hint属性 83
5.2 VCL构件的主要方法和事件 83
5.2.1 VCL构件的主要方法 83
5.2.2 VCL构件的主要事件 84
5.3.1 编辑构件 85
5.3 标准的Windows控件构件 85
5.3.2 ListBox和ComboBox构件 87
5.3.3 按钮 88
5.3.4 单选钮与复选钮 91
5.3.5 Label构件 92
5.3.6 Panel构件 92
5.4 对话框构件 92
5.4.1 Execute方法 93
5.4.2 File Open和File Save对话框 93
5.4.3 图形对话框 95
5.4.4 Find和Replace对话框 95
5.4.5 Print和Printer Setup对话框 96
5.5 多页面构件 97
5.5.1 多页面界面概述 97
5.5.2 TabControl构件 98
5.5.3 PageControl构件 99
5.5.4 Notebook构件和TabSet构件 101
5.5.5 TabbedNoteBook构件 104
第六章 创建C++ Builder 4应用程序 105
6.1 对象库 105
6.1.1 对象库概述 105
6.1.2 对象库页面 105
6.1.3 对象库视图 108
6.1.4 生成新对象 109
6.1.5 添加对象 110
6.1.6 管理对象库 111
6.2 窗体和应用程序向导 112
6.2.1 向导概述 112
6.2.2 对话框向导 112
6.2.3 应用程序向导 113
6.3 添加函数和数据成员 116
6.3.1 C++ Builder中的类声明 116
6.3.2 添加函数 118
6.4.2 生成构件模板 119
6.4.1 构件模板概述 119
6.4 构件模板 119
6.3.3 添加数据成员和删除代码 119
6.5 资源文件 120
6.5.1 资源文件分类 120
6.5.2 使用资源文件 121
6.5.3 一个实例 121
6.6 包(Packages) 129
6.6.1 包(Packages)概述 129
6.6.2 静态链接和动态链接 129
6.6.3 使用运行包 130
7.1.3 主菜单中的调试选项 132
7.1.2 弹出菜单的调试选项 132
7.1 调试工具 132
7.1.1 调试工具概述 132
第七章 调试工具 132
7.2 设置断点 133
7.2.1 设置和取消断点 133
7.2.2 断点列表窗口 134
7.3 变量跟踪 135
7.3.1 Watch List列表框 135
7.3.2 使用Watch List列表框 136
7.4 使用Debug Inspector 137
7.4.1 启动Debug Inspector 137
7.4.2 使用Debug Inspector 138
7.5 其他调试工具 139
7.5.1 Evaluate/Modify调试工具 139
7.5.2 调用堆栈 140
7.5.3 浏览CPU 140
7.5.4 使用Go to Address 140
7.5.5 DLL查错 141
7.5.6 事件日志(Event Log) 141
7.5.7 模块视图(Modules) 142
7.6 调试技术 142
7.6.1 单步调试 142
7.6.3 调试提示 143
7.6.2 访问失败错误分析 143
7.6.4 设置调试选项 144
第八章 动态链接库 147
8.1 DLL概述 147
8.1.1 DLL定义及分类 147
8.1.2 DLL的优点 147
8.2 DLL中的函数 148
8.2.1 装入DLL 149
8.2.2 DLL中的函数调用 149
8.3 生成DLL 150
8.3.1 输入和输出函数与类 150
8.3.2 生成DLL 151
8.3.3 生成输入库文件 154
8.4 DLL调用应用程序的生成 155
8.4.1 生成应用程序 155
8.4.2 加进DLL头文件 155
8.4.3 加进输入库文件 155
8.5 DLL中的窗体 156
8.5.1 C++ Builder应用程序调用 156
8.5.2 调用DLL中的MDI窗体 156
8.5.3 非C++ Builder应用程序调用 158
8.6 DLL中的资源 158
8.6.2 使用资源DLL 159
8.6.1 生成资源DLL 159
第九章 程序装饰 161
9.1 窗体装饰技术 161
9.1.1 工具栏的使用 161
9.1.2 状态栏的使用 165
9.2 应用程序的打印 169
9.2.1 窗体的Print()方法 169
9.2.2 RichEdit构件的Print()方法 169
9.2.3 Tprinter类和Printere()方法 169
9.2.4 打印位图 170
9.3.2 固有光标 171
9.3 光标的使用 171
9.3.1 光标概述 171
9.3.3 定制光标 172
9.4 上下文帮助 172
9.4.1 编写帮助文件 173
9.4.2 情境标识符和HelpContext属性 173
9.4.3 生成上下文帮助 174
9.4.4 帮助头文件 175
9.4.5 实例 175
9.5 异常处理技术 176
9.5.1 异常处理关键字 176
9.5.2 catch剖析 177
9.5.3 未处理异常 178
9.6 消息处理 179
9.6.1 消息概述 179
9.6.2 消息发送 180
9.6.3 消息处理 180
9.6.4 消息处理函数 181
9.6.5 自定义消息 182
9.7 使用Windows注册表 183
9.7.1 注册表键 183
9.7.2 注册表数据类型 185
9.7.3 使用TRegistry 186
第十章 创建构件 188
10.1 创建新构件 188
10.1.1 New Component对话框 188
10.1.2 生成FlashingLabel构件 189
10.2 编写构件属性和方法 191
10.2.1 属性 191
10.2.2 属性可以直接访问 193
10.2.3 编写构件方法 195
10.3 向FlashingLabel构件增加功能 195
10.3.1 添加属性、方法和事件 195
10.4 测试构件 200
10.4.1 测试程序设计 200
10.3.2 ComponentState属性 200
10.4.2 添加新构件 201
10.5 把新构件加入构件面板中 202
10.5.1 加入构件面板的步骤 202
10.5.2 为新构件定制位图 203
10.6 编写构件的事件 203
10.6.1 事件概述 204
10.6.2 编写构件的自定义事件 204
10.6.3 改写基础类事件 206
10.7 程序清单 207
11.1 数据库基础 214
第十一章 C++ Builder 4数据库结构 214
11.1.1 数据库概念 215
11.1.2 本地数据库 215
11.1.3 客户机/服务器数据库 215
11.1.4 单层、双层和多层数据库结构 215
11.2 Borland数据库引擎 216
11.2.1 BDE驱动器 216
11.2.2 BDE别名 216
11.2.3 创建BDE别名 217
11.2.4 SQL Links 219
11.3 Cocal InterBase 220
11.4 C++ Builder数据库构件 220
11.4.1 数据库构件概述 221
11.4.2 TDataSet类 222
11.4.3 Table构件 225
11.4.4 Query构件 232
11.4.5 StoredProc构件 234
11.4.6 UpdateSQL构件 235
11.4.7 DataSource构件 236
11.4.8 Session构件 236
11.4.9 Database构件 239
11.4.10 BatchMove构件 243
11.4.11 TField类 243
11.5.1 TClientDataset构件概述 245
11.5 客户机/服务器数据库构件 245
11.5.2 浏览和编辑数据 246
11.5.3 索引 247
11.5.4 计算字段 248
11.5.5 统计值 248
11.5.6 数据包 249
11.5.7 与应用服务器通信 250
11.5.8 在文件中存储数据 251
11.6 C++ Builder数据构件 252
11.6.1 数据构件的共同属性 252
11.6.2 DBGrid构件 252
11.6.3 DBNavigator构件 254
11.6.6 DBImage构件 255
11.6.4 DBText和DBEdit构件 255
11.6.5 DBMemo和DBRichEdit构件 255
11.6.7 DBListBox和DBComboBox构件 256
11.6.8 DBLookupListBox和DBLookupComboBox构件 257
11.6.9 DBCheckBox和DBRadioGroup构件 257
11.6.10 DBCtrlGrid构件 258
11.6.11 其它数据构件 260
11.7 数据库应用程序的体系结构 260
11.7.1 设计数据库应用程序 260
11.7.2 数据库应用程序的体系结构 261
11.7.3 Provider 264
11.7.4 与应用服务器连接 267
11.7.5 调用服务器上的接口 269
第十二章 SQL语言基础 270
12.1 结构化查询语言 270
12.2 用select检索数据 271
12.2.1 从表中选择数据 271
12.2.2 where的使用 274
12.2.3 查询结果的排序 277
12.2.4 检索集合数据 278
12.2.5 连接 278
12.2.6 子查询 279
12.3 select和into的联合使用 280
12.2.7 union 280
12.4 insert的使用 281
12.4.1 插入指定的值 281
12.4.2 插入多行 281
12.4.3 省略列列表 281
12.4.4 通过存储过程来插入 282
12.5 update的使用 282
12.6 delete的使用 283
第十三章 建立数据库应用程序 284
13.1 数据库窗体向导 284
13.1.1 生成简单窗体 284
13.1.2 生成主/细目窗体 288
13.2 手工生成数据库窗体 290
13.3 非图形数据库编程 292
13.3.1 读数据库 292
13.3.2 生成数据库表格 296
13.4 数据模块的使用 298
第十四章 快速报表 301
14.1 报表构件 301
14.1.1 QuickRep构件 301
14.1.2 QRBand构件 304
14.1.3 报表设计元素 304
14.2.1 生成简单报表 305
14.2 生成报表 305
14.2.2 生成报表应用程序 307
第十五章 图形编程 309
15.1 图形构件 309
15.1.1 Shape构件 309
15.1.2 Image构件 310
15.1.3 PainBox构件 311
15.2 TCanvas类 312
15.2.1 两种绘图方法的比较 312
15.2.2 TCanvas类 313
15.3.1 画笔、画刷和字体 314
15.3 图形设备接口 314
15.3.2 位图与调色板 317
15.3.3 剪取区域 318
15.4 绘图操作 319
15.4.1 绘制位图 319
15.4.2 绘制文本 320
第十六章 多媒体编程 324
16.1 文字效果 324
16.1.1 文字概述 324
16.1.2 TFont类 325
16.1.3 文字的显示 327
16.1.4 文字动画 329
16.2 图像动画 333
16.3.1 WAV和MIDI文件简介 337
16.3 音乐效果 337
16.3.2 TMediaPlayer构件 338
16.3.3 播放音乐实例 340
16.4 播放视屏文件 343
16.4.1 视屏文件概述 343
16.4.2 用C++ Builder 4播放DAT 344
第十七章 网络编程 348
17.1 分布式组件对象模型DCOM 348
17.1.1 DCOM概述 348
17.1.2 用Borland C++ Builder 4进行DCOM编程 355
17.2.1 Borland C++ Builder提供的Internet控件 365
17.2 Internet编程 365
17.2.2 WinSock编程 366
17.2.3 建立Web浏览器 381
17.2.4 使用FTP控件 393
第十八章 C++ Builder 4程序打包 411
18.1 打包准备工作 411
18.1.1 InstallShieldExpress概述 411
18.1.2 InstallShieldExpress环境 411
18.2 程序打包 412
18.2.1 整理档案 412
18.2.2 打包过程 413