本书完整而全面地介绍了Delphi 4。其主要内容有COM和分布式计算、数据库编程、常规编程问题以及图形和DirectX编程。通过本书的学习,读者不仅可以快速了解Delphi 4编程的要旨,还可以掌握许多新技术,如创建COM自动化服务器和客户程序、使用MIDAS进行多层数据库计算、使用DCOM跨网络分布数据库等。\r\n本书最大的特点是代码丰富,不仅书中详细介绍了代码样例,配套光盘上还包括了许多书中没有介绍的源程序。本书适用于使用Delphi 4编程的程序员。\r\n
译者序\r\n\r\n第一部分 入门\r\n\r\n第1章 程序设计基础\r\n\r\n1.1 本书的结构\r\n1.2 范例程序\r\n1.3 创建设计良好的程序\r\n1.3.1 设计问题:书定简单的代码\r\n1.3.2 螺旋式上升\r\n1.3.3 好OOP与差OOP的对比\r\n1.3.4 注意灵活的事件处理程序\r\n1.3.5 感到懒于理清程序的环节\r\n1.3.6 避免使用隐藏数据交叉链接对象\r\n1.3.7 简短的方法\r\n1.3.8 变量、方法以及过程的命名\r\n1.3.9 避免特征漂移\r\n1.3.10 创建组件\r\n1.3.11 使用第三方工具\r\n1.4 本书正文的注意事项\r\n1.4.1 Unleash和Merc40包\r\n1.4.2 CodeBox单元\r\n1.4.3 建立网络\r\n1.4.4 Borland/Inprise的名称变化\r\n1.4.5 注释代码\r\n1.5 总结\r\n\r\n第2章 IDE和VCL增强\r\n\r\n2.1 可停放的工具栏\r\n2.2 使用工具窗口\r\n2.3 使用Code Explorer\r\n2.4 Delphi 4中的新工具\r\n2.4.1 使用Project Manager和调试器\r\n2.4.2 调试DLL\r\n2.4.3 使用模块视图\r\n2.4.4 使用事件日志窗口\r\n2.4.5 CPU视图\r\n2.4.6 调试器中的新特征\r\n2.4.7 Code Browser和Tooltip Symbol Iinsight\r\n2.5 停靠窗口\r\n2.5.1 在窗体中停放控件\r\n2.5.2 在窗体中停放窗体\r\n2.6 动作列表\r\n2.6.1 使用动作列表\r\n2.6.2 使用标准动作\r\n2.7 函数重载\r\n2.7.1 方法重载和继承\r\n2.7.2 使用方法重载时要避免的错误\r\n2.7.3 默认参数\r\n2.8 动态数组\r\n2.9 implements关键字\r\n2.10 总结\r\n\r\n第3章 多态性\r\n\r\n3.1 多态性的概念\r\n3.1.1 赋值和等于的比较\r\n3.1.2 多态性的简单例子\r\n3.2 多态性赋值能力\r\n3.2.1 设置子对象适合于它们的父对象\r\n3.2.2 多态性的另一面\r\n3.3 虚方法和多态性\r\n3.3.1 经典的形状演示\r\n3.3.2 没有多态性的代码\r\n3.4 VCL中的多态性\r\n3.5 总结\r\n\r\n第4章 异常处理\r\n\r\n4.1 本章如何处理异常\r\n4.2 异常的理论\r\n4.2.1 异常的功能\r\n4.2.2 默认异常处理程序\r\n4.2.3 整个程序是一个大try块\r\n4.2.4 未处理异常引起的恐慌\r\n4.3 异常类\r\n4.4 基本异常句法\r\n4.4.1 一个简单的try..except模块\r\n4.4.2 异常的关联错误字符串\r\n4.4.3 找到错误的地址\r\n4.4.4 异常处理总结\r\n4.5 引发异常\r\n4.5.1 引发VCL异常类\r\n4.5.2 理解VCL异常类\r\n4.5.3 运行Gauntlet:多异常类\r\n4.5.4 在常规except语句中捕获异常\r\n4.6 创建和引发自己的异常\r\n4.7 再引发异常\r\n4.8 try..finally块\r\n4.9 流、异常和空闲空间\r\n4.10 替换默认的异常处理程序\r\n4.11 使用资源跟踪错误字符串\r\n4.12 总结\r\n\r\n第5章 线程\r\n\r\n5.1 进程和内存\r\n5.1.1 线程与多任务\r\n5.1.2 抢占式与非抢占式多任务\r\n5.2 线程一个简单的例子\r\n5.3 多张程程序\r\n5.3.1 在Thread 2程序中使用线程\r\n5.3.2 向线程函数传递一个参数\r\n5.3.3 监界区:让多个线程同时工作\r\n5.4 处理互斥元\r\n5.5 线程和VCL\r\n5.6 线程安全数据库访问\r\n5.7 VCL线程安全对象\r\n5.8 使用TThread对象\r\n5.9 设置线程的优先级\r\n5.10 重Delphi线程\r\n5.11 总结\r\n\r\n第二部分 创建组件\r\n\r\n第6章 创建组件(一)\r\n\r\n6.1 组件原理\r\n6.2 创建现存组件的派生组件\r\n6.2.1 创建简单的组件\r\n6.2.2 双向工具\r\n6.2.3 注册组件\r\n6.2.4 改变组件的默认行为\r\n6.2.5 动态创建并检查组件\r\n6.3 包:将组件放入Component Palette中\r\n6.3.1 什么是包\r\n6.3.2 创建包\r\n6.4 扩展Unleash单元\r\n6.4.1 TCCBigEdit和TCCEmptyPanel控件\r\n6.4.2 创建复合组件\r\n6.4.3 创建组件的published属性\r\n6.4.4 流属性的注意事项\r\n6.5 创建真正有用的组件\r\n6.6 总结\r\n\r\n第7章 创建组件:(二)\r\n\r\n7.1 从头开始建立组件\r\n7.2 时钟组件\r\n7.2.1 了解TCCClock\r\n7.2.2 TCCColorClock\r\n7.2.3 创建Fancy Clock\r\n7.3 为组件创建图标\r\n7.4 Tools API:Property Editor和Component Editor\r\n7.4.1 五个主要的Tools API\r\n7.4.2 Property Editor\r\n7.4.3 关于注册你自己的组件以及Component Editor的更多知识\r\n7.45 Component Editor\r\n7.6 不可视的组件\r\n7.7 FindAllW程序\r\n7.7.1 使用TFileIterator遍历目录\r\n7.7.2 什么时候应该把对象做成不可见组件\r\n7.7.3 AllDirs单元和FiletIter单元\r\n7.7.4 遍历目录\r\n7.7.5 使用FindFirst、FindNext和FindClose\r\n7.7.6 创建事件处理程序\r\n7.8 CompDirs程序\r\n7.9 TCCPickDirDlg\r\n7.10 组件模板\r\n7.11 ActiveX控件\r\n7.12 总结\r\n\r\n第三部分 数据库编程\r\n\r\n第8章 字段和数据库工具\r\n\r\n8.1 从关系数据库开始\r\n8.1.1 关系数据库模型的优势\r\n8.1.2 简单的逻辑设置:关系数据库的基础\r\n8.1.3 DBD和Database Explorer中的索引和关键字\r\n8.2 重点规则:给每个表建立一个关键字\r\n8.2.1 一对多的关系:数据和索引\r\n8.2.2 用主关键字和外部关键字工作\r\n8.2.3 用副索引和外部关键字工作\r\n8.2.4 关键字的重要性\r\n8.3 用数据库工具浏览和操作数据库\r\n8.3.1 浏览DBDEMOS数据库的关键字和索引\r\n8.3.2 用Database Desktop创建索引\r\n8.3.3 创建别名\r\n8.3.4 使用Database Desktop创建主关键字和外部关键字\r\n8.3.5 探究引用完整性\r\n8.3.6 关系数据库和联结\r\n8.3.7 联结和QBE\r\n8.4 Fields Editor\r\n8.5 计算字段\r\n8.6 运行期间的TDBGrid\r\n8.6.1 在运行中控制DBGrid的Options属性\r\n8.6.2 运行时显示DBGrid选项\r\n8.7 使用TDBGrid列\r\n8.7.1 改变TDBGrid对象的标题\r\n8.7.2 改变网格里的整列\r\n8.7.3 改变网格里一行的颜色\r\n8.7.4 改变列宽\r\n8.7.5 在TDBGrid里隐藏列\r\n8.7.6 显示可见字段的列表\r\n8.7.7 运行时移动列\r\n8.8 查找字段\r\n8.9 多记录对象\r\n8.10 总结\r\n\r\n第9章 平面文件现实世界数据库\r\n\r\n9.1 本章示例程序\r\n9.2 设计应用程序\r\n9.2.1 定义数据\r\n9.2.2 程序设计的焦点\r\n9.3 定义程序的外观\r\n9.4 查找:处理Category字段\r\n9.5 设置程序的命令结构\r\n9.6 查看应用程序的“粗略草稿”\r\n9.7 创建自己的对象\r\n9.8 创建最终的程序\r\n9.9 切换进和切换出只读模式\r\n9.10 排序数据\r\n9.11 查询数据\r\n9.12 筛选数据\r\n9.13 标记文件\r\n9.14 设置颜色\r\n9.15 使用注册表\r\n9.16 剪贴板:剪切、复制和粘贴\r\n9.17 总结\r\n\r\n第10章 关系式数据库\r\n\r\n10.1 现实世界的数据\r\n10.2 测试关联地址程序\r\n10.3 kdAdd代码\r\n10.3.1 使用kdAdd程序\r\n10.3.2 为kdAdd建立索引\r\n10.3.3 查询记录\r\n10.3.4 插入数据和取消操作\r\n10.3.5 删除数据:程序的数据模块初览\r\n10.3.6 数据模块:级联删除\r\n10.3.7 数据模块:总体登记\r\n10.3.8 在字符串资源中加入错误字符串\r\n10.3.9 About框\r\n10.4 使用kdAddExplore程序\r\n10.4.1 使用TSession\r\n10.4.2 kdAddExplore程序的代码\r\n10.4.3 用TTreeView显示系统数据库\r\n10.4.4 展开TTreeView节点\r\n10.4.5 为TTreeView加入可用表的列表\r\n10.4.6 找到索引和字段\r\n10.4.7 显示别名和别名参数\r\n10.5 总结\r\n\r\n第11章 使用本地InterBase服务器\r\n\r\n11.1 从InterBase开始\r\n11.1.1 数据库和工作市场\r\n11.1.2 设置本地InterBase\r\n11.1.3 设置InterBase别名\r\n11.2 创建数据库\r\n11.2.1 使用WISQL\r\n11.2.2 创建表\r\n11.3 利用WISQL管理数据库\r\n11.4 事务处理\r\n11.4.1 创建TRANSACT程序\r\n11.4.2 使用TRANSACT程序\r\n11.4.3 理解事务处理\r\n11.5 调整缓存更新\r\n11.6 多对多关系\r\n11.7 安全和InterBase Server Manager\r\n11.7.1 定义表的访问权力\r\n11.7.2 利用InterBase Server Manager备份表\r\n11.8 总结 \r\n\r\n第12章 InterBase编程\r\n\r\n12.1 关于Music程序\r\n12.2 设计Music程序\r\n12.2.1 创建数据库方案\r\n12.2.2 修改表:空或非空\r\n12.2.3 重新命名现有表中的字段\r\n12.2.4 创建Blob字段\r\n12.2.5 主关键字和外部关键字\r\n12.3 在Music表创建索引\r\n12.4 生成器、触发器和存储过程\r\n12.4.1 不要在活动索引上使用触发器\r\n12.4.2 使用存储过程\r\n12.4.3 来自Delphi端的存储过程\r\n12.5 服务器端规则和客户端规则\r\n12.6 Music程序界面概述\r\n12.7 使用子窗体\r\n12.8 Music程序的代码\r\n12.8.1 使用Music程序\r\n12.8.2 禁止密码:TdataBase对象\r\n12.8.3 FormCreate事件\r\n12.9 使用Music程序中的数据\r\n12.10 向数据库提出一个问题:简短的SQL入门\r\n12.10.1 不返回数据集合的存储过程\r\n12.10.2 查看数据范围\r\n12.11 总结\r\n\r\n第四部分 COM\r\n\r\n第13章 COM接口和基础\r\n\r\n13.1 理解COM接口\r\n13.1.1 COM是什么\r\n13.1.2 COM和窗口\r\n13.1.3 即插即用应用程序\r\n13.1.4 COM的问题\r\n13.1.5 UNIX上的COM\r\n13.1.6 COM+和COM的未来\r\n13.2 接口介绍\r\n13.2.1 新接口类型\r\n13.2.2 接口不是类\r\n13.2.3 不能直接实现接口 \r\n23.2.4 利用类实现接口\r\n23.2.5 调用接口的方法\r\n13.2.6 破坏接口 \r\n13.3 接口背后的理论\r\n13.3.1 使用接口的原因\r\n13.3.2 维护或更新接口\r\n13.4 创建和使用COM接口\r\n13.4.1 理解GUID\r\n13.4.2 关于注册表和GUID所有内容\r\n13.4.3 理解IUnown\r\n13.4.4 实现IUnknown\r\n13.4.5 为接口指定GUID\r\n13.4.6 幻数\r\n13.4.7 UnknownByUser程序的注释\r\n13.5 高级接口问题\r\n13.5.1 多个接口\r\n13.5.2 方法解析语句\r\n13.5.3 Implements伪指令\r\n13.5.4 虚方法表\r\n13.6 总结\r\n\r\n第14章 TComObject、TTypedComObject以及类型库\r\n\r\n14.1 样例程序\r\n14.2 TComObject\r\n14.2.1 在DLL中放置普通接口\r\n14.2.2 IClassFactory\r\n14.2.3 ISystemInfo接口\r\n14.2.4 注册DLL\r\n14.2.5 从可执行文件访问存储在DLL中的COM对象\r\n14.2.6 越过程序边界编组数据\r\n14.2.7 编组数据\r\n14.2.8 Variant数组\r\n14.2.9 调用ISystemInfo数据\r\n14.3 类型库和查询对象\r\n14.3.1 创建类型库\r\n14.3.2 创建查询类型库的客户程序\r\n14.3.3 检索ITypeInfo\r\n14.3.4 获取接口信息\r\n14.4 总结\r\n\r\n第15章 创建COM自动化服务器和客户程序\r\n\r\n15.1 理解OLE自动化客户程序和服务器\r\n15.2 建立简单的COM服务器和客户程序\r\n15.2.1 建造简单的服务器\r\n15.2.2 在服务器上添加方法\r\n15.2.3 查看生成的源代码\r\n15.2.4 添加接口属性\r\n15.2.5 建立简单客户程序\r\n15.2.6 通过TCOMInterface来调用方法\r\n15.2.7 通过dispinterface调用方法\r\n15.2.8 通过Variant调用方法\r\n15.3 IDispatch、双重接口和dispinterface\r\n15.3.1 从Word调用SimpleAutoServer\r\n15.3.2 VTable和双重接口\r\n15.4 类型库\r\n15.4.1 什么是类型库\r\n15.4.2 创建类型库\r\n15.4.3 有效的自动化类型\r\n15.5 用EmptyParam忽略参数\r\n15.6 注册\r\n15.7 自动编组数据\r\n15.8 从一个CoClass得到两个或更多的接口\r\n15.9 总结\r\n\r\n第16章 用Delphi完成Word和Excel自动化\r\n\r\n16.1 自动化Office应用程序的系统要求\r\n16.2 启动Dhelphi和Excel\r\n16.2.1 启动Excel\r\n16.2.2 使用COMObj\r\n16.2.3 了解Excel的简单自动化\r\n16.2.4 比较接口和Variant\r\n16.2.5 理解CreateOleObject\r\n16.2.6 Variant和类型\r\n16.2.7 创建Excel自动对象\r\n16.3 了解Excel自动化对象\r\n16.3.1 在Application对象内访问各种对象\r\n16.3.2 使用自动化\r\n16.4 在Excel和Word间共享图表\r\n16.4.1 创建电子表格\r\n16.4.2 创建图表\r\n16.4.3 使用SeriesCollection对象\r\n16.5 从Excel向Word复制数据\r\n16.5.1 Word内部的自动化\r\n16.5.2 发送文档\r\n16.6 总结\r\n\r\n第五部分 Intenret编程\r\n\r\n第17章 接口和Internet Explorer\r\n\r\n17.1 Variant与接口的对比\r\n17.1.1 补救接口\r\n17.1.2 使用类型库\r\n17.2 本章所需文件\r\n17.3 使用Word和Excel\r\n17.3.1 使用Excel和Word接口\r\n17.3.2 比较Variant和接口技术\r\n17.4 使用IE和TwebBrowser\r\n17.4.1 开始:访问Web Page中的元素\r\n17.4.2 运行时在浏览器上处理HTML\r\n17.5 在浏览器内放置ActiveX控件\r\n17.6 总结\r\n\r\n第18章 WebBroker:CGI和ISAPI\r\n\r\n18.1 Web Module\r\n18.2 Web Server Application Wizard\r\n18.2.1 CGI\r\n18.2.2 WinCGI\r\n18.2.3 ISAPI/NSAPI\r\n18.2.4 CGI与ISAPI\r\n18.3 WebBroker组件\r\n18.3.1 TWebMdeule\r\n18.3.2 TWebResponse\r\n18.3.3 TWebRequest\r\n18.4 IntraBob\r\n18.5 TPageProducer\r\n18.6 TDataSetPageProduceer\r\n18.7 浏览状态\r\n18.7.1 Fat URL\r\n18.7.2 Cookie\r\n18.7.3 隐含字段\r\n18.8 高级网页的生成\r\n18.9 TDataSetTableProducer\r\n18.10 Database Web Application Wizard\r\n18.11 TQueryTableProducer\r\n18.12 总结\r\n\r\n第19章 WinINet和FTP\r\n\r\n19.1 理解WinINet、FTP和TCP/IP\r\n19.1.1 所需文件\r\n19.1.2 确保FTP在系统中运行\r\n19.1.3 安装TCP/IP应该注意的问题\r\n19.2 FTP使用WinINet\r\n19.2.1 使用InternetOpen\r\n19.2.2 使用InternetConnect\r\n19.2.3 获得当前目录\r\n19.2.4 在目录中查找文件(一)\r\n19.2.5 在目录中查找文件(二)\r\n19.2.6 检索文件(一)\r\n19.2.7 创建回调\r\n19.2.8 检索文件(二)\r\n19.2.9 发送文件到服务器的简单方法\r\n19.2.10 删除文件\r\n19.2.11 创建和删除目录\r\n19.3 在程序中使用FTP事件\r\n19.3.1 连接服务器\r\n19.3.2 响应OnNewDir事件\r\n19.3.3 改变目录\r\n19.3.4 跟踪文件传送\r\n19.4 总结\r\n\r\n第六部分 分布式编程\r\n\r\n第20章 DCOM\r\n\r\n20.1 COM和分布式体系结构\r\n20.1.1 什么是DCOM\r\n20.1.2 在Windows 95/98和Windows NT上运行DCOM服务器\r\n20.1.3 作为DCOM服务器Windows 98\r\n20.2 简单的DCOM客户程序和服务器\r\n20.2.1 建立服务器\r\n20.2.2 理解Safecall\r\n20.2.3 机器之间编组数据\r\n20.2.4 创建DCOM客户程序\r\n20.2.5 使用远程对象\r\n20.3 再访问SystemInformation程序\r\n20.4 轻量远程数据集\r\n20.4.1 理解DataCOMServer程序\r\n20.4.2 访问远程数据集的DataCOMClient\r\n20.4.3 理解DataCOMClient\r\n20.4.4 编辑数据行\r\n20.5 程序数据和自动化数据\r\n20.6 测试远程调试系统\r\n20.7 总结\r\n\r\n第21章 MIDAS\r\n\r\n21.1 多层计算概述\r\n21.1.1 什么是MIDAS\r\n21.1.2 分布式计算的目的\r\n21.1.3 公文包模型概述\r\n21.1.4 术语\r\n21.1.5 查找调度程序\r\n21.2 技术细节:使用分布式数据集\r\n21.2.1 建立简单的MIDAS应用程序\r\n21.2.2 创建SimpleMidasServer\r\n21.2.3 理解服务器\r\n21.2.4 导出TProvider接口\r\n21.2.5 为客户应用程序准备服务器\r\n21.2.6 创建简单的MIDAS客户程序\r\n21.2.7 理解简单的MIDAS客户程序\r\n21.2.8 远程访问服务器\r\n21.2.9 使用套接字代替DCOM\r\n21.3 建立一对多应用程序\r\n21.4 建立远程数据客户应用程序\r\n21.4.1 更新和刷新数据\r\n21.4.2 公文包模型\r\n21.4.3 PacketRecords\r\n21.5 错误处理\r\n21.6 服务器逻辑与客户端逻辑\r\n21.7 所需的DLL\r\n21.8 使用OLEnterprise\r\n21.9 总结\r\n\r\n第22章 ActiveForm\r\n\r\n22.1 介绍ActiveForm\r\n22.2 建立ActiveForm\r\n22.3 配置在Internet Explorer里使用的ActiveForm\r\n22.3.1 为ActiveForm设置选项\r\n22.3.2 连接到ActiveForm上\r\n22.3.3 了解OCCACHE\r\n22.4 使用CAB文件和包\r\n22.4.1 理解INF文件\r\n22.4.2 许可证问题\r\n22.5 在Word中运行ActiveForm\r\n22.5.1 注册应用程序\r\n22.5.2 在Microsoft Word里运行窗体\r\n22.6 使用ActiveForm模板\r\n22.7 套接字和ActiveForm\r\n22.7.1 套接字概述\r\n22.7.2 建立套接字支持的MIDAS ActiveForm\r\n22.7.3 创建基于MIDAS的ActiveForm\r\n22.8 总结\r\n\r\n第23章 MTS\r\n\r\n23.1 什么是MTS\r\n23.2 如何安装MTS\r\n23.3 创建简单的MTS服务器\r\n23.4 创建简单的MTS客户程序\r\n23.5 调用本地对象\r\n23.6 用MTS注册对象\r\n23.7 远程调用对象\r\n23.8 创建简单的MTS数据库服务器\r\n23.9 创建简单的MTS数据库客户程序\r\n23.10 处理MTS事务\r\n23.11 建立跨越多个服务器的MTS示例\r\n23.12 Rocket程序的代码\r\n23.13 总结\r\n\r\n第24章 CORBA\r\n\r\n24.1 理解CORBA\r\n24.1.1 什么是CORBA\r\n24.1.2 比较DCOM和CORBA\r\n24.1.3 什么中ORB \r\n24.1.4 什么是Smart Agent\r\n24.1.5 什么是BOA\r\n24.1.6 什么是代理、存根和框架\r\n24.1.7 理解Delphi和CORBA\r\n24.2 两个重要的CORBA存储库\r\n24.2.1 什么是Interface Repository\r\n24.2.2 什么是Implementation Repository\r\n24.3 简单的CORBA对象\r\n24.3.1 服务器\r\n24.3.2 客户程序\r\n24.3.3 理解客户程序\r\n24.3.4 理解CORBA存根\r\n24.3.5 理解CORBA框架\r\n24.4 理解服务器的IDL接口\r\n24.5 简单的CORBA动态项目\r\n24.6 简单的CORBA数据库对象\r\n24.6.1 创建CORBA数据库服务器\r\n24.6.2 创建客户程序\r\n24.7 利用VisiBroker Manager和OSFind\r\n24.8 总结\r\n\r\n第25章 Delphi、Java和C++\r\n\r\n25.1 在Delphi和Java中使用CORBA\r\n25.2 从Delphi调用Java服务器\r\n25.3 从C++Builder调用Delphi CORBA服务器\r\n25.3.1 用C++建立CORBA服务器并从Delphi调用\r\n25.3.2 理解BCBCorbaserver\r\n25.4 总结\r\n\r\n第七部分 游戏编程\r\n\r\n第26章 VCL图形类\r\n\r\n26.1 Windows GDI与VCL TCanvas \r\n26.1.1 理解GDI\r\n26.1.2 VCL使图形编程更容易\r\n26.2 使用TCanvas\r\n26.3 研究与使用画刷\r\n26.3.1 TBrush.Color属性分析\r\n26.3.2 TBrush.Style属性分析\r\n26.3.3 TBrush.Assign方法分析\r\n26.4 研究与使用画笔\r\n26.4.1 Tpen.Style属性分析\r\n26.4.2 TPen.Width属性分析\r\n26.4.3 TPen.Mode属性分析\r\n26.5 研究与使用字体\r\n26.5.1 TFont.Height属性分析\r\n26.5.2 TFont.Size属性分析\r\n26.5.3 TFont.Name属性分析\r\n26.5.4 TFont.Style属性分析\r\n26.6 研究与使用TCanvas.PenPos\r\n26.7 研究与使用TCanvas.ClipRect\r\n26.8 研究与使用TCanvas.CopyMode\r\n26.9 研究与使用TCanvas.Pixels\r\n26.10 分析与理解TCanvas方法\r\n26.11 MainBrush范例代码\r\n26.11.1 OnCreate事件\r\n26.11.2 FormaShow方法\r\n26.11.3 设置画笔模式\r\n26.11.4 使用Fonts\r\n26.11.5 在画布上画出形状\r\n26.11.6 使用CopyMode\r\n26.11.7 修改ClipRect\r\n26.12 其他名称的线条\r\n26.13 深入研究VCL\r\n26.13.1 深入TColor\r\n26.13.2 Colors样本项目\r\n26.13.3 OnChange事件处理程序\r\n26.14 调色板\r\n26.15 深入了解Windows的图形文件格式\r\n26.15.1 分析位图和DIB\r\n26.15.2 分析图标\r\n26.15.3 分析元文件\r\n26.16 分析TPaintBox和TImage\r\n26.17 再谈位图\r\n26.18 总结\r\n\r\n第27章 DirectDraw\r\n\r\n27.1 理解DirectDraw\r\n27.1.1 什么是DirectDraw\r\n27.1.2 关于双缓冲的几点想法\r\n27.1.3 硬件与仿真\r\n27.2 一个简单的DirectDraw程序\r\n27.3 释放接口\r\n27.3.1 进入独占模式和改变屏幕分辩率\r\n27.3.2 DirectDraw表面是什么\r\n27.3.3 向屏幕写文本\r\n27.3.4 交换表面\r\n27.3.5 释放内存\r\n27.4 平滑动画\r\n27.5 使用位图\r\n27.6 游戏资源\r\n27.7 总结\r\n\r\n第28章 更多的DirectX技术\r\n\r\n28.1 DirectSound\r\n28.1.1 初始化DirectSound\r\n28.1.2 枚举声音驱动程序\r\n28.1.3 使用DirectSoundBuffer\r\n28.1.4 打开WAV文件\r\n28.1.5 播放声音文件\r\n28.1.6 播放大文件\r\n28.1.7 一次播放两个WAV文件\r\n28.2 创建DirectX游戏\r\n28.2.1 创建DelphiMan程序\r\n28.2.2 实现DelphiMan程序的注意事项\r\n28.2.3 “机器人物”的控制\r\n28.2.4 小结DelphiMan程序\r\n28.3 浏览Direct3D\r\n28.4 关键的3D技术\r\n28.5 总结\r\n\r\n配套光盘内容