第一章 C++ Builder 3的IDE 1
1.1 IDE的主窗口 1
1.2 菜单栏 2
1.2.1 File菜单 2
1.2.2 Edit菜单 7
1.2.3 Search菜单 9
1.2.4 View菜单 12
1.2.5 Project菜单 16
1.2.6 Run菜单 20
1.2.7 Component菜单 23
1.2.8 Database菜单 23
1.2.9 Tools菜单 24
1.2.10 Help菜单 24
1.3 工具栏 25
1.4 元件选项板 27
1.4.1 Standard页 27
1.4.2 Additional页 27
1.4.3 Win32页 28
1.4.4 System页 29
1.4.5 Internet页 29
1.4.6 DataAccess页 30
1.4.7 Data Controls页 31
1.4.8 Decision Cube页 32
1.4.9 QReport页 32
1.4.10 Dialogs页 33
1.4.11 Win3.1页 33
1.4.12 Samples页 34
1.4.13 ActiveX页 34
1.4.14 自定义元件选项板 35
1.5 Object Inspector 36
1.6 代码编辑器 37
1.6.1 代码编辑器的窗口 37
1.6.2 代码编辑器的快捷菜单 38
1.6.3 在代码编辑器中搜索 40
1.6.4 在代码编辑器中获得帮助和提示 40
1.6.5 装订区 40
1.6.6 Code Insight 41
1.7 自定义代码编辑器 42
1.7.1 设置编辑器的选项 42
1.7.2 设置代码编辑器的显示和字体选项 43
1.7.3 设置代码编辑器的颜色 44
1.7.4 自定义Code Insight 45
1.8 对象库 46
1.8.1 New页 46
1.8.2 ActiveX页 47
1.8.3 Forms页 48
1.8.4 Dialogs页 48
1.8.5 Projects页 49
1.8.6 Data Modules页 50
1.8.7 Business页 50
1.8.8 New Items 对话框上的快捷菜单 51
1.8.9 在不同的项目间共享对象库 51
1.8.10 在同一个项目内共享对象库 51
1.8.11 代码重用的方式 52
1.8.12 使用对象库中的项目模板 52
1.8.13 自定义对象库 53
1.9 设置IDE的选项 55
第二章 Component与Form 57
2.1 把元件加到Form上 57
2.2 在Form上选择元件 58
2.3 元件的重设尺寸、移动和删除 59
2.4 元件的剪切、复制、粘贴 59
2.5 在Form上对齐元件 60
2.6 把元件分组 60
2.7 向项目中加入新的Form 61
2.8 在多个Form或单元间切换 62
2.9 从一个Form中调用另一个Form 63
2.10 与其他项目共享Form 63
2.11 把Form以ASCII格式存储 64
2.12 使用Form模板和向导 65
第三章 特性与事件 67
3.1 在设计期修改元件的特性 67
3.2 在运行期修改元件的特性 68
3.3 特性编辑器 69
3.3.1 直接键入编辑器 69
3.3.2 下拉列表编辑器 70
3.3.3 对象列表编辑器 70
3.3.4 对话框编辑器 71
3.3.5 嵌套编辑器 71
3.3.6 集合编辑器 72
3.3.7 两个特殊的特性 72
3.4 生成新的事件句柄 72
3.5 建立默认的事件句柄 74
3.6 定位已有的事件句柄 74
3.7 重用事件句柄 74
3.8 删除事件句柄 76
3.9 处理由用户产生的事件 76
3.9.1 鼠标事件 77
3.9.2 鼠标拖曳 77
3.9.3 键盘 79
3.10 处理与菜单有关的事件 79
第四章 项目管理 81
4.1 什么是项目 81
4.1.1 项目文件 81
4.1.2 Form文件 83
4.1.3 包文件 84
4.1.4 桌面文件 84
4.2 Form与单元 84
4.3 有关项目的基本操作 85
4.4 项目管理器 86
4.4.1 项目管理器的工具栏和状态栏 87
4.4.2 项目管理器的快捷菜单 87
4.5 管理项目组 88
4.5.1 怎样建立项目组 89
4.5.2 在项目组中加入DLL项目 89
4.5.3 在项目组中加入BAT项目 89
4.5.4 在项目组中加入Console项目 90
4.5.5 编译项目组 91
4.6 与其他项目共享文件 91
4.7 选择项目模板 92
4.8 编译、重建和运行项目 93
4.9 设置项目选项 93
4.10 指定项目的主Form 94
4.11 指定应用程序的标题、图标和帮助文件 95
4.12 设置项目的搜索路径 95
4.13 设置项目的版本信息 96
4.14 设置包的选项 97
第五章 调试器 99
5.1 错误类型 99
5.1.1 设计期错误 99
5.1.2 编译期错误 100
5.1.3 运行期错误 100
5.1.4 逻辑错误 100
5.1.5 怎样尽可能地减少错误 100
5.2 准备调试 101
5.3 设置调试器的选项 101
5.4 自定义调试器的颜色 102
5.5 控制程序的运行 103
5.5.1 单步执行 103
5.5.2 跟踪执行 104
5.5.3 跳过一段代码 105
5.5.4 返回到执行点 105
5.5.5 暂停运行 105
5.5.6 重新开始运行 105
5.5.7 命令行参数 106
5.6 断点 106
5.6.1 设断点 106
5.6.2 断点列表 107
5.6.3 删除断点 107
5.6.4 禁止和允许断点 108
5.6.5 设置断点的属性 108
5.7 监视表达式的值 109
5.7.1 观察窗口 109
5.7.2 计算和修改表达式的值 110
5.7.3 计算提示 111
5.7.4 Inspector窗口 112
5.8 几个与调试有关的窗口 113
5.8.1 CPU窗口 113
5.8.2 线程状态窗口 115
5.8.3 Call Stack窗口 115
5.8.4 模块窗口 116
5.9 调试动态链接库 117
5.10 其他调试手段 117
第六章 面向对象编程 119
6.1 什么是对象 119
6.2 修改元件的名称 123
6.3 对象的作用域问题 124
6.4 类成员的可见性 125
6.5 对象的相互赋值 126
6.6 自已创建一个对象 127
6.7 VCL的结构 128
6.8 TObject 128
6.9 TPersistent 131
6.10 TComponent 132
6.11 TControl 136
6.12 TWinControl 150
6.13 TGraphicControl 161
6.14 TCustomControl 161
第七章 设计应用程序的图形界面 163
7.1 菜单 163
7.1.1 打开菜单设计器 163
7.1.2 TMenuItem对象 164
7.1.3 菜单嵌套 169
7.1.4 菜单模板和菜单资源 170
7.1.5 TMemu对象 170
7.1.6 TMainMenu元件的特性、方法、事件 172
7.1.7 怎样在运行期控制菜单 173
7.2 快捷菜单 173
7.3 标签 175
7.4 编辑框 178
7.5 多行文本编辑器 182
7.6 命令按钮 184
7.7 复选框 185
7.8 单选框 187
7.9 列表框 189
7.10 组合框 196
7.11 滚杆 199
7.12 分组框 201
7.13 单选分组框 202
7.14 窗格 203
7.15 位图按钮 205
7.16 快捷按钮 206
7.17 按格式输入编辑框 208
7.18 自绘栅格 211
7.19 字符串栅格 217
7.20 图像 218
7.21 几何图形 220
7.22 分界 221
7.23 滚动箱 222
7.24 带复选框的列表框 224
7.25 尺寸调节杆 225
7.26 静态文本 228
第八章 公共对话框 231
8.1 TCommonDialog 231
8.2 “打开”对话框 233
8.3 “另存为”对话框 237
8.4 能预览图像的“打开”对话框 238
8.5 能预览图像的“另存为”对话框 239
8.6 “字体”对话框 239
8.7 “颜色” 对话框 242
8.8 “打印” 对话框 243
8.9 “打印设置” 对话框 246
8.10 “查找” 对话框 246
8.11 “替换” 对话框 248
第九章 实现系统控制功能 251
9.1 定时器 251
9.2 画板 252
9.3 媒体播放器 254
9.4 OLE容器 262
9.4.1 创建OLE客户的一般步骤 263
9.4.2 TOleContainer元件的特性 265
9.4.3 TOleContainer元件的方法 268
9.4.4 TOleContainer元件的事件 273
9.5 动态数据交换 274
9.5.1 开发DDE程序的一般步骤 274
9.5.2 TDDEClientConv元件 275
9.5.3 TDDEClientItem元件 278
9.5.4 TDDEServerConv元件 279
9.5.5 TDDEServerItem元件 280
9.6 文件列表框 281
9.7 目录列表框 284
9.8 驱动器组合框 288
9.9 文件类型过滤器 289
第十章 Win32公共控件 291
10.1 TAB控件 291
10.1.1 TTabControl的特性、方法和事件 292
10.1.2 在TAB控件的客户区输出图形 294
10.1.3 在TAB控件的按钮上输出图形 295
10.2 多页控件 295
10.2.1 Win31风格的多页控件 295
10.2.2 Win95风格的多页控件 296
10.2.3 TPageControl的特性、方法和事件 297
10.2.4 TTabSheet对象 299
10.2.5 在两个多页控件之间拖放页 300
10.3 图像列表 301
10.3.1 怎样在设计期建立图像列表 301
10.3.2 怎样在运行期动态建立图像列表 302
10.3.3 TImageList元件的特性、方法和事件 302
10.3.4 用TImageList元件实现屏幕捕捉器 308
10.4 RTF编辑器 309
10.4.1 TRichEdit元件的特性和方法 309
10.4.2 TTextAttributes对象 315
10.4.3 TParaAttributes对象 315
10.4.4 动态显示当前插入点所在的行和列 316
10.5 跟踪条 317
10.6 进程条 319
10.7 加/减控件 321
10.8 热键控件 323
10.9 AVI播放器 324
10.10 日期和时间控件 327
10.11 树状视图 330
10.11.1 TTreeView元件的特性、方法和事件 331
10.11.2 TTreeNode对象 338
10.11.3 TTreeNodes对象 344
10.12 列表视图 346
10.12.1 TListView元件的特性、方法和事件 348
10.12.2 TListColumns对象 357
10.12.3 TListColumn对象 358
10.12.4 TListItem对象 358
10.13 表头控件 361
10.13.1 怎样在设计期创建和编辑段 361
10.13.2 THeaderControl元件的特性和事件 362
10.13.3 THeaderSection对象 364
10.13.4 THeaderSections对象 365
10.14 状态栏 366
10.14.1 怎样用TPanel元件制作状态栏 366
10.14.2 怎样用TStatusBar元件制作状态栏 367
10.14.3 TStatusBar元件的特性、方法和事件 368
10.14.4 TStutusPanel对象 369
10.15 工具栏 370
10.15.1 用TPanel元件制作工具栏 370
10.15.2 用TToolBar元件制作工具栏 371
10.15.3 怎样在运行期操纵工具栏上的快捷按钮 372
10.15.4 TToolBar元件的特性、方法和事件 373
10.15.5 TToolButton对象 375
10.16 “酷” 376
10.16.1 在设计期建立段 377
10.16.2 在运行期建立段 377
10.16.3 TCoolBar元件的特性、方法和事件 378
10.16.4 TCoolBand对象 380
第十一章 操作Form和应用程序 383
11.1 TScrolling WinControl 383
11.2 TCustomForm 384
11.3 TForm 396
11.4 记忆Form关闭前的状态 397
11.5 MDI程序 398
11.5.1 MDI程序的“父” Form 399
11.5.2 MDI程序的“子” Form 399
11.5.3 自动创建“子” Form的实例 399
11.5.4 怎样在运行期生成 子” Form的实例 400
11.5.5 合并菜单 401
11.5.6 排列打开的子窗口 401
11.6 控制台程序 402
11.7 操纵应用程序 404
11.7.1 TApplication的特性 404
11.7.2 TApplication的方法 408
11.7.3 怎样响应运行期元件的事件 412
11.7.4 TApplication的事件 412
11.8 应用程序的实例 415
11.9 动态链接库 416
11.9.1 怎样访问DLL中的例程 417
11.9.2 怎样写自己的DLL 419
11.9.3 在DLL中使用VCL元件 419
第十二章 操纵屏幕与打印机 421
12.1 TScreen 421
12.2 显示和打印的一致性 427
12.3 TPrinter对象 428
12.4 DEVMODE结构 432
12.5 打印机控制码 433
第十三章 操纵图像 435
13.1 TCanvas 435
13.2 TPen 444
13.3 TBrush 448
13.4 TPicture 450
13.5 TBitmap 452
13.6 TMetafile 458
13.7 TMetafileCanvas 459
13.8 如何设计一个作图软件 460
第十四章 操纵字体、字符串列表、注册表和剪贴板 469
14.1 怎样操纵字体 469
14.2 TStrings 472
14.3 TSrtingList 478
14.4 怎样读写Windows的注册表 480
14.5 操纵剪贴板 485
第十五章 多线程应用程序 489
15.1 多线程概述 489
15.2 创建线程对象 490
15.3 设置线程的优先级 492
15.4 定义线程函数 492
15.4.1 访问VCL 492
15.4.2 线程局部变量 493
15.4.3 检查Terminated特性 494
15.5 锁定和阻塞 495
15.6 依赖另一个线程的执行结果 495
15.7 挂起和唤醒 497
15.8 一个典型的多线程应用程序 498
第十六章 包(Packages) 505
16.1 什么是包 505
16.2 怎样安装运行期包 506
16.3 怎样安装设计期包 507
16.4 建立自己的包 509
16.5 怎样编译包 513
16.6 包的版本信息 514
16.7 怎样发布包 515
第十七章 编写自己的元件 517
17.1 选择祖先类 517
17.1.1 公共祖先类 518
17.1.2 现有的元件 518
17.1.3 元件模板 518
17.1.4 我们的建议 519
17.2 建立元件框架 519
17.3 手工建立元件框架 521
17.4 加入特性 522
17.4.1 加入简单型的特性 522
17.4.2 加入枚举型的特性 523
17.4.3 加入集合型的特性 524
17.4.4 加入对象型特性 525
17.4.5 加入数组型特性 527
17.4.6 公开继承的特性 527
17.4.7 给出特性的默认值 527
17.5 加入方法 528
17.5.1 方法的可见性 528
17.5.2 避免内部相关性 529
17.5.3 给方法命名 529
17.5.4 声明和实现方法 529
17.6 加入事件 530
17.7 编写特性编辑器 531
17.7.1 选择合适的祖先 531
17.7.2 重载某些方法 532
17.7.3 注册特性编辑器 535
17.8 编写元件编辑器 536
17.9 把元件加到元件选项板上 539