| 作 者: | (美)Borland/Inprise公司著;梁志刚等译 |
| 出版社: | 机械工业出版社 |
| 丛编项: | Borland/Inprise核心技术丛书 |
| 版权说明: | 本书为出版图书,暂不支持在线阅读,请支持正版图书 |
| 标 签: | Builder |
| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
第一部分使用C++Builder编程第1章引言
11.1本书内容
11.2本书约定
21.3开发支持
2第2章C++Builder编程
32.1集成开发环境概述
32.2设计应用程序
32.3理解VCL
32.3.1属性
32.3.2方法
42.3.3事件
42.4VCL中的对象.组件与控件
42.4.1TObject分支
52.4.2TPersistent分支
52.4.3TComponent分支
52.4.4TControl分支
62.4.5TWinControl分支
62.4.6TControl的共同属性
72.4.7TControl通用标准事件
82.4.8TWinControl的共同属性
82.4.9TWinControl的通用标准事件
92.4.10创建应用程序用户界面
102.4.11使用组件
102.4.12VCL标准组件
112.5使用帮助对象
192.5.1使用列表
192.5.2使用串列表
192.5.3Windows注册表和INI文件
232.6开发应用程序
252.6.1编辑代码
252.6.2调试应用程序
262.6.3发布应用程序
26第3章创建应用程序.组件和程序库
273.1创建应用程序
273.1.1Windows应用程序
273.1.2程序设计模板
283.1.3控制台应用程序
283.1.4服务应用程序
283.2创建程序包和DLL
323.3在C++Builder中使用DLL
333.4在C++Builder中创建DLL
333.5创建包含VCL组件的DLL
343.6链接DLL
363.7编写数据库应用程序
363.8创建分布式应用程序
363.8.1使用TCP/IP的分布式应用程序
363.8.2使用COM和DCOM的分布式应用程序
373.8.3使用CORBA的分布式应用程序
383.8.4分布式数据库应用程序
383.9使用数据模块和远程数据模块
383.9.1创建及编辑数据模块
383.9.2存取窗体的数据模块
393.9.3向应用程序服务器工程中加入远程数据模块
393.10使用对象仓库
393.10.1在工程中共享对象
393.10.2在对象仓库中加入对象
393.10.3在小组环境中共享对象
393.10.4在工程中使用对象仓库的对象
403.10.5使用工程模板
403.10.6修改共享对象
403.10.7指定一个缺省工程.新窗体以及主窗体
41第4章开发应用程序用户界面
424.1理解TApplication.TScreen和TForm
424.1.1使用主窗体
424.1.2加入其他窗体
424.1.3隐藏主窗体
424.1.4工作在应用程序层
434.1.5处理屏幕
434.1.6管理布局
434.2处理消息
444.3窗体的更多细节
444.3.1控制窗体何时驻留内存
444.3.2给窗体传递其他参数
464.3.3从窗体获取数据
464.4重用组件和组件组
494.5创建并使用组件模板
494.6使用框架
504.6.1创建框架
504.6.2使用并修改框架
504.6.3共享框架
514.7创建并管理菜单
514.7.1打开菜单设计器
524.7.2创建菜单
534.7.3在对象观察器中编辑菜单项
554.7.4使用菜单设计器上下文菜单
564.7.5使用菜单模板
574.7.6将菜单保存为菜单模板
574.7.7在运行时控制菜单项
584.7.8合并菜单
584.7.9引入资源文件
594.8设计工具栏和酷栏
594.8.1使用面板组件增加工具栏
594.8.2使用工具栏组件增加工具栏
614.8.3增加酷栏组件
624.8.4响应点击
634.8.5增加隐藏的工具栏
634.8.6隐藏和显示工具栏
634.9使用动作列表
644.9.1动作对象
644.9.2使用动作
654.9.3预定义动作类
674.9.4编写动作组件
68第5章应用控件
715.1实现控件拖放操作
715.1.1开始拖动操作
715.1.2接受拖动项
715.1.3放下项
725.1.4终止拖动操作
725.1.5通过拖动对象定制拖放操作
725.1.6改变拖动鼠标指针
735.2实现控件的拖动-停靠操作
735.2.1使窗口控件成为一个停靠点
735.2.2使控件成为一个可停靠子控件
735.2.3控制子控件如何被停放
735.2.4控制子控件如何取消停靠
745.2.5控制子控件如何响应拖动-停靠操作
745.3处理控件中的文本
745.3.1设置文本对齐方式
755.3.2在运行时增加滚动条
755.3.3增加剪贴板对象
755.3.4选择文本
765.3.5选定全部文本
765.3.6剪切.拷贝及粘贴文本
765.3.7删除选定文本
765.3.8禁用菜单项
775.3.9提供弹出式菜单
775.3.10处理OnPopup事件
775.4在控件中加入图形
785.4.1指定控件为属主绘制控件
785.4.2给串列表增加图形对象
795.4.3调整属主绘制项的大小
805.4.4绘制各属主绘制项
81第6章使用图形和多媒体
826.1图形编程概述
826.1.1刷新屏幕
826.1.2图形对象的样式
836.1.3画布的通用属性和方法
836.1.4使用Canvas对象的属性
846.1.5使用Canvas的方法来绘制图形对象
876.1.6在应用程序中处理多个绘图对象
896.1.7在图形中绘制
936.1.8加载和保存图形文件
956.1.9使用剪贴板处理图形
966.1.10拖引线示例
976.2使用多媒体
1016.2.1将无声的视频剪辑加入应用程序
1026.2.2将声音和/或视频剪辑加入应用程序
103第7章编写多线程应用程序
1057.1定义线程对象
1057.1.1初始化线程
1067.1.2编写线程函数
1067.1.3编写清理代码
1087.2协调线程
1087.2.1避免同时访问
1087.2.2等待其他线程
1107.3执行线程对象
1117.3.1重载缺省优先级
1117.3.2开始和停止线程
1117.4调试多线程应用程序
111第8章异常处理
1138.1C++异常处理
1138.1.1异常处理的ANSI规定
1138.1.2异常处理语法
1138.1.3声明异常
1148.1.4发送异常
1148.1.5处理异常
1178.1.6异常规范
1198.1.7异常处理的构造和析构
1208.1.8未处理的异常
1208.1.9设置异常处理选项
1208.2Win32下的结构异常
1218.2.1结构异常的语法
1218.2.2处理结构异常
1228.2.3异常过滤器
1228.2.4在C++中混用结构异常
1248.2.5定义异常
1258.2.6引发异常
1258.2.7终止块
1268.3VCL异常处理
1278.3.1C++和VCL异常处理之间的差别
1278.3.2处理操作系统异常
1288.3.3处理VCL异常
1288.3.4VCL异常类
1288.3.5可移植性考虑
130第9章VCL的C++语言支持
1319.1C++和ObjectPascal对象模型
1319.1.1对象本身和实例
1319.1.2C++Builder中VCL类的对象构造
1329.1.3在基类构造函数调用虚拟方法
1349.1.4对象析构
1369.1.5AfterConstruction和BeforeDestruction
1379.1.6类虚拟函数
1379.2ObjectPascal数据类型和语言概念的支持
1389.2.1Typedefs
1389.2.2支持ObjectPascal语言的类
1389.2.3ObjectPascal语言的C++语言对应
1389.2.4动态数组
1399.2.5定义不同的类型
1419.2.6资源字符串
1419.2.7缺省参数
1429.2.8运行时类型信息
1429.2.9未映射的类型
1439.2.10关键字扩展
1449.2.11__declspec关键字扩展
145第10章使用包和组件
14710.1为什么使用包
14710.2运行时包
14710.2.1在应用程序中使用运行时包
14710.2.2动态装载包
14810.2.3决定使用哪个运行时包
14810.2.4定制包
14810.3设计时包
14910.4创建和编辑包
15010.4.1创建包
15010.4.2编辑现有的包
15010.4.3包源文件和工程选项文件
15110.4.4理解包的结构
15210.4.5编译包
15210.5发布包
15410.5.1发布使用包的应用程序
15410.5.2将包发布给其他开发者
15410.5.3包集文件
154第11章创建国际化的应用程序
15611.1国际化和本地化
15611.1.1国际化
15611.1.2本地化
15611.2国际化应用程序
15611.2.1应用程序代码
15611.2.2设计用户界面
16011.2.3分离资源
16011.2.4创建资源DLL
16011.2.5使用资源DLL
16111.2.6动态切换资源DLL
16211.3本地化应用程序
162第12章发布应用程序
16312.1发布一般应用程序
16312.2发布数据库应用程序
16512.2.1提供数据库引擎
16512.2.2多级分布式应用程序服务
16612.3发布Web应用程序
16612.4为各种主机环境编程
16612.4.1屏幕分辨率和颜色浓度
16712.4.2字体
16812.4.3Windows版本
16812.5软件许可证要求
16812.5.1DEPLOY.TXT
16812.5.2README.TXT
16912.5.3No-nonsense许可协议
16912.5.4第三方的产品文档
169第二部分开发数据库应用程序第13章设计数据库应用程序
17113.1使用数据库
17113.1.1数据库类型
17113.1.2数据库安全
17213.1.3事务
17313.1.4数据字典
17313.1.5引用完整性.存储过程和触发器
17413.2数据库结构
17413.2.1可扩展性规划
17513.2.2一级数据库应用程序
17613.2.3二级数据库应用程序
17613.2.4多级数据库应用程序
17713.3设计用户接口
17813.3.1显示单条记录
17813.3.2显示多条记录
17813.3.3分析数据
17913.3.4选择要显示的数据
17913.3.5编写报表
180第14章开发一级与二级应用程序
18114.1基于BDE的应用程序
18114.1.1基于BDE的(应用程序)结构
18114.1.2数据库连接
18314.1.3使用事务
18314.1.4缓存更新
18614.1.5创建及重组数据表
18714.2基于ADO的应用程序
18714.2.1基于ADO的应用程序结构
18714.2.2连接到ADO数据库
18814.2.3获取数据
18814.2.4创建并重组ADO数据库表
18814.3flat-file数据库应用程序
18914.3.1创建数据集
18914.3.2装载和存储数据
19114.3.3使用公文包模式
19114.4扩充为三级应用程序
192第15章创建多级应用程序
19315.1多级数据库模式优点
19315.2理解MIDAS技术
19315.2.1基于MIDAS的多级应用程序概述
19415.2.2客户端应用程序结构
19415.2.3应用程序服务器结构
19515.2.4选择连接协议
19815.3创建多级应用程序
19915.4创建应用程序服务器
19915.4.1设置远程数据模块
20015.4.2为应用程序服务器创建一个数据提供者
20215.4.3扩展应用程序服务器接口
20215.5创建客户端应用程序
20215.5.1连接应用程序服务器
20315.5.2管理服务器连接
20515.5.3调用服务器接口
20515.6在多级应用程序中管理事务
20615.7支持主/明细关系
20615.8支持远程数据模块的状态信息
20715.9编写MIDASWeb应用程序
20815.9.1将客户端应用程序以ActiveX控件形式分发
20915.9.2使用InternetExpress创建Web应用程序
20915.9.3使用XML代理
21115.9.4使用MIDAS页生成器创建Web页面
213第16章使用提供者组件
21616.1确定数据源
21616.2选择如何进行更新
21616.3控制包括在数据包里的信息
21716.3.1指定出现在数据包里的字段
21716.3.2设置影响数据包的选项
21716.3.3加入定制信息到数据包
21816.4响应客户端数据请求
21916.5响应客户端更新请求
21916.5.1在更新数据库前编辑delta包
22016.52影响更新如何被应用
22016.5.3屏显单独的更新
22116.5.4在提供者端解决更新错误
22116.5.5对不仅涉及单一数据表格的数据集应用更新
22216.6响应客户端产生的事件
22216.7处理服务器限制
222第17章管理数据库会话
22417.1使用一个session组件
22417.1.1使用缺省session
22417.1.2创建额外的session
22517.1.3为session命名
22617.1.4启动session
22617.1.5定制session的启动方式
22717.1.6指定缺省的数据库连接方式
22717.1.7创建.打开和关闭数据库连接
22717.1.8取消临时数据库连接
22817.1.9搜索数据库连接
22817.1.10取得有关session的信息
22917.1.11使用BDE别名
23017.1.12迭代一个session的数据库组件
23117.1.13指定Paradox目录位置
23217.1.14使用有口令保护Paradox和dBASE表
23217.2管理多个session
23417.3在数据模块中使用session组件
235第18章连接到数据库
23618.1理解永久和临时数据库组件
23618.1.1使用临时数据库组件
23618.1.2在设计时创建数据库组件
23618.1.3在运行时创建数据库组件
23718.2控制连接
23718.2.1关联数据库组件与session
23818.2.2指定一个BDE别名
23818.2.3设置BDE别名参数
23918.2.4控制服务器登录
23918.2.5连接到数据库服务器
24018.2.6连接到远程服务器时的特别考虑
24018.2.7关闭与数据库服务器的连接
24118.2.8关闭数据集但不关闭与服务器的连接
24118.2.9迭代数据库组件的数据集
24118.3理解数据库与session组件的交互
24218.4在数据模块中使用数据库组件
24218.5从TDatabase组件中执行SQL语句
24218.5.1从TDatabase执行SQL语句
24218.5.2执行参数化的SQL语句
243第19章理解数据集
24519.1什么是TDataSet
24519.2数据集类型
24619.3打开和关闭数据集
24619.4确定和设置数据集状态
24719.4.1关闭数据集
24819.4.2浏览一个数据集
24819.4.3允许编辑数据集
24919.4.4允许插入新的记录
25019.4.5允许对数据表做索引搜索和取范围
25019.4.6计算字段
25019.4.7过滤记录
25119.4.8更新记录
25119.5浏览数据集
25119.5.1使用First和Last方法
25119.5.2使用Next和Prior方法
25219.5.3使用MoveBy方法
25219.5.4使用Eof和Bof属性
25219.5.5标记并返回到记录位置
25419.6搜索数据集
25519.6.1使用Locate
25519.6.2使用Lookup
25619.7使用过滤器显示和编辑一个数据子集
25619.7.1打开和关闭过滤器
25719.7.2创建过滤器
25719.7.3设置过滤器属性
25719.7.4编写一个OnFilterRecord事件处理程序
25819.7.5设置过滤器选项
25819.7.6浏览过滤后的数据集记录
25919.8修改数据
26019.8.1编辑记录
26019.8.2加入新的记录
26119.8.3删除记录
26119.8.4把数据写入数据库
26219.8.5取消改动
26219.8.6修改整条记录
26219.9使用数据集事件
26319.9.1终止一个方法
26319.9.2使用OnCalcFields
26419.10使用基于BDE的数据集
26419.10.1基于BDE的功能概述
26519.10.2处理数据库和session连接
26519.10.3使用缓存更新
26619.10.4缓存BLOB
267第20章使用字段组件
26820.1理解字段组件
26920.1.1动态字段组件
26920.1.2永久字段组件
27020.2创建永久字段
27020.3排列永久字段
27120.4定义新的永久字段
27120.4.1定义一个数据字段
27220.4.2定义一个计算字段
27220.4.3编写计算字段的程序代码
27320.4.4定义一个查找字段
27320.4.5定义一个合计字段
27420.4.6删除永久字段组件
27520.5设置永久字段的属性和事件
27520.5.1在设计时设置显示和编辑属性
27520.5.2在运行时设置字段组件的属性
27620.5.3创建字段组件的属性集
27620.5.4关联数据集到字段组件
27720.5.5删除关联属性
27720.5.6控制和屏蔽用户输入
27720.5.7为数值.日期和时间字段使用缺省格式
27820.5.8处理事件
27820.6运行时使用字段组件的方法
27920.7显示.转换和存取字段值
27920.7.1在标准控件中显示字段组件值
27920.7.2转换字段值
28020.7.3使用缺省数据集属性存取字段值
28120.7.4使用数据集的Fields属性存取字段值
28120.7.5使用数据集的FieldByName方法存取字段值
28120.8检查字段的当前值
28220.9设置字段的缺省值
28220.10使用限制
28220.10.1创建定制限制
28220.10.2使用服务器限制
28220.11使用对象字段
28320.11.1显示ADT和数组字段
28320.11.2使用ADT字段
28420.11.3使用数组字段
28520.11.4使用数据集字段
28520.11.5使用引用字段
286第21章使用数据表
28721.1使用数据表组件
28721.2设置数据表组件
28721.2.1指定数据库位置
28721.2.2指定数据表名
28821.2.3为本地数据表指定数据表类型
28821.2.4打开.关闭数据表
28921.3控制对数据表的读/写访问
28921.4搜索记录
29021.5排序记录
29221.5.1使用GetIndexNames方法取得可用的索引列表
29221.5.2使用IndexName指定索引
29221.5.3为SQL数据表指定排序顺序
29321.5.4检查索引的字段列表
29421.6使用数据子集
29421.6.1理解范围和过滤器的不同
29421.6.2创建和应用一个新的范围
29521.6.3修改范围
29721.7删除一个数据表中的所有记录
29721.8删除数据表
29821.9重命名数据表
29821.10创建数据表
29821.11从另一个数据表导入数据
29921.12使用TBatchMove
30021.12.1创建批移动组件
30021.12.2指定批移动模式
30121.12.3映射数据类型
30221.12.4执行批移动
30221.12.5处理批移动错误
30221.13链接到相同数据库表的同步数据表
30321.14创建主/明细表
30321.15使用嵌套数据表
304第22章使用查询
30622.1有效地使用查询
30622.1.1对桌面数据库开发者使用查询
30622.1.2对数据库服务器开发者使用查询
30722.2使用查询组件能够存取什么数据库
30722.3使用查询组件概述
30722.4指定要执行的SQL语句
30822.4.1在设计时指定SQL属性
30922.4.2在运行时指定SQL语句
30922.5设置参数
31022.5.1在设计时提供参数
31122.5.2在运行时提供参数
31122.5.3使用数据源绑定参数
31222.6执行查询
31222.6.1在设计时执行查询
31322.6.2在运行时执行查询
31322.7准备查询
31422.8取消查询准备以释放资源
31422.9创建异类查询
31422.10提高查询性能
31522.11使用结果集
31522.11.1允许编辑结果集
31522.11.2对可用结果集的本地SQL要求
31622.11.3对可用结果集的远程服务器SQL要求
31622.11.4更新可用结果集的限制
31622.11.5更新只读结果集
316第23章使用存储过程
31723.1何时使用存储过程
31723.2使用存储过程
31823.2.1创建存储过程组件
31823.2.2创建存储过程
31823.2.3准备和执行存储过程
31923.2.4使用返回结果集的存储过程
31923.2.5使用以参数返回数据的存储过程
32023.2.6使用在数据上执行操作的存储过程
32123.3理解存储过程的参数
32323.3.1使用输入参数
32323.3.2使用输出参数
32323.3.3使用输入/输出参数
32423.3.4使用结果参数
32423.3.5在设计时访问参数
32423.3.6在设计时设置参数信息
32523.3.7在运行时创建参数
32523.3.8绑定参数
32623.4在设计时查看参数信息
32623.5使用Oracle重载存储过程
327第24章使用ADO组件
32824.1ADO组件概况
32824.2连接到ADO数据仓库
32924.2.1使用TADOConnection连接到数据仓库
32924.2.2调整连接
33124.2.3列出数据表和存储过程
33224.2.4使用(连接)事务
33424.3使用ADO数据集
33424.3.1所有ADO数据集组件的共有特点
33524.3.2使用TADODataSet
33924.3.3使用TADOTable
34024.3.4使用TADOQuery
34124.3.5使用TADOStoredProc
34224.4执行命令
34424.4.1指定命令
34424.4.2使用Execute方法
34524.4.3取消命令
34524.4.4使用命令获取结果集
34524.4.5处理命令参数
346第25章创建和使用客户端数据集
34725.1使用客户端数据集处理数据
34725.1.1在客户端数据集中浏览数据
34725.1.2限制记录显示
34725.1.3描述主/明细关系
34825.1.4限制数据值
34825.1.5设置只读数据
34825.1.6编辑数据
34925.1.7排序和索引
35025.1.8表示计算值
35125.1.9使用被维护的合计
35225.1.10加入特定应用程序信息到数据
35425.2从另一个数据集复制数据
35425.2.1直接指定数据
35425.2.2复制一个客户端数据集指针
35525.3使用带有数据提供者的客户端数据集
35525.3.1指定数据提供者
35525.3.2从应用程序服务器得到参数
35625.3.3传送参数给应用程序服务器
35625.3.4重载应用程序服务器上的数据集
35725.3.5从应用程序服务器请求数据
35725.3.6处理限制
35825.3.7更新记录
35925.3.8刷新记录
36125.3.9使用定制事件与提供者通信
36125.4使用带有flat-file数据的客户端数据集
36225.4.1创建新的数据集
36225.4.2从文件或数据流中装载数据
36225.4.3合并更新到数据
36325.4.4存储数据到文件或数据流
363第26章使用缓存更新
36426.1决定何时使用缓存更新
36426.2使用缓存更新概述
36426.2.1允许和禁用缓存更新
36526.2.2提取记录
36526.2.3应用缓存更新
36626.2.4取消未定的缓存更新
36826.2.5撤消删除缓存记录
36926.2.6指定缓存中的可视记录
36926.2.7检查更新状态
37026.3使用更新对象来更新数据集
37126.3.1为数据集指定UpdateObject属性
37126.3.2为更新组件创建SQL语句
37226.3.3执行更新语句
37526.3.4使用数据集组件更新数据集
37726.4更新只读结果集
37726.5控制更新处理
37826.5.1决定是否需要控制更新处理
37826.5.2创建一个OnUpdateRecord事件处理程序
37826.6处理缓存更新错误
37926.6.1引用要应用更新的数据集
38026.6.2指明产生错误的更新类型
38026.6.3指定要执行的动作
38026.6.4使用错误消息文本
38126.6.5访问字段的OldValue.NewValue和CurValue属性
381第27章使用数据控件
38327.1使用通用的数据控件特征
38327.1.1关联数据控件与数据集
38427.1.2编辑并更新数据
38427.1.3禁止和允许数据显示
38527.1.4刷新数据显示
38527.1.5允许鼠标.键盘及定时器事件
38627.2使用数据源
38627.2.1使用TDataSource属性
38627.2.2使用TDataSource事件
38727.3显示单个字段的控件
38827.3.1以标签显示数据
38827.3.2在编辑框中显示和编辑字段
38827.3.3在备注控件中显示和编辑文本
38827.3.4在richedit备注控件中显示和编辑文本
38927.3.5显示并且编辑在图像控件中的图形
38927.3.6在列表框和组合框中显示和编辑数据
38927.3.7在查找列表和组合框中显示和编辑数据
39027.3.8使用复选框处理布尔型字段值
39227.3.9使用单选组控件限制字段值
39227.4使用TDBGrid查看与编辑数据
39327.4.1使用缺省状态的网格控件
39327.4.2创建定制网格
39427.4.3显示ADT和数组字段
39727.4.4设置网格选项
39827.4.5在网格中编辑
39927.4.6在设计时对列重排序
40027.4.7在运行时对列重排序
40027.4.8在运行时响应用户动作
40027.5创建包含其他数据感知控件的网格
40127.6导航和操作记录
40227.6.1选择显示浏览器按钮
40227.6.2显示飞出式帮助
40327.6.3多个数据集使用一个浏览器
403第28章使用决策支持组件
40528.1概述
40528.2关于crosstabs
40628.2.1一维的crosstabs
40628.2.2多维的crosstabs
40628.3使用决策支持组件指南
40628.4使用决策支持组件的数据集
40728.4.1使用TQuery或TTable创建决策数据集
40728.4.2使用DecisionQuery编辑器创建决策数据集
40828.4.3决策查询的属性
40828.5使用决策立方
40828.5.1决策立方的属性和事件
40828.5.2使用DecisionCube编辑器
40928.6使用决策源
40928.7使用决策控制轴
41028.8创建和使用决策网格
41028.8.1创建决策网格
41128.8.2使用决策网格
41128.8.3决策网格属性
41128.9创建和使用决策图
41228.9.1创建决策图
41228.9.2使用决策图
41228.9.3决策图显示
41328.9.4定制决策图
41328.10运行时的决策支持组件
41528.10.1运行时的决策控制轴
41528.10.2运行时的决策网格
41628.10.3运行时的决策图
41628.11决策支持组件和内存控制
41628.11.1设置最大维.合计及单元
41628.11.2设置维状态
41628.11.3使用分页维
417第三部分编写分布式应用程序第29章编写CORBA应用程序
41929.1CORBA应用程序概述
41929.1.1了解存根和框架
42029.1.2使用聪明代理
42029.1.3激活服务器应用程序
42129.1.4动态绑定接口调用
42129.2编写CORBA服务程序
42129.2.1定义对象的接口
42129.2.2使用CORBA服务器向导
42229.2.3从IDL文件生成存根和框架
42229.2.4使用CORBA对象的实现向导
42329.2.5实现CORBA对象
42429.2.6改变CORBA接口
42629.2.7注册服务器接口
42729.3编写CORBA客户程序
42729.3.1使用存根
42729.3.2使用动态调用接口
42829.4测试CORBA服务器
42929.4.1建立测试工具
42929.4.2记录和运行测试的脚本
430第30章创建Internet服务器应用程序
43130.1术语和标准
43130.1.1统一资源定位符URL的构成
43130.1.2HTTP请求报文头信息
43230.2HTTP服务器的活动
43230.2.1构造客户请求
43230.2.2处理客户请求
43230.2.3响应客户请求
43330.3Web服务器应用程序
43330.3.1Web服务器应用程序的分类
43330.3.2创建Web服务器应用程序
43430.3.3Web模块
43430.3.4Web应用程序对象
43530.4Web服务器应用程序的结构
43530.5Web派发器
43530.5.1为派发器添加处理项
43630.5.2派发请求报文
43630.6处理项
43630.6.1确定处理项的触发时间
43630.6.2利用处理项响应客户请求
43730.7访问客户请求的信息
43830.7.1包含了请求报文头信息的属性
43830.7.2HTTP请求报文的内容
43930.8创建HTTP响应报文
43930.8.1填写响应报文的头
44030.8.2设置报文的内容
44030.8.3发送应答信息
44130.9生成响应报文的内容
44130.10在响应报文中使用数据库信息
44430.10.1给Web模块添加一个会话
44430.10.2用HTML表示数据库的信息
44430.11调试服务器应用程序
44630.11.1调试ISAPI和NSAPI应用程序
44630.11.2调试CGI和Win-CGI应用程序
448第31章使用套接字
45031.1实现服务
45031.1.1理解服务协议
45031.1.2服务和端口
45031.2套接字连接的类型
45131.2.1客户连接
45131.2.2侦听连接
45131.2.3服务器连接
45131.3说明套接字
45131.3.1说明主机
45131.3.2使用端口
45231.4使用套接字组件
45231.4.1使用客户套接字
45231.4.2使用服务器套接字
45331.5响应套接字的事件
45431.5.1出错事件
45431.5.2客户事件
45431.5.3服务器事件
45531.6通过套接字连接读写数据
45531.6.1非阻塞连接
45531.6.2阻塞连接
456第四部分开发基于COM的应用程序第32章COM技术概述
45932.1COM应用程序的构成
46032.1.1COM接口
46032.1.2COM服务器
46132.1.3COM客户
46332.2COM扩展
46432.2.1自动化服务器
46532.2.2活动服务器页
46532.2.3ActiveX控件
46632.2.4活动文档
46632.2.5事务对象
46632.2.6类型库
46732.3使用向导实现COM对象
469第33章使用类型库
47333.1类型库编辑器
47333.1.1类型库编辑器的部件
47333.1.2类型库元素
47733.1.3使用类型库编辑器
47833.2发布类型库
484第34章创建COM客户程序
48634.1引入类型库信息
48634.1.1使用ImportTypeLibrary对话框
48734.1.2使用ImportActiveX对话框
48734.1.3引入类型库信息后生成的代码
48834.2控制引入的对象
48934.2.1使用组件包装器
48934.2.2使用数据感知的ActiveX控件
49034.2.3使用MicrosoftWord打印文档的例子
49134.2.4编写基于类型库定义的客户代码
49334.3为没有类型库的服务器创建客户程序
495第35章创建简单的COM服务器程序
49635.1创建COM对象概述
49635.2设计COM对象
49635.3使用COM对象向导
49735.4使用自动化对象向导
49735.5指定ATL选项
50035.6定义COM对象接口
50035.6.1为对象接口添加属性
50135.6.2给对象接口添加方法
50135.6.3提供客户事件
50135.7自动化接口
50235.7.1双向接口
50235.7.2派发接口
50335.7.3自定义接口
50335.8调度数据
50335.8.1自动化兼容的类型
50335.8.2自动化调度的类型限制
50435.8.3自定义调度
50435.9注册COM对象
50435.9.1注册进程内服务器
50435.9.2注册进程外服务器
50535.10调试应用程序
505第36章创建活动服务器页
50636.1创建活动服务器对象
50636.1.1使用ASP本征
50736.1.2为进程内或进程外服务器创建ASP
51036.2注册活动服务器对象
51036.2.1注册一个进程内服务器
51036.2.2注册一个进程外服务器
51036.3测试和调试活动服务器页应用程序
510第37章创建ActiveX控件
51237.1创建ActiveX控件概述
51237.2设计ActiveX控件
51337.3从VCL控件生成ActiveX控件
51437.4创建基于VCL窗体的ActiveX控件
51537.5ActiveX控件的许可证控制
51537.6自定义ActiveX控件接口
51637.6.1添加附加的属性.方法和事件
51737.6.2使简单数据与类型库的绑定
51837.7为ActiveX控件创建属性页
52037.7.1创建属性页
52037.7.2向属性页添加控件
52037.7.3把属性页与ActiveX控件的属性关联
52137.7.4把属性页与ActiveX控件关联
52137.8注册ActiveX控件
52237.9测试ActiveX控件
52237.10在网络上发布ActiveX控件
522第38章创建MTS或COM+对象
52438.1理解事务对象
52438.2管理资源
52538.2.1访问对象的前后关系
52538.2.2及时激活
52638.2.3资源共享
52638.2.4对象共享
52938.3MTS和COM+的事务支持
53038.3.1事务的特性
53038.3.2状态相关和状态无关对象
53138.3.3影响事务如何结束
53138.3.4初始化事务
53238.3.5事务超时
53438.4基于角色的安全性
53438.5创建事务对象概述
53538.6使用事务对象向导
53538.7生成COM+事件
53738.7.1使用事件对象向导
53738.7.2使用COM+事件对象激发事件
53838.8传递对象指针
53838.9调试和测试事务对象
53938.10安装事务对象
53938.11管理事务对象
540第五部分创建定制组件第39章组件创建概述
54139.1可视组件库
54139.2组件和类
54239.3如何创建组件
54239.3.1修改已有的控件
54239.3.2创建窗口控件
54339.3.3创建图形控件
54339.3.4子类Windows控件
54339.3.5创建不可视组件
54339.4组件内部有什么
54339.4.1消除相关性
54439.4.2属性.方法和事件
54439.4.3图形封装
54539.4.4注册
54539.5创建新组件
54539.5.1使用组件向导
54639.5.2手工创建组件
54739.6测试未安装的组件
54939.7测试已安装的组件
55139.8安装组件到组件面板
55139.8.1定位组件文件
55239.8.2添加组件
552第40章组件开发员的面向对象编程
55340.1定义新类
55340.1.1派生新类
55340.1.2声明新组件类
55440.2祖先.后代和类层次结构
55440.3控制访问
55440.3.1隐藏实现细节
55540.3.2定义组件开发员接口
55740.3.3定义运行时接口
55740.3.4定义设计时接口
55740.4派发方法
55740.4.1常规方法
55840.4.2虚拟方法
55840.5抽象类成员
55940.6类与指针
559第41章创建属性
56041.1为什么要创建属性
56041.2属性的类型
56041.3发布继承的属性
56141.4定义属性
56141.4.1属性声明
56141.4.2内部数据存储
56241.4.3直接访问
56241.4.4访问方法
56241.4.5缺省属性值
56441.5创建数组属性
56541.6存储和载入属性
56541.6.1使用存储-载入机制
56641.6.2指定缺省值
56641.6.3决定存储内容
56741.6.4载入后的初始化
56741.6.5存储和载入未发布的属性
567第42章创建事件
56942.1什么是事件
56942.1.1事件是closure
56942.1.2事件是属性
56942.1.3事件类型是closure类型
57042.1.4事件处理程序是可选的
57042.2实现标准事件
57142.2.1标识标准事件
57142.2.2使事件可见
57142.2.3改变标准的事件处理
57242.3定义你自己的事件
57242.3.1触发事件
57242.3.2定义处理程序类型
57242.3.3声明事件
57342.3.4调用事件
573第43章创建方法
57543.1避免相关性
57543.2命名方法
57543.3保护方法
57643.3.1应为public的方法
57643.3.2应为protected的方法
57643.4虚拟方法
57643.5声明方法
576第44章在组件中使用图形
57844.1图形概述
57844.2使用画布
57944.3使用图片
57944.3.1使用图片.图形或画布
57944.3.2载入和存储图形
58044.3.3处理调色板
58044.4幕后位图
58144.4.1创建和管理幕后位图
58144.4.2拷贝幕后位图
58144.5响应改变
581第45章处理消息
58345.1理解消息处理系统
58345.1.1Windows消息中有什么
58345.1.2派发消息
58445.2修改消息处理
58445.2.1重载处理器方法
58445.2.2使用消息参数
58545.2.3屏蔽消息
58545.3创建新的消息处理器
58645.3.1定义自己的消息
58645.3.2声明一个新的消息处理方法
587第46章使组件在设计时可用
58846.1注册组件
58846.1.1声明Register函数
58846.1.2编写Register函数
58846.2添加组件面板位图
59046.3为你的组件提供帮助
59046.4添加属性编辑器
59246.4.1派生属性编辑器类
59246.4.2将属性作为文本进行编辑
59346.4.3将属性作为整体进行编辑
59346.4.4指定编辑器特性
59446.4.5注册属性编辑器
59446.5添加组件编辑器
59546.5.1向上下文菜单添加项目
59546.5.2改变双击时的行为
59646.5.3添加剪贴板格式
59746.5.4注册组件编辑器
59746.6属性范畴
59846.6.1一次注册一个属性
59846.6.2一次注册多个属性
59846.6.3属性范畴类
59846.6.4使用IsPropertyInCategory函数
59946.7将组件编译成软件包
59946.8解决定制组件问题
600第47章修改已有的组件
60147.1创建和注册该组件
60147.2修改组件类
60247.2.1重载构造函数
60247.2.2指定新的缺省属性值
603第48章创建图形组件
60448.1创建和注册组件
60448.2发布继承的属性
60548.3添加图形能力
60548.3.1决定画什么
60548.3.2重载构造函数和析构函数
60648.3.3发布笔和刷子
60748.3.4绘制组件图像
60948.3.5调整形状绘制
610第49章定制网格
61249.1创建和注册组件
61249.2发布继承的属性
61349.3修改初始值
61349.4重定义单元大小
61449.5填充单元
61549.6定位月和年份
61949.7定位日期
62049.7.1移动选择
62049.7.2提供OnChange事件
62049.7.3排除空白单元
621第50章创建数据感知控件
62250.1创建数据浏览控件
62250.1.1创建和注册组件
62250.1.2创建只读的控件
62350.1.3添加数据链接
62550.1.4响应数据修改
62750.2创建数据编辑控件
62750.2.1修改FReadOnly的缺省值
62850.2.2处理鼠标按下和键盘按下消息
62850.2.3更新字段数据链接类
62950.2.4修改Change方法
63050.2.5更新数据集
630第51章创建对话框组件
63251.1定义组件接口
63251.2创建和注册组件
63251.3创建组件接口
63351.3.1包含窗体单元文件
63351.3.2添加接口属性
63451.3.3添加Execute方法
63451.4测试组件
636附录ANSI具体实现标准