图书介绍
Borland C++ Builder应用开发大全PDF|Epub|txt|kindle电子书版本网盘下载
- (美)(C.卡尔弗特)Charlie Calvert等著;徐科等译 著
- 出版社: 北京:清华大学出版社
- ISBN:7302035989
- 出版时间:1999
- 标注页数:1115页
- 文件大小:114MB
- 文件页数:1135页
- 主题词:Builder
PDF下载
下载说明
Borland C++ Builder应用开发大全PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分 入门指南1
序1
第1章 C++Builder导论1
1.1 本书面向的对象1
1.2 如何阅读本书2
1.2.1 本书的指导思想2
1.2.2 分布式计算3
1.3 新的调试工具4
1.3.1 调试一个DLL8
1.3.2 在EXE文件内部调试DLL9
1.3.3 在DLL中设置断点以及其他的技巧10
1.3.4 与C++Builder 1.0版本的区别11
1.4 VCL的概念12
1.4.1 可视化组件的时代12
1.4.2 组件的优点12
1.4.3 核心技术:组件、属性、委托模型13
1.5 为什么使用VCL14
1.5.1 保留OWL和MFC中的代码15
1.6 准备工作15
1.6.1 版权说明15
1.6.2 代码中的错误16
1.6.3 有关引用Delphi的问题16
1.7 小结17
1.6.5 配套的光盘17
1.6.4 优化代码17
第2章 事件18
2.1 事件:C++Builder委托模型18
2.1.1 委托和Windows API函数18
2.1.2 在C++Builder中创建事件19
2.1.3 委托与继承19
2.1.4 免协议编程(Contract-Free Programming)20
2.1.5 委托模型的小结20
2.2 使用委托模型20
2.2.1 C++Builder的事件:EVENTS1程序21
2.2.2 处理OnClick事件22
2.2.3 处理MouseDown事件23
2.2.4 响应KeyDown事件24
2.2.5 处理OnKeyPress事件24
2.3 了解事件24
2.3.1 为什么Windows是面向事件的26
2.4 从事件中提取信息26
2.4.1 使用集合跟踪消息27
2.4.2 SETEXP程序27
2.4.3 使用TShiftState29
2.4.4 并集、交集和差集30
2.5 EVENTS2程序:事件的详细内容31
2.5.1 移动鼠标事件的详细情况36
2.5.2 捕捉虚拟键37
2.5.3 直接处理事件38
2.6 MENUDEF程序:菜单、WM_COM_MAND和WndProc41
2.6.1 了解MENUDEF程序41
2.6.2 获取菜单项的ID值45
2.6.3 捕捉WM_COMMAND消息46
2.6.4 将WndProc作为程序的主函数47
2.7 小结48
第3章 异常50
3.1 如何使用异常50
3.2 有关异常的理论51
3.2.1 异常的作用51
3.2.3 整个程序是一个try模块52
3.2.2 缺省的异常处理程序52
3.2.4 未处理的异常所造成的危险53
3.3 异常类53
3.4 异常的基本语法55
3.4.1 一个简单的try..catch模块57
3.4.2 将异常与出错字符串相对应58
3.4.3 查找出错的位置59
3.4.4 异常处理的小结60
3.5 发送异常61
3.5.1 发送一个整数63
3.5.2 发送VCL异常类64
3.5.3 了解VCL异常类65
3.5.4 多重catch语句66
3.5.5 在通用的catch语句中捕获异常67
3.6 创建和生成自己的异常68
3.7 再次发送异常72
3.8 异常和析构函数73
3.9 流、异常和释放内存78
3.10 代替缺省的异常处理程序81
3.11 使用资源跟踪出错字符串84
3.12 小结90
第4章 C++类和可视化组件模型91
4.1 多重继承91
4.1.1 处理其他类型的继承92
4.2 不使用多重继承的类库设计93
4.2.1 输出流93
4.2.2 一般性和特殊性94
4.2.3 多重继承和多文档94
4.2.4 如何使用多重继承96
4.3 异常处理96
4.3.1 操作系统的异常96
4.3.2 混合异常模型98
4.3.3 VCL异常98
4.4 运行时的类型信息99
4.5 纯虚拟函数101
4.6 接口与实现102
4.7 静态分配104
4.8 构造对象106
4.9 小结106
第2部分 关系数据库107
第5章 数据库基础知识107
5.1 建立数据库工具108
5.2 数据库基础知识108
5.3 命名和结构约定110
5.4 使用TQuery对象开发SQL112
5.4.1 数据模块112
5.5 TDataModule的用途115
5.5.1 TDataModule的习惯用法116
5.6 Object Repository117
5.7 Database Explorer118
5.8 使用SQL Monitor119
5.9 了解BDE和别名121
5.10 别名123
5.11 TCP/IP安装的一些说明123
5.12 与ODBC的连接126
5.13 TBatchMove组件128
5.14 小结129
第6章 使用TTable和TDataSet130
6.2 了解修订后的TDataSet类131
6.1 可视化数据库控件与非可视化数据库控件131
6.2.1 TDataSet的主要子类132
6.2.2 数据集(Dataset)的含义132
6.3 TDataSet的核心方法133
6.3.1 打开和关闭数据集133
6.3.2 导航例程134
6.3.3 检查数据集的开始或结束部分136
6.3.4 通过MoveBy方法导航记录138
6.4 字段(Fields)138
6.4.1 字段对象的常用方法139
6.4.2 访问字段名139
6.4.4 FIELDOBJECT样本程序140
6.4.3 访问字段内容140
6.4.5 FIELDER样本程序141
6.5 修改数据142
6.5.1 编辑数据集的重要方法142
6.5.2 编辑和寄送记录的编程问题143
6.5.3 插入、添加和删除记录145
6.6 查找147
6.6.1 使用SetKey或FindKey进行查找147
6.6.2 使用SetKey和GotoKey147
6.6.3 使用FindKey和FindNearest149
6.6.4 按辅助索引查找149
6.7 范围的确定150
6.7.1 选择记录的范围150
6.6.5 使用模糊查找150
6.7.2 RANGER样本程序151
6.7.3 RANGER2样本程序153
6.8 过滤153
6.8.1 OnFilterRecord事件153
6.8.2 FILTER样本程序154
6.9 书签155
6.10 使用Refresh(刷新)函数156
6.11 关于TDataSet和TTable更多的内容157
6.12 一对多关系:链接指针(Linked Cursors)157
6.13 TDataSource基础知识159
6.13.1 检查数据集的状态161
6.14 跟踪数据集的状态163
6.15 使用TDatabase166
6.16 不使用可视化工具创建数据库167
6.17 小结172
第7章 SQL和TQuery对象174
7.1 SQL属性175
7.1.1 使用TQuery对象编程175
7.1.2 从磁盘上装入通配符查询176
7.2 TQuery和参数178
7.2.1 编写用于参数化查询的SQL语句178
7.2.2 编写参数化查询代码178
7.2.3 参数化查询例子EASYSQL2180
7.2.4 采用多连接变量查询182
7.3 SQL属性和Format函数184
7.3.1 PARAMSI程序中的Session对象185
7.4 使用TQuery建立一对多关系188
7.5 建立多个表之间的连接190
7.6 RequestLive属性192
7.7 参数化查询和连接语句193
7.8 ExecSQL、Delete和Insert语句194
7.8.1 使用SQL删除记录195
7.8.2 使用SQL插入记录196
7.9 特殊的TQuery属性197
7.10 SQL的一些有趣内容197
7.11 小结200
第8章 使用字段对象201
8.1 Fields Editor201
8.1.1 启用Fields Editor202
8.1.2 计算字段(Calculated Field)205
8.1.3 Columns属性编辑器207
8.2 查找字段(Lookup Fields)207
8.2.1 使用Lookup程序209
8.2.2 有关计算字段215
8.2.3 有关查找字段215
8.2.4 TDBLookupComboBox和TDBLookupListBox216
8.2.5 在Lookup程序中插入和编辑数据216
8.3 程序运行状态下的TDBGrid217
8.3.1 在程序运行状态下控制TDBGrid的Options属性226
8.3.2 在程序运行状态下显示DBGrid的选项228
8.4 使用TDBGrid列229
8.4.1 改变TDBGrid对象中的标题230
8.4.2 改变TDBGrid对象中的一个单独列231
8.4.3 改变TDBGrid对象中行的颜色232
8.4.4 改变列的宽度232
8.4.5 隐藏或移动TDBGrid中的列233
8.4.6 在程序运行状态下移动列235
8.5 多记录对象235
8.6 小结236
第9章 了解关系数据库238
9.1 关系数据库入门238
9.1.1 关系数据库模型的优点239
9.1.2 简单的集合逻辑:关系数据库的基础240
9.1.3 在DBD或Explorer中显示索引和关键字241
9.2 非数字化规则:为每个表创建一个主码245
9.2.1 一对多关系:数据和索引246
9.2.2 使用主码247
9.2.3 使用辅助索引和外码248
9.2.4 关键字是数据库中的重点249
9.3 在BCDEMOS数据库中浏览关键字和索引249
9.3.1 使用Database Desktop创建索引253
9.3.2 使用Database Desktop创建主码和外码254
9.4 为什么要使用参照完整性255
9.5 一对多关系:代码256
9.5.1 关系数据库和Join257
9.5.2 Join和QBE258
9.5.3 使用SQL Builder261
9.6 应该使用什么样的数据库262
9.7 小结263
第10章 实际的平面文件数据库264
10.1 综述264
10.2 本章中的样本程序264
10.3 设计一个应用程序265
10.3.1 定义数据265
10.3.2 设计程序:索引268
10.4 设计程序的外观270
10.5 查找:使用Category字段273
10.6 为程序建立命令结构275
10.7 检测应用程序的“草图”276
10.8 创建最终的程序277
10.9 设置只读模式293
10.10 数据排序296
10.11 数据搜索297
10.12 数据过滤298
10.13 字段的标记299
10.14 颜色设置302
10.15 使用注册表305
10.16 导航注册表312
10.17 从Run菜单下运行程序314
10.18 在ADDRESS2程序中使用注册表315
10.19 剪贴板:剪切、复制和粘贴316
10.20 小结317
第11章 会话和实际的关系数据库318
11.1 实际的数据318
11.3 KDADDS程序的代码323
11.3.1 使用KDADD程序332
11.3.2 设置KDADD程序的索引333
11.3.3 搜索记录335
11.3.4 插入数据和取消操作335
11.3.5 删除数据:第一次查看程序的数据模块336
11.3.6 数据模块:级联删除(Cascading Deletes)339
11.3.7 数据模块:整体寄送340
11.3.8 在字符串资源中放置出错字符串341
11.3.9 About框342
11.4 使用KDADDEXPLORE程序343
11.4.1 使用TSession343
11.4.2 KDADDEXPLORE程序的代码345
11.4.3 使用TTreeView显示系统中的数据库352
11.4.4 扩充TTreeView的节点353
11.4.5 在TTreeView中添加可用表的列表354
11.4.6 查找索引和字段355
11.4.7 显示别名和别名参数356
11.5 迁移数据、TBatchMove、临时表和NULL字段357
11.6 小结358
第12章 使用本地InterBase服务器359
12.1 关于IterBase359
第3部分 客户机/服务器和多层数据库359
12.2 数据库与人才需求360
12.3 配置本地InterBase360
12.4 配置InterBase别名363
12.5 创建数据库365
12.6 用WISQL浏览数据库367
12.7 事务处理368
12.8 高速缓冲更新(cached updates)372
12.9 多对多关系376
12.10 安全性与InterBase服务器管理器384
12.10.1 定义表的访问权限385
12.10.2 通过服务器管理器备份表385
12.11 小结386
第13章 高级InterBase概念387
13.1 MUSIC程序388
13.2 设计MUSIC程序388
13.2.1 创建数据库方案389
13.2.2 改变表:Null或Not to Null390
13.2.3 更名已有表中的字段391
11.2 检查关系地址程序391
13.2.4 创建Blob字段392
13.2.5 主码与外码392
13.3 创建MUSIC表的索引395
13.4 生成器、触发器与存储过程396
13.4.1 不要在激活的索引中使用触发器397
13.4.2 使用存储过程398
13.4.3 C++Builder端的存储过程398
13.5 服务器端规则与客户端规则400
13.6 MUSIC程序口综述401
13.7 使用子窗体401
13.8 MUSIC程序代码405
13.8.1 使用MUSIC程序408
13.8.2 屏蔽口令:TDatabase对象409
13.8.3 FormCreate事件409
13.9 使用MUSIC程序数据413
13.9.1 查找413
13.9.2 查询数据库问题:初级SQL414
13.9.3 不返回数据集的存储过程418
13.9.4 浏览确定范围内的数据419
13.10 小结420
第14章 快速报表、图形与电子报表工具421
14.1 Windows打印综述421
14.2 QuickReport基础422
14.3 行、列、组和一对多423
14.4 使用样本程序424
14.5 ADDRESS2样本程序424
14.5.1 ADDRESS2:打印地址424
14.5.2 ADDRESS2:对报表中数据进行分组427
14.6 MUSIC程序的报表428
14.6.1 一对多报表429
14.6.2 使用查询进行报表分组430
14.7 打印窗体432
14.7.1 Tprinter:打印文本、图形和位图433
14.7.2 打印图形441
14.7.3 打印位图442
14.8 小结443
第15章 客户机与服务器之间的连通性444
15.1 连接到服务器444
15.2 使用Microsoft SQL 6.5445
15.2.1 创建一个MS SQL别名446
15.2.2 访问你的数据库447
15.2.3 将一个Paradox数据库程序转换到MS SQL449
15.3 使用Oracle 7.32452
15.3.1 访问你的Oracle数据库453
15.4 使用Informix 7.20455
15.4.1 访问Informix数据库456
15.5 使用Sybase 11.02458
15.6 使用DB2的2.1.2版本460
15.6.1 连接DB2时可能出现的连接错误461
15.6.2 访问你的DB2数据库463
15.7 小结465
第16章 多层数据库设计466
16.1 多层数据库应用程序概述466
16.2 C++Builder和Internet467
16.3 分布式体系的三种类型469
16.4 为什么DCOM会引起争论470
16.5 DCOM是什么470
16.5.1 在Windows 95下运行DCOM服务程序471
16.6.1 应用服务程序474
16.6 将已有的程序转变为多层应用程序474
16.6.2 设置DCOM476
16.6.3 客户应用程序477
16.6.4 VCL对象浏览器程序代码的修改479
16.6.5 发送客户应用程序479
16.7 介绍Active Forms480
16.7.1 建立一个Active Form481
16.7.2 了解OCCACHE484
16.7.3 安装附加文件484
16.8 使用CAB文件和程序包486
16.8.1 有关许可的问题489
16.8.2 使用带有Active Forms的模板489
16.9.2 使用套接字创建Midas Active Form490
16.9 套接字和Active Forms490
16.9.1 关于套接字的概述490
16.9.3 创建基于Midas的Active Form492
16.10 小结494
第4部分 创建组件495
第17章 继承性495
17.1 对象496
17.2 创建简单的对象497
17.2.1 与VCL类特征的区别499
17.3 继承性502
17.3.1 类的引用503
17.4 虚拟方法506
17.4.1 反复设计511
17.4.2 集成:VCL编程的层次515
17.4.3 创建友元对象520
17.4.4 使用集成520
17.4.5 可视窗体继承性522
17.4.6 可视窗体继承性的优点525
17.5 小结526
第18章 封装527
18.1 综述527
18.2 封装527
18.2.1 隐藏数据529
18.2.2 内联方法530
18.3 简单性:一个好的对象设计的秘诀531
18.4 一个具体的实例532
18.4.1 TWidget和其析构函数533
18.4.2 使用Widgets535
18.5 属性542
18.6 流控制类544
18.6.1 从流中读取一组件545
18.7 关于属性的其他内容546
18.7.1 使用StringLists550
18.7.2 用字符串索引数组551
18.7.3 只读属性553
18.7.4 易使人误解的default指示符554
18.8 小结555
第19章 多态性556
19.1 综述556
19.2 多态性556
19.3 多态性的简单例子557
19.4 多态赋值的兼容性558
19.4.1 子对象与父对象赋值的兼容性558
19.4.2 从另一角度看多态性560
19.5 虚拟方法与多态性561
19.5.1 ClassicShapeDemo程序564
19.5.2 使用TCustomControl567
19.6 VCL中的多态性568
19.7 封装的多态性要点综述571
19.8 小结572
第20章 创建已有组件的继承类573
20.1 组件理论573
20.2 创建一个已有组件的继承类574
20.2.1 创建组件576
20.2.2 程序包简介580
20.2.3 组件构造函数580
20.2.4 测试组件581
20.2.5 安装组件582
20.3 扩展Unleash单元583
20.4 从底层创建组件592
20.4.1 时钟组件593
20.5 时钟组件的代码603
20.5.1 时钟的启动604
20.5.2 时钟的绘制604
20.5.3 TColor-Clock对象606
20.5.4 GOLDCLOCK程序607
20.6 为组件创建图标608
20.7 使用API工具608
20.7.1 单一类型的属性编辑器609
20.7.2 类属性编辑器611
20.7.3 类型Class的流属性612
20.7.4 测试DsgnIntf.cpp613
20.7.6 使用组件编辑器614
20.7.5 注册属性编辑器614
20.8 Clock2:扩展组件和属性编辑器616
20.8.1 安装组件626
20.8.2 创建组件编辑器627
20.9 小结629
第21章 程序包631
21.1 什么是程序包631
21.2 程序包如何工作631
21.3 程序包与DLL632
21.4 使用程序包的优点633
21.5 与程序包相关的文件633
21.7 创建程序包635
21.6 安装程序包635
21.7.1 System Tray Icon程序包(TTrayIcon)636
21.7.2 TTrayIcon的属性638
21.8 Scroll Panel程序包(TScrollPanel)650
21.9 小结658
第22章 创建组件659
22.1 仓库659
22.1.1 接口660
22.2 Widgct和Pallet组件的层次679
22.2.1 了解TWidget, TPentium和TPentiumPro681
22.3 Pallet控件683
22.3.1 TDataPallet和拖曳684
22.3.2 TDataPallet和数据库687
22.4 查询数据库689
22.5 查看层次691
22.6 小结692
第5部分 C++ Builder和Internet693
第23章 NetMasters因特网组件693
23.1 Internet简介694
23.1.1 UUCP:历史的回顾694
23.1.2 TCP/IP:历史简介694
23.1.3 以太网(Ethernet):把我们连接起来的硬件平台695
23.1.4 IP:网际协议695
23.1.5 TCP:传输控制协议695
23.2 NetMaster因特网组件简介696
23.1.6 UDP:用户数据报协议696
23.1.7 端口:基本的连接单元696
23.2.1 组件列表697
23.3 例子697
23.3.1 例子1:离线组件698
23.3.2 例子2:简单的调试组件702
23.3.3 例子3:发送和接收数据704
23.3.4 例子4:基于Web的组件707
23.3.5 例子5:新闻、文件和Fingers709
23.3.6 例子6:基于邮件的组件714
23.3.7 例子7:UDP消息717
23.4 小结719
23.3.8 例子中未涉及到的问题719
第24章 WebBroker组件720
24.1 TClientSocket组件721
24.2 TServerSocket组件721
24.3 TWebDispatcher组件726
24.4 TPageProducer组件727
24.5 TQueryTableProducer组件727
24.6 TDataSetTableProducer组件728
24.7 使用WebBroker组件的例子728
24.7.1 运行CGI程序的HTML文件728
24.7.2 创建简单的CGI程序728
24.8 TServerSocket组件的其他用法732
24.8.2 AWChatServer的实现733
24.8.1 AWChatServer的初步设计733
24.8.3 AWChatServer客户程序741
24.9 小结741
第25章 使用WININET创建FTP应用程序742
25.1 准备工作742
25.2 确定FTP在系统中正常运行743
25.3 使用WININET的FTP743
25.3.1 使用InternetOpen745
25.3.2 使用InternetConnect746
25.4 连接以后748
25.5 检索文件750
25.6 向FTP服务器发送文件751
25.7 删除文件752
25.8 建立和删除目录752
25.9 一个简单的FTP控件753
25.10 建立用户自绘(Owner-Draw)的列表框765
25.11 小结769
第6部分 ActiveX、DCOM和OLE770
第26章 Automation770
26.1 关于语言的说明770
26.2 C++ Builder和ATL771
26.3.3 即插即用应用程序772
26.3.2 COM和Windows772
26.3.1 COM的概念772
26.3 COM基础知识772
26.3.4 COM存在的问题774
26.3.5 COM与UNIX775
26.3.6 COM+775
26.4 创建一个简单的COM服务程序和客户程序776
26.4.1 创建一个简单的服务程序776
26.4.2 建立一个简单的客户程序780
26.5 接口787
26.5.1 IDispatch、双重接口和Dispinterfaces789
26.5.2 VTables790
26.6 类型库(Type Libraries)791
26.6.1 什么是类型库792
26.6.2 创建类型库793
26.6.3 使用coclass794
26.6.4 使用接口795
26.6.5 定义接口的实现部分795
26.6.6 合法的Automation类型799
26.7 忽略TNoParams中的参数800
26.8 有关注册的问题800
26.9 对数据进行自动编组802
26.10 使用WideStrings803
26.11 从一个CoClass获取两个或多个接口804
26.11.1 调用CoCreateInstance812
26.12 小结813
第27章 DCOM和OLEnterprise814
27.1 一个简单的DCOM客户和服务器814
27.1.1 建立DCOM客户820
27.1.2 使用远程对象825
27.2 变量数组826
27.2.1 什么是变量数组826
27.2.2 对数组的锁定和解锁828
27.2.3 一个变量数组的样本程序830
27.3 权衡远程数据集833
27.3.1 ServerData程序841
27.3.2 GETDATA:远程数据集的客户程序845
27.4 程序数据和Automation数据853
27.5 OLEnterprise的基本概念859
27.5.1 OLEnterprise的使用对象860
27.5.2 使用OLEnterpris861
27.5.3 OLEnterprise故障排除862
27.5.4 RPCSS863
27.5.5 OLEnterprise和Midas867
27.5.6 OLEnterprise小结867
27.6 小结868
第28章 创建新的ActiveX组件869
28.1 ActiveX控件869
28.2 C++Builder 3中用来创建ActiveX控件的工具869
28.2.2 OLE的功能870
28.2.1 OLE的定义870
28.2.3 OLE SDK,OCF和MFC872
28.2.4 Active Templata Library(ATL)和ATLVCL872
28.3 准备工具873
28.3.1 OLE包容器各不相同873
28.3.2 OLE的确不错,但有时结果却不可预知873
28.4 使用传统方法建立ActiveX控件874
28.4.1 步骤1:创建GUID874
28.4.2 步骤2:编写.IDL文件874
28.4.3 步骤3:运行MIDL.EXE877
28.4.4 步骤4:编写.REG文件877
28.4.5 步骤5:在包容器插入的对象列表中查看OCX880
28.4.6 步骤6:综述882
28.4.7 步骤7:准备头文件883
28.4.8 步骤8:编写类工厂886
28.4.9 步骤9:初始化对象888
28.4.10 步骤10:回答QueryInerface890
28.4.11 步骤11:从剪贴板获取数据891
28.4.12 步骤12:激活对象894
28.4.13 步骤13:建立控件窗口896
28.4.14 步骤14:实现Odds和Ends899
28.4.15 步骤15:在窗体中放入OCX控件901
28.5 通过VCL组件创建ActiveX控件901
28.5.1 Object Repository902
28.5.2 创建ActiveX控件903
28.6 使用ATL编写ActiveX控件906
28.6.1 ATL的优点906
28.6.2 ActiveX线程模型906
28.6.3 建立Microsoft ATL样本907
28.7 使用ATL创建OCX909
28.7.1 ATL与VCL的区别909
28.7.2 创建项目910
28.7.3 添加DllEntryPoint和导出COM函数910
28.7.4 添加类库912
28.7.5 添加ATL头文件915
28.7.6 添加继承来的OLE接口916
28.7.7 添加对QueryInterface的支持918
28.7.8 添加消息映射920
28.7.9 添加属性920
28.7.10 添加事件920
28.7.11 添加注册表的支持921
28.7.12 控件的初始化921
28.7.13 添加自定义方法921
28.7.14 添加.RC文件927
28.7.15 添加.RGS文件928
28.7.16 建立ActiveX控件928
28.8.1 使用TD32调试OCX929
28.8 调试ActiveX控件929
28.8.2 使用C++ Builder的集成调试器调试OCX930
28.8.3 将C++ Builder3配置为即时调试器935
28.9 小结936
第7部分 图形937
第29章 VCL的图形类937
29.1 Windows的GDI和VCL的TCanvas937
29.1.1 什么是GDI938
29.1.2 VCL能使你的图形编程更简单938
29.2 使用TCanvas939
29.3 使用画刷(Brushes)939
29.3.1 TBrush::Color属性940
29.3.2 TBrush::Style属性940
29.3.3 TBrush::Assign方法942
29.4 使用画笔(Pens)943
29.4.1 TPen::Style属性943
29.4.2 TPen::Width属性943
29.4.3 TPen::Mode属性943
29.5 使用字型(Fonts)944
29.5.1 TPont::Height属性945
29.5.2 TPont::Size属性945
29.5.3 TPont::Name属性946
29.5.4 TPont::Style属性946
29.5.5 旋转字型947
29.8 TCanvas::CopyMode属性948
29.7 TCanvas::ClipRect属性948
29.6 TCanvas::PenPos属性948
29.9 使用TCanvas::Pixels949
29.10 掌握TCanvas方法950
29.11 BRUSHMAIN例程源码950
29.11.1 OnCreate事件957
29.11.2 FormShow方法958
29.11.3 设置Pen的模式(Mode)959
29.11.4 使用字型(Fonts)961
29.11.5 在Canvas上绘制图形962
29.11.6 使用CopyModes964
29.11.7 改变ClipRect964
29.12 使用其他形式的线形965
29.13 小结968
第30章 颜色、调色板和图像969
30.1 深入了解TColor969
30.1.1 颜色样本方案970
30.1.2 OnChange事件处理程序972
30.2 调色板974
30.3 再论Windows的图像文件格式978
30.3.1 使用位图和DIB978
30.3.2 使用图标978
30.3.3 使用元文件978
30.4 使用TImage和TPaintBox983
30.5 关于位图的补充说明984
30.5.1 旋转位图985
30.5.2 动态显示990
30.5.3 淡入淡出995
30.6 小结998
第31章 在C++ Builder中使用DirectDraw999
31.1 何谓DirectDraw999
31.2 设置DirectDraw1000
31.2.1 DirectDrawCreate1000
31.2.2 SetCooperativeLevel1001
31.2.3 SetDisplayMode1001
31.2.4 独占模式与Windowed模式1001
31.3 DirectDrawSurface接口1003
31.2.5 关于DirectDraw2的问题1003
31.3.1 Lock函数1004
31.3.2 IDirectDrawSurface2或IDirectDrawSurface3的问题1006
31.4 在DirectDraw中使用GDI1006
31.4.1 使用TBitmap1007
31.5 IDirectDrawPalette接口1008
31.5.1 创建一个自定义调色板1009
31.6 使用DirectDraw1010
31.6.1 动画制作1011
31.7 多表面和翻页技术1012
31.7.1 在背景上制作动画1013
31.9 小结1020
31.8 创建DirectDraw组件1020
第32章 在C++ Builder中使用Direct3D1021
32.1 什么是Direct3D1021
32.2 初始化Direct3D应用程序1021
32.2.1 创建Direct3DRM对象1023
32.2.2 DirectDrawClipper1023
32.2.3 Direct3D着色选项1024
32.2.4 HandleActivate和HandlePaint1025
32.3 设置一个Direct3D场景1026
32.3.1 IDirect3DRMFrame1026
32.3.2 光源1027
32.4 用IMeshBuilder创建模型1028
32.3.3 摄影机1028
32.4.1 在磁盘上保存模型1029
32.4.2 复杂的网络1030
32.4.3 变换模型1031
32.4.4 从磁盘调入网格对象1033
32.5 纹理贴图1033
32.5.1 包装一个模型1034
32.6 一个三维模型和纹理浏览1036
32.7 小结1047
第8部分 高级话题1048
第33章 使用Delphi文件1048
33.1 如何使用Delphi代码1048
33.3 在C++Builder 3 中使用Delphi组件1049
33.2 在C++Builder中使用Delphi代码1049
33.4 关于Pascal编译器1050
33.4.1 什么时候可以使用is1051
33.4.2 Real数据类型1051
33.4.3 继承Pascal对象模型1051
33.4.4 空集1051
33.4.5 Pascal和C++类型1052
33.5 头文件生成1052
33.5.1 多重构造函数1052
33.5.2 数组属性1053
33.5.3 变体记录1054
33.6.2 Delphi中的句柄与C++Builder3中的句柄比较1055
33.6 链接错误1055
33.6.1 Pascal类中的方法1055
33.6.3 字节与字对齐问题1057
33.7 项目示例:Monster Hunt1057
33.7.1 创建主窗体1057
33.7.2 关于Monster Hunt1059
33.7.3 游戏1060
33.8 Delphi和C++Builder的结合1071
33.9 小结1073
第34章 OWL和Microsoft DLL的互用性1074
34.1 不能使用Microsoft Visual C++6的DLL情况1074
34.1.1 不要导出C++函数1074
34.1.2 不能导出类1076
34.1.3 不要发送脱离DLL的C++异常1078
34.1.4 不要在一端动态分配内存,而在另一端又将其释放掉1078
34.1.5 不要将RTL文件句柄传递给DLL1078
34.2 从Microsoft DLL中导入函数1078
34.2.1 为VC++的DLL创建一个工作文件.DEF1079
34.2.2 为VC++DLL创建一个实际的导入库1079
34.3 创建DLL的结束语1080
34.4 OWL支持1080
34.4.1 idetobpr:IDE转换成项目文件的工具1081
34.4.2 OWL动态设置1081
34.4.4 简单的Borland C++ 5的OWL应用程序转变成C++Builder3应用程序1082
34.4.3 OWL、ClassLib和OCF库1082
34.6 标准C++库1085
34.5 支持MFC1085
34.7 如何处置以前的C++Builder应用程序1086
34.8 混合使用OWL和VCL1086
34.8.1 OWL/VCL模板类1087
34.8.2 含有VCL窗体的OWL MDI应用程序1090
34.8.3 作为客户应用程序的OWL对话框1096
34.9 小结1098
第35章 动态/静态链接库和第三方问题1099
35.1 库链接和DLL加载概述1099
35.3 创建DLL库1100
35.2 理解DLL库1100
35.4 创建一个加载静态库的可执行程序1103
35.5 一个加载动态DLL的可执行演示程序1105
35.6 第三方DLL问题1107
35.7 名字分解1108
35.8 调用的约定1109
35.8.1 解决调用约定问题1110
35.9 使用别名1111
35.10 静态库1111
35.11 第三方静态库1115
35.12 小结1115