具体描述
本书分三部分介绍Delphi5.0的基本知识和基本编程方法。前三章介绍Delphi5.0的新特点、集成开发环境和各种辅助工具的用法、可视化开发方法:第4、5、6章介绍对象Pascal语言的基础知识和各种语法实体的用法:第7、8、9、10章为编程实践部分,介绍菜单的设计方法、文本编辑器、文件管理和图形图像应用程序的设计方法等。
本书面向Delphi5.0的初、中级读者。
作者简介
目录信息
1.1 关于Delphi5.0
1.2 Delphi5.0的不同版本
1.3 Delphi5.0的新特性
1.3.1 集成环境
1.3.2 辅助工具
1.3.3 组件板与VCL库
小结
第2章 Delphi5.0集成开发环境
2.1 Delphi5.0集成开发环境(IDE)的组成
2.2 菜单栏及其使用
2.2.1 File菜单
2.2.2 Edit菜单
2.2.3 Search菜单
2.2.4 View菜单
2.2.5 Project菜单
2.2.6 Run菜单
2.2.7 Component菜单
2.2.8 DataBase菜单
2.2.9 Tools菜单
2.2.10 Help菜单
2.3 工具条及其使用
2.4 组件板
2.5 窗体设计器
2.6 对象检查器及其使用
2.6.1 对象检查器的组成
2.6.2 使用对象检查器设置属性
2.6.3 为组件对象添加事件
2.6.4 使用对象检查器的上下文菜单
2.7 代码编辑器及其使用
2.7.1 代码编辑器的组成
2.7.2 代码洞察(Code InSight)
2.7.3 代码浏览(Code Browser)
2.7.4 模块导航(Module Navigation)
2.7.5 类完善(Class Completion)
2.7.6 使用书签
2.7.7 使用代码编辑器的上下文菜单
2.8 代码管理器(Code Explorer)及其使用
2.8.1 代码管理器的组成
2.8.2 代码管理器的使用
2.8.3 代码管理器的上下文菜单
小结
第3章 Delphi可视化开发方法
3.1 一个简单的应用程序
3.1.1 Welcome应用程序要实现的功能
3.1.2 创建一个应用程序项目
3.1.3 进行界面设计
3.1.4 添加事件处理过程
3.1.5 编译、运行程序
3.2 使用Delphi的项目管理和设计工具
3.2.1 创建多窗体项目
3.2.2 使用项目管理器和项目浏览器
3.2.3 使用对象库
小结
第4章 对象Pascal语言的基础知识
4.1 保留字和标识符
4.1.1 保留字和标准指令符
4.1.2 标识符
4.2 对象Pascal中的数据类型
4.2.1 顺序类型
4.2.2 实数类型
4.2.3 集合类型
4.3 常量与变量
4.3.1 常量
4.3.2 变量
4.4 运算符和表达式
4.4.1 表达式
4.4.2 运算符
4.4.3 表达式的数值类型转换
4.5 语句
4.5.1 简单语句
4.5.1.1 赋值语句与空语句
4.5.1.2 过程语句
4.5.1.3 goto语句和语句标号
4.5.2 结构语句
4.5.2.1 复合语句
4.5.2.2 条件语句
4.5.2.3 循环语句
4.5.3 文件浏览器FileBrower例程
4.6 过程与函数
4.6.1 函数和过程的声明
4.6.2 函数和过程的调用
4.6.3 参数传递方式
4.6.4 函数与过程的重载和缺省参数
4.7 程序、单元与段
4.7.1 程序段与作用域
4.7.2 单元与作用域
4.7.3 单元的引用
4.7.4 单元引用与名称冲突
4.7.5 Delphi程序
小结
第5章 使用对象Pascal中的高级数据类型
5.1 数组及其使用
5.1.1 静态数组
5.1.2 动态数组
5.1.3 数组作为函数或过程的参数
5.2 字符串及其使用
5.2.1 字符串类型与字符串运算
5.2.2 字符串与数字
5.2.3 格式化字符串
5.2.4 字符串作为函数或过程的参数
5.3 记录类型及其使用
5.3.1 记录类型的声明
5.3.2 记录域的访问与With语句
5.3.3 具有变体部分的记录类型
5.3.4 记录类型与可变开放数组参数
5.4 指针类型
5.4.1 指针类型与指针变量
5.4.2 运算符@和^以及指针变量和动态变量的运算
5.4.3 Delphi5.0中预定义的指针类型
5.4.4 字符型指针与Windows中的字符串
5.4.5 指针与链表
5.5 过程类型
5.5.1 过程类型与过程变量
5.5.2 过程类型的使用
5.6 Variant类型
5.5.1 variant类型与variant变量
5.5.2 在表达式中使用Variant变量
5.5.3 基于Variant类型代码的执行效率
小结
第6章 类与对象
6.1 面向对象的程序设计
6.2 类与对象的概念
6.2.1 类与对象的实质
6.2.2 类类型的声明
6.2.3 窗体和类
6.3 类的继承性与VCL的类结构
6.3.1 继承
6.3.2 类的继承与类型兼容
6.3.3 VCL的类结构与TObject类
6.4 封装与类成员的可见性
6.5 对象成员的访问
6.5 方法
6.5.1 方法概述
6.5.2 方法的声明
6.5.3 方法的实现
6.5.4 隐含参数Self
6.5.5 方法的继承与重载
6.5.6 静态、动态与虚拟方法
6.5.7 方法的覆盖、重引入与重定义
6.5.8 滞后联编与多态
6.5.9 抽象方法
6.5.10 消息处理方法
6.6 属性
6.6.1 属性的声明
6.6.2 数组属性
6.6.3 属性的覆盖和重定义
6.6.4 完善TClndar类
6.7 方法指针类型及其应用
6.7.1 方法指针类型
6.7.2 Delphi5.0的事件与方法指针类型的属性
6.7.3 给TClndar类添加事件
6.7.4 创建TClndar组件
6.8 类引用类型及其使用
6.8.1 类引用类型
6.8.2 使用类引用类型变量创建不同对象
6.8.3 使用类引用类型调用类函数或类过程方法
6.8.4 类引用类型在类定义中的应用
6.9 is和as运算符
小结
第7章 创建菜单
7.1 菜单界面的设计
7.1.1 创建主菜单MainMenu
7.1.2 创建主菜单的各个菜单项
7.1.3 给菜单项设定加速键和快捷键
7.1.4 创建弹出式菜单
7.1.5 创建多级菜单
7.1.6 菜单位置的调整
7.2 给菜单项编写功能代码
7.2.1 Check标记的使用
7.2.2 弹出式菜单
7.2.3 动态菜单
7.2.4 快捷键的使用
7.2.5 菜单项激活和菜单项失效
7.2.6 菜单的提示
7.2.7 融合MainMenu对象
7.2.8 修改系统菜单
小结
第8章 文本编辑器设计
8.1 多页面界面(MPI)
8.1.1 Notebook组件与TabSet组件
8.1.2 TabbedNotebook组件
8.1.3 TabControl组件
8.1.4 PageControl组件
8.1.5 动态创建MPI界面
8.2 多文档界面
8.2.1 创建父窗体
8.2.2 创建子窗体
8.2.3 创建MDI主菜单和子窗体菜单
8.2.4 动态创建子窗体
8.2.5 子窗体的访问
8.2.6 给窗口菜单项添加功能代码
8.3 常用文本编辑组件介绍
8.3.1 Edit组件
8.3.2 Memo组件
8.3.3 RichEdit组件
8.4 完善MDIEditor应用程序
8.4.1 完善子窗体
8.4.2 设置字体
8.4.3 剪切、拷贝、粘贴和取消功能
8.4.4 查找与替换
8.4.5 文件的打开与保存
8.4.6 文件打印
8.4.7 文件的关闭和程序的退出
8.4.8 给文本编辑器配置工具栏
小结
第9章 文件管理应用程序设计
9.1 文件类型和标准过程与函数
9.1.1 文件类型
9.1.2 Delphi5.0的文件管理标准子程序
9.2 文件组件及其相互关系
9.3 FileFindEx例程
9.3.1 界面设计
9.3.2 程序功能的实现
9.4 文件管理器应用程序设计
9.4.1 窗口设计
9.4.2 子窗体的创建、布置和关闭
9.4.3 文件控件的联系
9.4.4 文件管理基本功能的实现
9.4.5 显示文件属性
9.4.6 显示磁盘信息
9.4.7 改变显示文件的类型
9.4.8 实现目录管理功能
9.4.9 完善FileManager程序
9.5 使用文件流
9.5.1 创建TFileStream对象
9.5.2 使用文件流实现文件拷贝
9.5.3 使用文件流读写数据文件
9.5.4 使用文件流读写组件
小结
第10章 图形图像编程
10.1 Delphi5.0的图形图像组件简述
10.2 对象坐标系统
10.3 画布对象(TCanvas object)
10.3.1 认识画布对象
10.3.2 TCanvas对象的属性
10.3.3 TCanvas对象的方法
10.4 TColor类型
10.5 TPen对象
10.6 TBrush对象
10.7 图形图像程序设计技术
10.7.1 图形类关系
10.7.2 使用Canvas的属性和方法绘图
10.7.3 使用组件
10.7.3.1 使用 openPictureDialog和 SavePictureDlalog组件
10.7.3.2 使用Image组件
10.7.3.3 使用PaintBox组件
10.7.3.4 使用Shape组件绘图
10.7.4 拖放编程
10.7.5 图形重绘
10.7.6 实现动画效果
10.7.7 图形图像打印
10.7.7.1 打印图形对象
10.7.7.2 打印位图、图标和图元文件
小结
· · · · · · (收起)
读后感
用户评价
作为一名自学编程多年的“野生”程序员,我最大的痛点一直是缺乏系统性的、循序渐进的教学引导。很多网络资源都是碎片化的,东一榔头西一棒子,导致我在学习某些高级特性时总是感觉基础不牢。这本书最大的优点就在于它那近乎学院派的严谨结构。它并没有急于展示“酷炫”的功能,而是把大部分篇幅放在了构建稳固的编程地基上。例如,书中对“过程(Procedure)”和“函数(Function)”的区分,以及参数传递机制(值传递与引用传递)的差异,讲解得极其透彻,并通过一系列对比实验来固化读者的理解。我记得有一章专门讲解了如何使用Delphi的内置调试工具,作者没有用简单的“打断点”来敷衍过去,而是详细分析了如何利用“监视窗口”实时追踪复杂数据结构的内存变化,以及如何回溯调用栈。这种对调试艺术的深入探讨,远超出了一个基础教学篇应有的深度。它强迫读者不仅要写出能运行的代码,更要理解代码在CPU层面是如何被解释和执行的,这对于提升代码质量有着质的飞跃。
阅读这本厚厚的“基础教学篇”,最大的体会是它让我重新认识了“基础”的重量。现在很多技术教程都急于把人推向框架和库的汪洋大海,而这本书却像一个定海神针,把我拉回了语言本身的核心。它对Delphi特有的“面向对象”实现方式的讲解,特别是类继承、方法重载和虚函数的处理,做到了逻辑上的闭环。作者没有回避Pascal语言在某些方面相比C++的局限性,而是巧妙地利用Delphi的特性来弥补,并清晰地展示了这种权衡背后的设计思想。例如,书中对“强类型性”的坚持以及如何利用枚举类型来增强代码的可读性和安全性,被阐述得非常到位。对于每一个新的概念,书中都会提供一个“陷阱提示”栏目,专门列举初学者最容易犯的错误以及对应的修正方法,这种主动预判读者的困难并给出解决方案的做法,极大地降低了学习的挫败感。总的来说,这本书提供的不是速成秘籍,而是一套完整的、能够让你在任何相关技术栈上快速站稳脚跟的底层思维框架。
我最近在尝试重温一些上世纪末的经典软件开发范式,所以特意淘了这本被认为是“老古董”的教材。说实话,一开始我有点担心内容会过于陈旧,难以对应现代的开发环境。然而,阅读体验出乎我的意料——它提供了一种近乎“考古学”的视角来审视软件工程的演变。书中对文件操作和数据库访问(特别是BDE,Borland Database Engine)的介绍,详尽到令人咋舌的程度。它没有直接跳到现代流行的ORM(对象关系映射)概念,而是深入剖析了TTable、TQuery组件在底层是如何与数据库驱动程序交互的,那些SQL语句是如何被封装和执行的。这种底层原理的透视,让我这个习惯了高层抽象的开发者,重新审视了效率和性能的真正来源。更让我印象深刻的是,书中对于应用程序的异常处理流程描述得极其谨慎和全面,每一个`try...except...end`块的嵌套和使用场景,都配有详尽的流程图和失败案例分析。这在很多当代教程中都是一笔带过的内容,但这本书却把它当作一个核心模块来对待,这体现了那个时代对程序稳定性和健壮性的极致追求。对于想要理解现代组件框架是如何演变过来的人来说,这本书简直是一部活的历史文献。
这本书的装帧设计实在是太古典了,封面那种深沉的蓝色配上金色的标题字体,一看就让人感觉这是一本厚重、严谨的专业书籍。拿到手里沉甸甸的,翻开内页,那种米黄色的纸张触感也让人觉得很舒服,不像现在很多技术书籍那样追求轻薄和花哨。我原本是冲着“Delphi 5.0”这个特定版本来的,因为我手头上还有一套旧的项目代码需要维护,正愁找不到针对性强的参考资料。这本书的章节划分非常清晰,像是教科书一样,从最基础的IDE界面介绍开始,一步步深入到变量声明、数据类型这些最底层的概念。虽然现在看来,5.0的界面确实有些过时了,但对于理解面向对象编程(OOP)在Delphi环境下的早期实现机制,它提供了无与伦比的直观感受。作者在讲解基础控件(比如TButton、TEdit)的使用时,不是简单地罗列属性和事件,而是通过非常详尽的小例子,展示了事件驱动编程的核心逻辑。比如,他会花大力气解释“双击”和“单击”事件在代码处理上的优先级和区别,这对于初学者建立正确的编程思维至关重要。而且,书中对Pascal语言的语法结构讲解得极为细致,特别是关于指针和内存管理的部分,即便是现在很多现代语言中有所封装隐藏的底层细节,这本书也毫不避讳地摊开来教你如何“亲自动手”管理,这在培养扎实的基础方面,价值是无法估量的。
这本书的语言风格非常质朴和直接,没有使用太多时髦的行话或夸张的形容词,给人的感觉就像一位经验丰富的老工程师在耐心地指导你。我尤其欣赏作者在讲解用户界面设计(VCL框架)时所采用的“所见即所得”背后的“所想即所得”的哲学。书中强调,组件的布局不仅仅是拖拽和调整大小,更重要的是要考虑用户操作的习惯和屏幕分辨率的变化。它甚至引入了早期关于屏幕像素密度和控件自适应布局的讨论,虽然在当时可能还不是一个标准化的概念,但这种前瞻性的思考让人印象深刻。更不用说,书中对于模块化编程的推崇达到了极致。每一个功能模块都被要求设计成独立、高内聚、低耦合的单元,并且详细讲解了如何利用“接口(Interface)”的概念来解耦不同的业务逻辑层。这种对软件架构早期思考的梳理,即便在今天看来也是金玉良言。它教会我如何构建一个“可维护”而不是仅仅“能运行”的程序,这是阅读很多只关注快速实现功能的书籍所学不到的宝贵经验。