具体描述
本书中详细介绍了组件的高级用法、自定义组件、DLL和 ActiveX控件,以及 COM应用;本书还对顺应Windows98、Windows NT的多线程技术、在Delphi中的汇编嵌入问题进行了介绍。在本书的最后还系统地讲解了Delphi中应用程序帮助系统和安装问题。
本书面向Delphi 5.0的高级读者。
作者简介
目录信息
1.1 Delphi的特点
1.2 Delphi 5.0 的适用范围
1.2.1 Delphi 5.0的开发工具及特征
l.2.2 Delphi 5.0应用概述
1.3 应用程序中的窗体
1.4 创建窗体
1.4.1 Delphi应用程序的TApplication类
1.4.2 窗体的创建
1.4.3 Delphi 5.0的窗体创建事件
1.4.4 关于 Splash
1.4.5 创建全局公用模块
1.5 工程管理
l.5.1 项目管理器
1.5.2 创建TO-do lists
1.5.3 创建项目组
1.5.4 模板和对象库
1.6 Delphi 5.0 环境定制
1.6.1 组织工作区
1.6.2 定制桌面
l.6.3 定制帮助系统
1.7 小结
第2章 使用组件
2.1 Delphi可视化组件概述
2.1.1 与文本相关组件
2.1.2 按钮与选项组件
2.1.3 状态条组件
2.1.4 窗体分割组件
2.1.5 列表组件
2.1.6 滚动组件
2.1.7 网格、表格组件
2.1.8 图形、图像组件
2.1.9 多媒体(MultiMedia)和OLE组件
2.1.10 标准对话框组件
2.2 框架(Frames)用法
2.2.l 创建框架
2.2.2 将框架添加到组件模板
2.2.3 使用和修改框架
2.2.4 框架的共享
2.3 菜单组件及其用法
2.3.l 菜单项的功能分类
2.3.2 动态建立菜单项
2.3.3 在 Delphi 5.0中创建图像菜单
2.3.4 Owner-Draw菜单项
2.4 ListView组件与TreeView组件
2.4.1 ListView组件的用法
2.4.2 TreeView组件的用法
2.5 工具栏组件的用法
2.5.1 Toolbar组件
2.5.2 Coolbar组件
2.5.3 Controlbar组件
2.5.4 PageScroller组件
2.6 小结
第3章 Delphi自定义组件
3.1 组件原理
3.1.l 什么是组件?
3.1.2 建立组件过程概述
3.1.3 建立组件的途径
3.1.4 组件Delphi中的消息处理机制
3.2 由现存组件派生组件
3.2.1 创建简单的组件
3.2.2 测试新建组件
3.2.3 改变组件的缺省属性
3.2.4 将组件放入组件面板中
3.3 多组件组合
3.4 创建新组件
3.4.1 创建属性
3.4.2 创建事件
3.4.3 处理消息
3.4.4 增加 Component Palette上的位图
3.4.5 提供有关属性和事件的帮助
3.5 非可视化组件
3.5.l 创建非可视化组件
3.5.2 使用非可视化组件
3.5.3 定义客户操作
3.6 小结
第4章 多线程(THREAD)
4.l 线程的基本知识
4.1.l 进程和线程
4.1.2 多任务
4.1.3 何时创建线程
4.1.4 何时不用创建线程
4.1.5 线程的调度
4.2 用 Delphi 5.0创建多线程应用程序
4.2.1 Delphi 5.0 的多线程工作模型
4.2.2 线程构件
4.2.3 创建线程类
4.2.4 多线程同步
4.2.5 线程的控制
4.3 多线程控制应用范例
4.4 小结
第5章 动态链接库(DLLS)编程
5.l 动态链接库原理
5.1.1 动态链接库的工作原理
5.1.2 Windows系统的动态链接库
5.l.3 为什么使用DLL?
5.1.4 系统DLL的含义
5.1.5 DLL与EXE文件之间的区别
5.1.6 DLL编写规则
5.2 在Delphi中DLLs的编写和调用
5.2.1 编写一般DLLs的步骤
5.2.2 动态链接库中的标准指示
5.2.3 DLLs中的变量和段
5.2.4 DLLs中的运行时间错和处理
5.2.5 库初始化代码的编写
5.2.6 编写一般DLLs的应用举例
5.2.7 DLL中的重载函数问题
5.2.8 从DLL中输出字符串
5.2.9 调用 DLLS
5.3 利用DLLS实现富体重用
5.3.l 利用DLLS实现窗体重用的一般步骤
5.3.2 使用DLL模态窗体
5.3.3 DLL中的非模态窗体
5.3.4 窗体重用实例
5.4 利用DLLS实现数据传输
5.4.1 DLLS中的全局内存
5.4.2 利用DLLS实现应用程序间的数据传输
5.5 DLL与Delphi组件包
5.6 小结
第6章 COM对象
6.1 COM的基本概念
6.2 De1Phi实现COM的机理
6.3 创建COM应用
6.4 COM的注册与调用
6.5 利用COM实现系统外壳扩展
6.5.1 上下文菜单扩展COM的编写
6.5.2 程序说明
6.6 小结
第7章 对象链接与嵌入
7.1 0LE简介
7.1.1 0LE1.0和 OLE2.0
7.1.2 链接与嵌入
7.1.3 设计状态OLE对象的创建
7.1.4 OLE类、文件、项目
7.1.5 OLE自动化
7.1.6 类型库
7.l.7 OLE数据类型
7.1.8 TAutoobject对象
7.2 创建OLE自动化服务器
7.2.l 编写OLE自动化服务器
7.2.2 DelPhi 5类型库编辑器
7.2.3 服务器程序
7.2.4 注册自动化服务器
7.2.5 编写客户程序
7.3 TOLEContainer组件
7.3.1 OLE对象创建的步骤
7.3.2 OLE应用程序的开发
7.4 OLE与office97
7.4.l 早期的控制方式
7.4.2 利用Delphi 5.0 的新特性向Word发送数据
7.5 小结
第8章 ActiveX 控件
8.1 ActiveX控件原理
8.1.l 何谓ActiveX控件?
8.1.2 ActiveX控件与Delphi组件
8.2 在Delphi中使用ActiveX控件
8.2.1 ActiveX控作的安装方法
8.2.2 TO1eControl类
8.2.3 使用 Microsoft ActiveMovie Control控件
8.2.4 使用Delphi的ActiveX控件
8.3 ActiveX控件的编写方法
8.3.1 建立ActiveX ChiCharEdit
8.3.2 添加新属性
8.3.3 添加属性页
8.3.4 ActiveX Form
8.4 小结
第9章 多媒体系统
9.l 认识多媒体
9.1.1 什么是多媒体(Multimedia)
9.1.2 多媒体计算机系统
9.1.3 计算机多媒体系统的应用
9.1.4 多媒体制作软硬件工具
9.1.5 多媒体编辑系统
9.1.6 多媒体的相关名词
9.2 个人计算机的多媒体功能
9.2.1 Windows 98的娱乐功能
9.2.2 MCI接口
9.2.3 Microsoft DirectX 技术
9.3 Delphi的多媒体控件
9.3.1 多媒体 MediaPlayer控件
9.3.2 Delphi的MCI控制播放原理及其时间格式
9.3.3 多媒体在Delphi中的应用
9.4 卡通构件
9.4.1 卡通控件简介
9.4.2 卡通构件
9.4.3 卡通构件的使用
9.5 小结
第10章 在 Delphi 5.0 中使用汇编
10.1 De1phi 5.0 的内置汇编器
10.1.1 Asm语句
10.1.2 寄存器的使用
10.1.3 汇编程序语句的语法
10.1.4 标签
10.1.5 指令操作码
10.1.6 汇编指令
10.1.7 操作数
10.1.8 表达式
10.1.9 汇编程序过程和函数
10.2 应用汇编程序实例
10.2.l 访问接口及定时器――乐曲演奏程序
10.2.2 访问寄存器――CPUID
10.3 小结
第11章 异常处理与程序调试
11.1 DeIphi 异常处理机制与异常类
11.1.1 运行库异常类(RTL Exception)
11.1.2 对象异常类
11.1.3 部件异常类
11.2 异常处理
11.2.1 异常响应与try-except语句
11.2.2 异常保护与try-finally语句
11.2.3 使用异常实例
11.2.4 提供缺省响应
11.2.5 响应一族异常
11.2.6 异常的重引发和处理嵌套
11.2.7 自定义异常类的应用
11.2.8 利用异常响应编程
11.3 程序调试
11.3.1 调试工具的基本设置
11.3.2 程序运行的控制
11.3.3 使用断点
11.3.4 检查变量和表达式的值
11.3.5 检查函数和过程调用
11.3.6 监视线程状态
11.3.7 监视微处理器状态
11.3.8 局部变量监视窗口
11.3.9 模块窗口
11.3.10 事件日志窗口
11.3.11 FPU窗口
11. 4 使用Browser
11.4.1 使用加速按钮
11.4.2 Details区的显示页
11.4.3 使用Browser
11.5 小结
第12章 发布软件
12.1 Delphi应用程序的Help系统
12.1.1 Help文件的建立
12.1.2 应用hcw.exe创建Help的实例
12.1.3 Delphi应用程序的Help编程
12.1.4 Delphi帮助提示(Hint)的应用
12.2 支持文件
12.2.1 使用Windows INI文件
12.3 Windows注册表
12.4 Installshield Express工具
12.5 小结
附录 Delphi错误信息表
· · · · · · (收起)
读后感
用户评价
这本书对性能优化的侧重点,简直是为我们这些处理海量数据的应用开发者量身定做的。市面上很多Delphi的书籍,侧重于界面和数据库的快速开发,但在数据结构和算法的底层效率上往往一笔带过。这本书则完全不同,它花了大量的篇幅去对比不同数据结构在内存访问局部性上的差异,以及在具体场景下何时应该使用稀疏数组,何时应该坚持使用哈希表。我尝试按照书中推荐的方法重构了我们系统中一个处理日志文件的模块,仅仅是将数据存储的结构从标准的动态数组调整为一种基于指针的自适应结构,性能提升了近三成,这在批处理任务中是惊人的改善。更让我惊喜的是,作者对编译器优化选项的解读非常到位。他不仅告诉你哪个优化开关应该打开,更解释了开启该开关对代码生成的具体影响,甚至附带了反汇编层面的分析对比,这极大地增强了我对代码生成的控制力。对于那些对程序执行速度有极致要求的项目,这本书提供的优化思路和技术细节,其价值远超书本本身的定价。它教授的不是招式,而是内功心法,让人能从根本上写出更健壮、更快速的程序。
我是一位资深的C++开发者,出于项目需求不得不转投Delphi进行维护和开发,说实话,最初我是有些抵触的。Delphi的语法和编程哲学与C++有着天然的差异,尤其是在异常处理和内存模型上。然而,这本书在我转变的过程中起到了关键的引导作用。它非常巧妙地将Object Pascal与C/C++的底层概念进行类比和映射,比如它如何用Record类型来模拟C风格的Struct,以及Delphi中的引用计数机制是如何在底层实现垃圾回收的简化版的。这使得我能迅速地用已有的思维框架去理解Delphi的新特性。书中对Delphi异常处理机制的剖析,尤其精彩,它解释了为什么在某些特定情况下,传统的`try..except`块不如直接使用`try..finally`进行资源清理来得可靠。此外,书中介绍的如何编写能够与外部C++库进行高效互操作的封装单元(Unit),简直是救星。作者提供的接口定义和类型转换指南,清晰、准确,避免了我在跨语言调用中常见的内存泄漏和数据错位问题。这本书,成功地架起了一座从传统面向对象语言到Delphi生态的坚实桥梁。
说实话,这本书的阅读体验是伴随着一种挑战和顿悟交织的感觉。它并非那种读起来轻松愉快的入门读物,你需要有一定的编程基础和耐心去啃那些相对晦涩的概念。我特别欣赏作者在讲解设计模式时的切入点——不是简单地罗列GoF的经典模式,而是结合Delphi特有的消息机制和事件驱动架构,去重新审视和实现这些模式。比如,它如何用Delphi的VCL/FMX结构来优雅地实现观察者模式,这比其他语言的书籍中那种僵硬的接口定义要灵活得多。书中关于COM/ActiveX组件深入交互的部分,也为我解决了一个长期困扰的遗留系统集成问题。我过去总是依赖第三方包装器,效果时好时坏,而这本书提供的原生API调用和错误处理机制,让我能够完全掌控数据流和生命周期。唯一让我觉得稍微有些吃力的地方,是关于动态链接库(DLL)的高级加载和卸载机制的描述,那部分内容需要反复对照MSDN的文档才能完全理解其在Delphi环境下的具体表现。但总体而言,它提供的知识深度,足以让一个中级开发者在技术深度上实现质的飞跃,它迫使你去思考代码背后的“为什么”,而不是仅仅关注“怎么做”。
这本书的价值在于其前瞻性和对未来平台演进的洞察力。虽然Delphi 5的年代久远,但书中所讨论的许多高级主题,比如组件模型的深度定制、自定义消息的广播与过滤机制、以及对操作系统API的直接封装技巧,在现代的VCL/FMX开发中依然具有极强的指导意义。作者对抽象层次的把握非常精准,他没有沉溺于当时IDE的特定版本特性,而是专注于那些跨越版本的底层原理。例如,关于如何构建一个可序列化、状态可恢复的自定义组件的章节,我将其中的设计理念应用到了当前最新的FireMonkey(FMX)框架中,依然获得了极好的效果,证明了这些“高级”知识的生命力。它教会我的不是如何编写一个特定的功能,而是如何设计一个“可扩展的框架”。书中对接口(Interface)在Delphi中的使用和限制的讨论,至今看来也比官方文档更为透彻,特别是关于接口继承和多重实现的复杂场景。总而言之,这是一本将基础语法武装到牙齿,并指向架构高度的教科书,它为你打下的基础,足以应对未来十年的技术迭代和平台升级带来的挑战。
这本书,坦白说,让我对Delphi的理解又上了一个新台阶。我原本以为自己对Object Pascal的掌握已经算是炉火纯青了,毕竟那些基础的应用开发和组件使用都已经驾轻就熟。然而,当我翻开这本《高级编程篇》时,才意识到自己之前的“熟练”不过是建立在表层应用之上。书中深入探讨了内存管理和指针操作的底层细节,这一点让我印象极其深刻。作者没有停留在IDE提供的便捷封装上,而是直接剖析了编译器如何处理数据结构,以及如何更高效地利用系统资源。特别是关于虚拟方法表(VMT)的解析部分,简直是醍醐灌顶。我过去在设计复杂继承体系时,总是凭感觉去优化性能,现在终于有了一套清晰的理论支撑,明白了虚函数调用背后的开销和优化思路。书中还花了大篇幅讲解了如何编写线程安全的代码,这在开发企业级应用时是至关重要的痛点。那些关于临界区、互斥量和事件的实例代码,清晰地展示了如何在多线程环境中避免竞态条件,这比我在网上零散学到的知识要系统和严谨得多。这本书与其说是编程指南,不如说是一本深入Delphi内核的“解剖学”著作,对于想从“会用”晋升到“精通”的开发者来说,是不可多得的宝典。