1.1 Delphi是什么 1
1.1.1 Delphi的历史 1
第1章 关于Delphi与本书 1
1.1.2 选择Delphi意味着什么 2
1.1.3 如何使用Delphi编程 3
1.2 本书的特点 4
1.2.1 本书有哪些内容,没有哪些内容 5
1.2.2 本书是如何写作的 5
1.2.3 如何阅读本书 5
2.1.1 赋值运算符 7
2.1.2 比较运算符 7
第2章 Object Pascal入门 7
2.1 运算符 7
2.1.3 逻辑运算符 8
2.1.4 算术运算符 8
2.1.5 按位运算符 9
2.1.6 其他运算符和模拟运算 9
2.2 常量和变量 12
2.2.1 无类型常量和有类型常量 13
2.2.2 全局变量和局部变量 13
2.2.3 声明时使用编译时函数 14
2.2.4 资源字符串 15
2.3 过程和函数 15
2.3.1 过程和函数的区别 15
2.3.2 子过程 16
2.4 数据类型 17
2.4.1 常用类型和复杂类型 17
2.4.2 不同语言的数据类型对照表 17
2.5 程序流程控制 18
2.5.1 条件分支 18
2.5.2 循环 19
2.5.3 跳转 20
2.5.4 用过程辅助实现流程控制 21
2.6 单元的组织结构 24
2.6.1 Program的组织结构 24
2.6.2 Unit的组织结构 25
2.6.3 单元循环引用 27
2.7 with…do语句的用法 28
2.8 IDE的快捷键列表 29
第3章 Object Pascal精要 31
3.1 数据类型及其相互关系 31
3.1.1 数据类型概述 32
3.1.2 变量的内存分配和释放 48
3.1.3 数据的内存结构 52
3.1.4 强数据类型与类型转化 53
3.2 过程和函数 59
3.2.1 作用域 60
3.2.2 参数传递 62
3.2.3 声明指令 66
3.3 类和类成员 66
3.3.1 类和类成员概述 67
3.3.2 深入认识方法 69
3.3.3 深入认识属性 78
3.3.4 深入认识事件 84
3.3.5 类成员重新声明 86
3.3.6 inherited释疑 88
3.3.7 接口的真相 89
3.4 编译指令 95
3.4.1 开关指令 96
3.4.2 参数指令 99
3.4.3 条件指令 102
第4章 VCL入门 104
4.1 VCL概述 104
4.3 使用VCL 105
4.2 组件与控件的概念 105
4.4 扩展VCL 107
第5章 VCL精要 108
5.1 揭开VCL的神秘面纱 108
5.1.1 VCL架构 108
5.1.2 构造和析构的内幕 111
5.1.3 虚拟方法表和动态方法表 115
5.1.4 TObject如何使用虚拟方法表 118
5.1.5 运行时类型信息 122
5.2.1 VCL消息机制 130
5.2 VCL的消息机制 130
5.2.2 处理消息的八种方法 134
5.2.3 选用什么方法发送消息 140
5.2.4 VCL消息大全 144
5.3 多态性 161
5.3.1 多态性的概念 162
5.3.2 多态性和虚方法的关系 164
第6章 组件开发实战 167
6.1 三种组件开发方法 167
6.1.1 继承、聚合和子类化 167
6.2.1 文件拖放原理 169
6.1.2 接口、虚方法和辅助类的选择 169
6.2 文件拖放监视器 169
6.2.2 文件拖放实例 170
6.2.3 组件封装 171
6.3 托盘组件 175
6.3.1 装入托盘图标 175
6.3.2 在应用程序最小化时去掉状态栏的图 177
6.3.3 给托盘图标增加接收鼠标消息功能 179
6.3.4 处理鼠标消息 181
6.3.5 显示动画图标 182
6.3.6 设置程序的自动启动功能 182
6.3.7 组件封装 183
6.4 自动下拉的TComboBox 190
6.5 开发数据敏感控件 195
6.5.1 数据敏感原理 196
6.5.2 开发日期敏感控件 196
6.6 开发聚合组件 203
6.6.1 开发LabeIDBDatePicker 203
6.6.2 加强LabelDBDatePicker 206
6.7 开发图形图像控件 211
6.8 开发QuickReport组件 218
7.10 和包编译指令 225
第7章 组件开发相关工作 225
7.2 创建组件图标 226
7.3 属性编辑器 227
7.4 组件编辑器 231
第8章 常用函数和过程 235
8.1 数据类型转化类 235
8.1.1 数值和字符串的相互转化 235
8.1.2 整数和字符串的相互转化 236
8.1.3 实数和字符串的相互转化 236
8.2 字符串处理类 237
8.1.5 布尔类型和字符串的相互转化 237
8.1.4 实数子类型的相互转化 237
8.2.1 字符串的分类 240
8.2.2 和字符串相关的类 241
8.3 流处理类 245
8.4 内存管理、程序流程控制类 250
8.4.1 内存管理 250
8.4.2 程序流程控制 251
8.5 文件操作类 252
8.5.1 使用文件句柄进行I/O处理 252
8.5.2 使用Pascal文件变量进行I/O处理 253
8.5.4 文件属性操作 255
8.5.3 面向对象文件I/O处理 255
8.5.5 其他函数和方法 256
8.6 日期时间类 258
8.6.1 获取/合成日期/时间 258
8.6.2 日期/时间和字符串的转换 259
8.6.3 日期/时间的运算 259
8.7 VCL类 260
8.7.1 Classes单元 260
8.7.3 Dialogs单元 262
8.7.2 Controls单元 262
8.8 位运算类 264
8.9 图形图像类 266
第9章 高级开发技巧 268
9.1 自定义窗口过程 268
9.2 自定义消息及其替代方法 270
9.3 自定义系统惟一消息 272
9.4 新颖的类工厂 275
9.5 使用对象库 281
9.6 非发布(published)数据的持久化 287
9.7 使用回调函数 288
9.8 使用递归算法 290
9.9 编写NT服务程序 294
9.10 编写只能惟一运行的程序 295
9.11 字段类型全家福 298
9.12 获取数据库结构信息 300
9.13 深入使用TCanvas 301
9.14 指针列表类的使用 308
9.15 结构化存储技术 312
9.16 挂钩技术 321
9.17 TRichEdit高级开发 327
9.18 用TTreeView分析数据表的结构 334
9.19 SQL语句分析器 339
9.20 剪贴板高级编程 344
第10章 综合例子——使用Socket传输多个文件 350
10.1 Socket简介 350
10.2 TServerSocket和TClientSocket 351
10.3 设计通讯协议 354
10.4 实现服务端 357
10.5 实现客户端 367
10.6 组件封装 374
10.7 自动下载技术在项目中的应用 391