首页>参考读物>计算机科学与技术>软件与程序设计

Delphi 6开发人员指南
作者 : (美)Steve Teixeira, Xavier Pacheco
译者 : 龙劲松 王瑜 谢尚书
出版日期 : 2003-01-01
ISBN : 7-111-10968-6
定价 : 118.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 843
开本 : 16开
原书名 : Borland Delphi 6 Developer's Guide
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书是讲述Delphi最经典的著作之一,作为Delphi的新版本,Delphi 6不仅能帮助程序员高效开发Windows应用程序,简化Web服务、中间软件以及后台数据库系统的合成,还是目前惟一全面支持所有主流业界标准的开发工具和提高电子商务能力的利器。本书内容丰富、条理清晰,用深入浅出的语言阐述了Delphi 6的精髓,对Delphi或即将移植到Delphi的程序员来说,具有极大的参考价值。本书最后还介绍了Delphi在Internet方面的应用。在移动商务网络编程越来越热的今天,无疑会成为程序员关注的焦点。

图书特色

Steve Teixeira是Zone Labs的核心技术主管,Internet安全解决方案首席设计师。Steve以前担任过移动无线软件公司ThinSpace的首席技术官,并且在Full Moon Interactive担任过全职电子商务开发人员。在Borland担任研究开发软件工程师期间,Steve在Delphi和C++Builder开发中作出了巨大的贡献。Steve是4本获奖畅销书的作者,并且在软件开发杂志上发表过许多文章,他的作品被译成了多国文字。Steve经常在行业会议上发表演讲。
  Xavier Pacheco是Xapware技术公司的总裁,该公司是一个软件开发咨询公司。Xavier也经常担任行业会议发言人,并且是Delphi期刊的资深作者。Xaiver是全球公认的Delphi专家和Borland指定的TeamB团体志愿人员。他是4本获奖畅销书的作者,其作品被译成了多种语言。Xavier和他的妻子Annie以及两个孩子Amanda和Zachary住在Colorrado Springs。
  其他作者介绍
  Bob Swart(Dr.Bob,www.drbob42.com)是英国Borland协会成员,独立技术作者,荷兰Helmond的Delphi、Kylix、C++Builder技术顾问和培训师。Bob在Delphi Magazine、Delphi Developer、UK-BUG Developer's Magazine等杂志担任专栏作者,同时也在DevX、TechRepublic和Borland Community Web网站上发表文章。Bob为《The Revolutionary Guide to Delphi 2》、《Delphi 4 Unleashed》、《C++Builder 4 Unleashed》 、《C++Builder 5 Developer's Guide》、《Kylix Developer's Guide》和现在的《Delphi 6 Developer's Guide》(Sams出版社)都撰写了部分章节。
  Bob经常在Borland和Delphi/Kylix相关研讨会上担任发言人,并且为他自己的Dr.Bob's Delphi培训班(在英国和荷兰)撰写培训教材。
  业余时间,Bob喜欢和他的儿子Eric Mark Pascal和女儿Natasha Louise Delphine一起春"Star Trek Voyager"和"Deep Space Nine"的录影带。
  Dan Miser是Borland DSP小组的研究开发项目经理,他花了大量的时间去钻研技术。Dan在Delphi的研究开发小组负责DataSnap的开发。Dan的主要精力在于研究分布式计算技术,包括MIDAS、SOAP、DCOM、RMI、J2EE、EJB、Struts 和RDS。他也致力于Delphi的应用推广,他担任技术编辑,在杂志上撰写有关文章,作为TeanB的成员参与Borland新闻组,在BorCon会议的有关COM和MIDAS主题上担任发言人。
  David Sampson是Borland RAD Tools Group的研发工程师,负责集成CORBA到RAD产品中。他是资深的Pascal、Delphi和C++开发人员,经常在Borland开发人员会议上担当发言人。他和妻子住在佐治亚的罗斯威尔,爱好曲棍球,有空还帮妻子遛他们的Basenjis小狗。
  Nick Hodges是圣保罗市Lemanix公司的一名资深开发工程师。他是Borland TeanB小组成员,有着长期的Pascal和Delphi开发经验。他为Borland协会咨询部服务,并且多次担任会议发言人,是Borland联合网站的老作者。他和妻子带着两个孩子住在圣保罗。喜欢阅读、跑步,帮妻子照顾孩子。
  Ray Konopka是Raize Software公司的创始人,是CodeSite和Raize组件的主要设计师。
  Ray是受到好评的《Developing Custom Delphi Components》一书的作者,是《Visual Developer magazine》杂志"Delphi by Design"的专栏作者。Ray的专长是用户界面设计和Delphi组件开发,在全球的一些开发者协会中经常担当发言人。

图书前言

本书至今已增订到第6版,在7年的时间中,本书不断完善,为了写作本书,很多人对此付出了相当多的精力。Xavier和Steve是最早的Borland Delphi开发小组成员,本书是他们结合15年的Delphi开发经验写成的。在本书中,我们可以感受到作者的努力精神,正是这种精神,让Delphi开发从书成为世界上最畅销的Delphi书籍,并两次获得Delphi读者最佳选择奖。
  这本书由开发人员撰写,同时也供开发人员阅读。
  本书建立在《Delphi 5开发人员指南》基础之上,理想状况下,我们希望本书包括《Delphi 5开发人员指南》的全部章节和所有新内容。但是《Delphi 5开发人员指南》一书本身太厚,为了给Delphi 6新特性的讨论留下足够空间,我们只抽取了其中的部分章节,再加上Delphi 6的新特性讨论,新书就这样展现在大家面前。
  本书包括了一些全新章节,许多章节是《Delphi 5开发人员指南》对应章节的扩展。但在《Delphi 5开发人员指南》中介绍的内容还是极其有用的。因此我们在本书配套光盘中附带了整个电子版的《Delphi 5开发人员指南》,每个章节单独地用PDF格式存储。在电子版的封面中包含了《Delphi 5开发人员指南》的目录表,读者可以在其中查找感兴趣的章节。对读者而言,可谓一举两得。
  本书分成六部分。第一部分,“基础知识”,讲述了Delphi编程必要的基础知识。第二部分,“高级技术”,讨论了一些通用的高级开发主题,例如线程和动态链接库。第三部分,“数据库开发”,从多个层面上讨论了Delphi数据库访问主题。第四部分,“基于组件的开发”,讨论了关于VCL、CLX、包、COM和Open Tools API开发问题。第五部分,“企业开发”,其中讨论了开发企业级应用程序需要的实践知识,包括COM十、COBRA、SOAP/BizSnap和DataSnap。最后,第六部分,“Internet开发”,演示了使用Delphi开发Internet和无线应用程序的技术。
  本书面向的读者
  书如其名,本书是面向开发人员的。如果读者是一位开发人员,并且使用Delphi,那就需要拥有一本这样的书。本书面向3类读者:
  ■希望将技术提高一个层次的Delphi开发人员。
  ■熟悉Pascal、C/C十十、Java或Basic,并希望开始使用Delphi的程序员。
  希望最大限度利用Delphi来研究其中先进特性和隐含特性的程序员。
  本书使用的约定
  本书使用了下列约定:
  代码行、命令、声明、变量、程序输出以及任何屏幕内容都用计算机打印字体显示。
  需要读者输入的内容用粗体显示。
  语法描述中的占位符用斜体表示。
  技术术语在文章中第一次出现或者用于强调重点时,用斜体表示。
  程序或过程用在其名后加上一对圆括号表示。虽然这不是标准Pascal风格,但是有助于和属性、变量和类区分。
  各章都有一些注意、提示和警告,为了方便阅读,用特殊的字体标出。  
  本书配套光盘中有书中所有的源代码和项目文件,同时还有一些本书中尚未提到的源代码示例。此外,光盘中还包括一些第三方组件和工具的使用版。
  Delphi 6开发指南网站
  请访问网站http://www.xapware.com/ddg并且加入《Delphi 6开发人员指南》会员,从而得到本书的额外信息。读者也可以加入我们新闻邮件的邮件列表,并访问我们的讨论组。
  写作本书的缘由
  有人会问,是什么驱使我们编写本书的。这很难解释,但是当看到其他开发人员仍然将标满了注解、且被翻阅得破烂不堪的《Delphi 5开发人员指南》视为至宝时,就感到一切付出都是值得的。
  完成本书的写作后,现在我们可以稍微轻松下来并愉快地编写一些Delphi程序。本书开始讲述的节奏比较慢,但是会迅速深入到Delphi的高级主题中,不过读者应该能够适应这种节奏。如果读者意识到了这一点,说明您已经通读了本书,并且具有了足够的Delphi方面的知识与技术,也许已经可以被称作Delphi专家了。

图书序言

“Delphi 6,历经两年精心打造,使您开发永远高效。”
  我很荣幸为Borland公司服务了16年。在1985年夏天,我开始在这里工作,成为了新一代编程工具(UCSD Pascal系统和命令行工具已不能满足需要)开发者中的一分子,我们的工作提高了程序员的编程效率,延长了程序员的生命(本人也包括在内)。在过去的18年中,我们一直在努力创新,同时致力于提高编程者的技术。我很荣幸成为全球范围内Borland大家庭中的一员。
  Turbo Pascal 1.0永远地改变了编程工具的面貌,在1983年确定了它的标准。Delphi也再次改变了编程工具的面貌。Delphi 1.0的重点在于面向对象编程、面向Windows编程并让数据库开发更为简捷。Delphi的后期版本致力于让Internet和分布式应用程序开发变得更为简单。
  虽然多年来在产品中加入了众多的特性,编写了大量的文档和数兆的在线帮助,但是程序员要编写出成功的项目:还是需要了解其他方面大量的信息、知识和忠告。
  你们是如何超越全球称誉的Delphi 5的? Delphi 5是不是在简化了Internet程序开发和分步式应用程序的同时,也提高了Delphi程序员的效率?Delphi 开发小组能不能够再次超越自我满足当今的需要,并且适合明天的开发人员?
  新千年伊始,Delphi开发小组耗费两年时间来倾听用户的声音、观察开发人员是如何使用该产品的以及寻找编程中的棘手之处。他们致力于从根本上简化开发下一代电子商务Web应用程序的过程,其中包括基于XML/SOAP的Web服务;B2B/B2C/P2P应用程序集成、跨平台应用程序、集成AppServer/EJB的分布式应用程序以及Microsoft Windows ME/2000和Office 2000的应用程序。
  Steve Teixeira和Xavier Pacheco再次联手合作,为我们奉献了开发指南的新版本,读者将从中获益匪浅,本书从深度和广度上阐述了Delphi 6编程技术。
  我很早就认识Steve Teixeira(有人称他T—Rex)和Xavier Pacheco(有人仅仅用X来称呼他),他们是我多年的老友、同事、年会发言人和Borland大家庭中的成员。
  他们上一个版本的开发指南曾经受到全世界的Delphi开发者的好评。现在他们带来了新的版本,相信读者会喜欢此书。
  有爱好才会去钻研。在此希望读者的Delphi项目开发能够愉快、成功并受到赞赏!
  David Intersimone(David I)
  客户关系部副部长
  Borland软件公司
  davidi@borland.com


作者简介

(美)Steve Teixeira, Xavier Pacheco:暂无简介

译者简介

龙劲松 王瑜 谢尚书:暂无简介

译者序

作为Delphi爱好者,我们一直关注着它的发展,2001年6月12日,Borland软件公司在京发布了Windows快速应用开发环境的新版本Borland Delphi 6。它不仅能帮助程序员高效开发Windows应用程序、简化Web服务器、中间件以及后台数据库系统的集成。还是目前惟一全面支持所有主流业界标准(XML、30AP4、WSDL和XSL等)的开发工具。与此同时,它还支持基于Web服务的Microsoft.NET和SunONE体系,为Web开发人员提供了必要的伸缩性和可靠性。可以这样说,Delphi 6是提高电子商务能力的利器。
  了解Delphi 6的新特性之后,我们非常高兴能承担本书的翻译工作。本书的前一版《Delphi 5开发人员指南》是世界上最畅销的Delphi书籍之一,曾两次获得最佳Delphi图书读者选拔奖。在翻译过程中,我们的心情一直非常愉快,既能学习Delphi 6的新特性,又能借他山之石,丰富自己已有的编程知识。本书内容丰富,条理清晰,用深入浅出的语言阐述了Delphi 6的精髓,对Delphi或即将移植到Delphi的程序员来说,无疑具有指导意义。尤其值得称道的是,本书最后还详细介绍了Delphi在Internet方面的应用。在移动商务的网络编程越来越流行的今天,这无疑会成为程序员关注的焦点。
  在翻译过程中,我们在保持原意的基础上,尽量保持语句流畅、行文优美,并出于爱好,对其中部分源代码进行了调试(当然,这个过程是非常惬意的)。由于时间过于仓促,疏漏之处在所难免,敬请广大读者指正,并欢迎大家与我们讨论Delphi。
  译者
  2002年春于北京

图书目录

第一部分 基本知识
第1章 Delphi编程简介
1.1 Delphi的产品家族介绍
1.2 认识Delphi
l.2.1 可视化开发环境的特性
1.2.2 编译器速度和编译后代码执行效率
1.2.3 编程语言的功能和复杂性的对立
1.2.4 数据库结构的灵活性和可扩展性
1.2.5 实现机制对设计和使用模式的增强
1.3 历史回顾
1.3.1 Delphi 1
1.3.2 Delphi 2
1.3.3 Delphi 3
1.3.4 Delphi 4
1.3.5 Delphi 5
1.3.6 Delphi 6
1.4 Delphi IDE环境
1.4.1 主窗口
1. 4. 2 主菜单
1.4.3 Delphi工具栏
1. 4. 4 组件选项板
1.4.5 窗体设计器
1.4.6 对象观察器
1.4.7 代码编辑器
1. 4. 8 代码浏览器
1. 4. 9 对象层次图
1.5 项目源文件概述
1.6 应用程序简介
1.7 事件处理机制的优势
1.8 快速原型化
1.9 可扩展的组件和环境
1.10 必须掌握的10种IDE功能
1.11 小结
第2章 Object Pascal语言
2.1 注释
2.2 扩展过程和函数特性
2.2.1 函数调用中的圆括号
2.2.2 重载
2.2.3 缺省参数值
2.3 变量
2.4 常量
2.5 运算符
2.5.1 赋值运算符
2.5.2 比较运算符
2.5.3 逻辑运算符
2.5.4 数学运算符
2.5.5 按位运算符
2.5.6 增/减量运算
2.5.7 "计算-赋值"运算符
2.6 Object Pascal类型
2.6.1 类型比较
2.6.2 字符类型
2.6.3 字符串
2.6.4 变体类型
2.6.5 货币类型
2.7 用户自定义类型
2.7.1 数组
2.7.2 动态数组
2.7.3 记录
2.7.4 集合
2.7.5 对象
2.7.6 指针
2.7.7 类型别名
2.8 类型转换和强制类型转换
2.9 字符串资源
2.10 条件判断语句
2.10.1 if语句
2.10.2 case语句
2.11 循环
2.11.1 for循环
2.11.2 while循环
2.11.3 repeat..until循环
2.11.4 Break()过程
2.11.5 Continue()过程
2.12 过程和函数
2.13 作用域
2.14 单元
2.14.1 uses子句
2.14.2 单元循环引用
2.15 包
2.15.1 使用Delphi包
2.15.2 包的语法格式
2.16 面向对象编程
2.17 使用Delphi对象
2.17.1 声明和实例化
2.17.2 析构
2.17.3 方法
2.17.4 方法的类型
2.17.5 属性
2.17.6 可见区域说明符
2.17.7 友元类
2.17.8 对象的秘密
2.17.9 TObject:所有对象的祖先
2.17.10 接口
2.18 结构化异常处理
2.18.1 异常类
2.18.2 异常执行流程
2.18.3 异常的再激活
2.19 运行时信息
2.20 小结
第3章 理解Windows消息
3.1 什么是消息
3.2 消息的类型
3.3 Windows消息系统的工作方式
3.4 Delphi的消息系统
3.5 消息的处理
3.5.1 消息处理:并非无约定
3.5.2 为Result消息值赋值
3.5.3 TApplication类型的OnMessage事件
3.6 发送自己的消息
3.6.1 Perform()方法
3.6.2 SendMessage()和PostMessage()API函数
3.7 非标准消息
3.7.1 通知消息
3.7.2 内部VCL消息
3.7.3 用户定义消息
3.8 剖析VCL的消息系统
3.9 消息和事件之间的关系
3.10 小结
第二部分 高级技术
第4章 编写可移植代码
4.1 版本兼容的共性
4.1.1 版本判断
4.1.2 单元、组件和包
4.1.3 关于IDE的讨论
4.2 Delphi和Kylix兼容性
4.2.1 Linux中不具备的特性
4.2.2 编译器和语言特性
4.2.3 平台相关特点
4.3 Delphi 6的新特性
4.3.1 变体变量
4.3.2 枚举类型
4.3.3 $IF指示符
4.3.4 潜在的二进制DFM的不兼容
4.4 从Delphi 5升级
4.4.1 可写的类型常量
4.4.2 Cardinal一元取反操作
4.5 从Delphi 4升级
4.5.1 RTL问题
4.5.2 VCL问题
4.5.3 Internet开发主题
4.5.4 数据库问题
4.6 从Delphi 3升级
4.6.1 无符号32位整数
4.6.2 64位整数
4.6.3 Real类型
4.7 从Delphi 2升级
4.7.1 Boolean类型的改变
4.7.2 ResourceString
4.7.3 BTL的改变
4.7.4 TCustomForm
4.7.5 GetChildren()
4.7.6 自动化服务器
4.8 从Delphil升级
4.9 小结
第5章 多线程技术
5.1 阐述线程
5.1.1 多任务的类型
5.1.2 在Delphi应用程序中使用多线程
5.1.3 线程的滥用
5.2 TThread对象
5.2.1 TThread基础
5.2.2 线程实例
5.2.3 线程终止
5.2.4 和VCL同步
5.2.5 应用程序Demo
5.2.6 优先级和调度
5.2.7 线程的挂起和恢复
5.2.8 线程中的计时
5.3 管理多线程
5.3.1 线程局部存储
5.3.2 线程同步
5.4 多线程应用程序范例
5.4.1 用户界面
5. 4. 2 搜索线程
5. 4. 3 调整优先级
5.5 多线程访问BDE
5.6 多线程图形操作
5.7 纤程
5.8 小结
第6章 动态链接库
6.1 何谓DLL
6.2 静态链接和动态链接
6.3 为何要用DLL
6.3.1 多个应用程序共享代码、资源和数据
6.3.2 隐藏实施细节
6.4 创建和使用DLL
6.4.1 数美分(简单的DLL)
6. 4. 2 通过DLL显示模式窗体
6.5 通过DLL显示无模式窗体
6.6 在Delphi应用程序中使用DLL
6.7 显式调用DLL
6.8 动态链接库的入口/出口函数
6.8.1 进程和线程的初始化和结束标准函数
6.8.2 DLL入口/出口示例
6.9 DLL中的异常
6.9.1 在16位Delphi中捕捉异常
6.9.2 异常和Safecall指示符
6.10 回调函数
6.10.1 使用回调函数
6.10.2 绘制Owner-Draw列表框
6.11 通过DLL调用回调函数
6.12 共享不同进程中的DLL数据
6.12.1 创建共享内存的DLL
6.12.2 使用共享内存的DLL
6.13 从DLL中输出对象
6.14 小结
第三部分 数据库开发
第7章 Delphi数据库体系结构
7.1 数据库类型
7.2 数据库体系结构
7.3 连接到数据库服务器
7.3.1 数据库连接概述
7.3.2 建立数据库连接
7.4 操作数据集
7.4.1 打开及关闭数据集
7.4.2 导航数据集
7.4. 3 管理数据集
7.4.4 数据集状态
7.5 操作字段
7.5.1 字段值
7.5.2 字段数据类型
7.5.3 字段名称及号码
7.5.4 管理字段数据
7.5.5 操作BLOB字段
7.5.6 过滤数据
7.5.7 搜索数据集
7.5.8 关键字查找
7.5.9 使用数据模块
7.5.10 查找、范围及过滤器演示
7.5.11 书签
7.6 小结
第8章 用dbExpress进行数据库开发
8.1 使用dbExpess
8.1.1 单向、只读数据集
8.1.2 dbExpress与BDE比较
8.1.3 dbExpress支持跨平台开发
8.2 dbExpress组件
8.2.1 TSQLConnection
8.2.2 TSQLDataset
8.2.3 显示查询结果
8.2.4 向后兼容组件
8.2.5 TSQLMonitor
8.3 设计可编辑的dbExpress应用程序
8.4 部署dbExpress应用程序
8.5 小结
第9章 用dbGo for ADO进行数据库开发
9.1 dbGo介绍
9.2 Mcrosoft的统一数据访问策略概述
9.3 OLE DB、ADO、ODBC概述
9.4 使用dbGo for ADO
9.4.1 为ODBC建立OLE DB提供者
9.4.2 Access数据库
9.5 dbGo for ADO组件
9.5.1 TADOConnection
9.5.2 建立数据库连接
9.5.3 回避/替代登录提示
9.5.4 TADOCommand
9.5.5 TADODataset
9.5.6 类似BDE的数据集组件
9.6 事务处理
9.7 小结
第四部分 基于组件的开发
第10章 组件体系:VCL和CLX
10.1 关于新的CLX
10.2 何谓组件
10.3 组件的层次结构
10.3.1 非可视组件
10.3.2 可视组件
10.4 组件结构
10.4.1 属性
10.4.2 属性的类型
10.4.3 方法
10. 4.4 事件
10.4.5 流式属性
10.4.6 所有权
10.4.7 父子关系
10.5 可视组件的继承关系
10.5.1 TPersistent类
10.5.2 TPersistent方法
10.5.3 TComponent类
10.5.4 TControl类
10.5.5 TWinControl和TWidgetControl
10.5.6 TGraphicControl类
10.5.7 TCustomControl类
10.5.8 其他类
10.6 运行期类型信息
10.6.1 TypInfo.pas单元:运行类型信息的定义者
10.6.2 获取类型信息
10.6.3 获得方法指针的类型信息
10.6.4 获取有序类型的类型信息
10.6.5 通过RTTI为属性赋值
10.7 小结
第11章 编写VCL组件
11.1 组件设计基础
11.1.1 决定是否应编写组件
11.1.2 编写组件的步骤
11.1.3 确定祖先类
11.1.4 创建组件单元
11.1.5 创建属性
11.1.6 创建事件
11.1.7 创建自定义方法
11.1.8 构造函数和析构函数
11.1.9 注册组件
11.1.10 测试组件
11.1.11 提供组件图标
11.2 组件示例
11.2.1 扩展Win32组件包装器的性能
11.2.2 TddgRunButton:创建属性
11.3 TddgButtonEdit:一个容器组件
11.3.1 设计决策
11.3. 2 显露属性
11.3.3 显露事件
11.3.4 TddgDigitalClock:创建组件事件
11.3.5 把窗体添加到组件面板
11.4 小结
第12章 高级VCL组件构造技术
12.1 伪可视组件
12.1.1 扩展提示功能
12.1.2 创建一个THintWindow派生类
12.1.3 椭圆型窗口
12.1.4 激活THintWindow派生窗口
12. 1.5 运用TDDGHintWindow
12.2 动态组件
12.2.1 滚动字幕组件
12.2.2 编写组件
12.2.3 在屏幕以外的位图上绘制
12.2.4 描绘组件
12.2.5 让组件"动起来"
12.2.6 测试TddgMarquee组件
12.3 编写属性编辑器
12.3.1 创建一个继承的属性编辑器对象
12.3.2 将属性作为文本进行编辑
12.3.3 注册新的属性编辑器
12.3.4 利用对话框将属性作为整体进行编辑
12.4 组件编辑器
12.4.1 TComponentEditor
12.4.2 一个简单的组件
12. 4. 3 一个简单的组件编辑器
12.4.4 注册组件编辑器
12.5 对非公开的组件数据执行流操作
12.5.1 定义属性
12.5.2 DefineProperty()的例子
12.5.3 TddgWaveFile:DefineBinaryProperty()用法示例
12.6 属性类别
12.6.1 类别类
12.6.2 自定义类别
12.7 组件列表:TCollection和TCollectionItem
12.7.1 定义TCollectionItem类:TRunBtnItem
12.7.2 定义TCollection类:TRunButtons
12.7.3 实现TddgLaunchPad、TRun-BtnItem和TRunButtons
12.7.4 用对话框属性编辑器编辑TCollectionItem组件的列表
12.8 小结
第13章 CLX组件开发
13.1 何谓CLX
13.2 CLX的体系结构
13.3 移植问题
13.4 组件示例
13.4.1 TddgSpinner组件
13.4.2 设计期增强工具
13.4.3 组件引用和图像列表
13.4.4 CLX数据感知组件
13.5 CLX设计编辑器
13.6 包
13.6.1 命名约定
13.6.2 运行期包
13.6.3 设计期包
13.6.4 单元注册
13.6.5 组件位图
13.7 小结
第14章 充分发挥包的作用
14.1 为何要用包
14.1.1 精简代码
14.1.2 发布更小的应用程序--应用程序分割
14.1.3 组件容器
14.2 为何不用包
14.3 包的类型
14.4 包文件
14.5 使用运行期包
14.6 把包安装到Delphi IDE中
14.7 创建包
14.7.1 包编辑器
14.7.2 包设计方案
14.8 包的版本化
14.9 包编译器指示符
14.10 包的命名约定
14.11 使用运行期(插件)包的可扩展应用程序
14.12 从包中导出函数
14.13 获取包的信息
14.14 小结
第15章 COM开发
15.1 COM基础
15.1.1 COM2组件对象模型
15.1.2 COM、ActiveX和OLE之间的对比
15.1.3 术语
15.1.4 ActiveX的优势
15.1.5 OLE 与OLE 2的对比
15.1.6 结构化存储
15.1.7 统一数据传输
15.1.8 线程模式
15.1.9 COM十
15.2 COM与Object Pascal
15.2.1 接口
15.2.2 使用接口
15.2.3 HResult返回类型
15.3 COM对象和类工厂
15.3.1 TComObject和TComObject-Factory
15.3.2 in-process COM服务器
15.3.3 创建in-proc COM服务器实例
15.3.4 out-of-process COM服务器
15.4 聚合
15.5 分布式COM
15.6 Automation
15.6.1 IDispatch
15.6.2 类型信息
15.6.3 后期绑定与早期绑定的对比
15.6.4 注册
15.6.5 创建Automation服务器
15.6.6 创建Automation控制器
15.7 高级Automation技术
15.7.1 Automation事件
15.7.2 Automation集合
15.7.3 类型库新增接口类型
15.7.4 二进制数据的交换
15.7.5 后台:COM的语言支持
15.8 TOleContainer
15.8.1 一个简单的示例程序
15.8.2 一个较为复杂的示例程序
15.9. 4 小结
第16章 Windows外壳编程
16.1 托盘图标组件
16.1.1 API
16.1.2 处理消息
16.1.3 图标及提示
16.1.4 鼠标点击
16.1.5 隐藏应用程序
16.1.6 托盘图标应用程序示例
16.2 应用程序桌面工具栏
16.2.1 API
16.2.2 TAppBar:AppBar的窗体
16.2.3 使用TAppBar
16.3 外壳链接
16.3.1 获取IShellLink实例
16.3.2 使用IShellLink
16.3.3 创建一个外壳链接
16.3.4 获取及设置链接信息
16.3.5 示例程序
16.4 外壳扩展
16.4.1 COM对象向导
16.4.2 复制钩子处理器
16.4.3 环境菜单处理器
16.4.4 图标处理器
16.4.5 信息提示处理器
16.5 小结
第17章 使用Open Tools API
17.1 Open Tools接口
17.2 使用Open Tools API
17.2.1 简单的向导
17.2.2 Wizard向导
17.2.3 DDG Search
17.3 窗体向导
17.4 小结
第五部分 企业开发
第18章 使用COM+/MTS开发事务程序
18.1 什么是COM十
18.2 使用COM的原因
18.3 服务
18.3.1 事务
18.3.2 安全
18.3.3 及时激活
18.3.4 队列组件
18.3.5 对象缓冲池
18.3.6 事件
18.4 运行期
18.4.1 注册数据库(RegDB)
18.4.2 配置组件
18. 4. 3 运行环境(Contexts)
18.4. 4 Neutral线程
18.5 创建COM十应用程序
18.5.1 目标:规模
18.5.2 执行环境
18.5.3 有状态(Stateful)和无状态(Stateless)
18.5.4 生命周期管理
18.5.5 COM十应用程序的组织
18.5.6 有关事务的思考
18.5.7 资源
18.6 Delphi中的COM十
18.6.1 COM十向导
18.6.2 COM十框架
18.6.3 Tic-Tac-Toe:一个简单的应用程序
18.6.4 调试COM十应用程序
18.7 小结
第19章 CORBA开发
19.1 CORBA特性
19.2 CORBA体系结构
19.2.1 OSAgent
19.2.2 接口
19.3 接口定义语言
19.3.1 基本类型
19.3.2 用户定义类型
19.3.3 别名
19.3.4 枚举
19.3.5 结构
19.3.6 数组
19.3.7 序列
19.3.8 方法参数
19.3.9 模块
19.4 银行案例
19.5 复杂数据类型
19.6 Delphi、CORBA和Enterprise Java Beans(EJB)
19.6.1 Delphi程序员EJB速成
19.6.2 EJB是一种特殊的组件
19.6.3 EJB在容器中运行
19. 6. 4 EJB具有预定义的API
19.6.5 Home(本地)接口和Remote(远程)接口
19.6.6 EJB的类型
19. 6.7 配置JBuilder 5以开发EJB
19.6.8 创建一个简单的"Hello'world" EJB
19.7 CORBA和Web Services
19.7.1 创建Web Service
19.7.2 创建SOAP客户端应用程序
19.7.3 添加CORBA客户端代码至Web Service中
19.8 小结
第20章 BizSnap开发:基于SOAP的Web Services
20.1 Web Services
20.2 SOAP
20.3 编写Web Service
20.3.1 TWebModule
20.3.2 定义一个可调用接口
20.3.3 实现一个可调用接口
20.3.4 测试Web Service
20.4 从客户端调用Web Service
20.4.1 为远程可调用对象产生一个输入单元
20.4.2 使用THTTPRIO组件
20.5 小结
第21章 DataSnap开发
21.1 创建多层应用程序的机制
21.2 多层体系结构的优点
21.2.1 集中商业逻辑
21.2.2 瘦客户结构
21.2.3 自动错误调解
21.2.4 公文包模型
21.2.5 容错性
21.2.6 负载平衡
21.3 典型的DataSnap结构
21.3.1 服务器
21.3.2 客户端
21.4 使用DataSnap创建应用程序
21.4.1 创建服务器
21.4.2 创建客户端
21.5 更多增强应用程序健壮性的措施
21.5.1 客户端优化技术
21.5.2 应用程序服务器技术
21.6 实例
21.7 Client Dataset组件的更多特性
21.8 典型错误
21.9 配置DataSnap应用程序
21.9.1 发放许可证
21.9.2 DCOM配置
21.9.3 文件配置
21.9.4 Internet配置考虑(防火墙)
21.10 小结
第六部分 Internet开发
第22章 ASP开发
22.1 理解活动服务器对象
22.2 活动服务器对象向导
22.2.1 类型库编辑器
22.2.2 新方法
22.2.3 ASP Response对象
22.2.4 第一次运行
22.2.5 ASP Request对象
22.2.6 重新编译活动服务器对象
22.2.7 再次运行活动服务器对象
22.3 ASP Session、Server和Application对象
22.4 活动服务器对象及数据库
22.5 活动服务器对象及NetCLX支持
22.6 调试活动服务器对象
22.6.1 使用MTS调试活动服务器对象
22.6.2 采用Windows NT 4调试
22.6.3 采用Windows 2000调试
22.7 小结
第23章 WebSnap开发
23.1 WebSnap的特性
23.1.1 多个Webmodule
23.1.2 服务器执行脚本
23.1.3 TAdapter(适配器)组件
23.1.4 多种调度方法
23.1.5 Page producer(页面生成器)组件
23.1.6 会话管理
23.1.7 登录服务
23.1.8 用户跟踪
23.1.9 HTML管理
23.1.10 文件上传服务
23.2 websnap开发
23.2.1 应用程序的设计
23.2.2 为应用程序添加功能
23.2.3 导航菜单栏
23.2.4 登录
23.2.5 管理用户偏好数据
23.2.6 在会话之间保存偏好数据
23.2.7 图像处理
23.2.8 显示数据
23.2.9 将应用程序转换为ISAPI DLL
23.3 高级话题
23.3.1 LocabFileServices(文件定位服务)
23.3.2 文件上传
23.3.3 包含定制模板
23.3.4 在TAdapterPageProducer中定制组件
23.4 小结
第24章 无线开发
24.1 开发技术的发展:回顾
24.1.1 20世纪80年代以前:庞然大物时代
24.1.2 20世纪80年代后期:桌面数据库应用程序
24.1.3 20世纪90年代早期:客户端/服务器
24.1.4 20世纪90年代后期:多层结构及基于Intemet的事务处理
24.1.5 21世纪早期:扩展到无线移动领域的应用程序基础架构
24.2移动无线设备
24.1.3 20世纪90年代早期:客户端/服务器
24.1.4 20世纪90年代后期:多层结构及基于Intemet的事务处理
24.1.5 21世纪早期:扩展到无线移动领域的应用程序基础架构
24.2 移动无线设备
24.2.1 移动电话
24.2.2 palmos设备
24.2.3 Pocket PC
24.2.4 RIM BlackBerrv
24.3 无线电技术
24.3.1 GSM、CDMA和TDMA
24.3.2 CDPD
24.3.3 3G
24.3.4 GPRS
24.3.5 蓝牙
24.3.6 802.11
24.4 基于服务器的无线数据技术
24.4.1 SMS
24.4.2 WAP
24.4.3 1-mode
24.4.4 PQA
24.5 无线用户体验
24.5.1 环路选择网络和数据包选择网络
24.5.2 无线并非Web
24.5.3 窗体因素的重要性
24.5.4 数据输入和导航技术
24.5.5 M-Commerce
24.6 小结

教学资源推荐
作者: Bruce Eckel
作者: 许畅 陈嘉 朱晓瑞 编著
作者: George Coulouris, Jean Dollimore, Tim Kindberg
作者: 高屹 沙俊星
参考读物推荐
作者: 张帆 编著
作者: Peter Cooper
作者: 闫兴亚 张克发 等著
作者: (美)Zigurd Mednieks,Laird Dornin,G. Blake Meike,Masumi Nakamura 著