第1章 多页面界面
1.1 多页面界面的基本概念
1.2 使用TTabControl部件
1.3 使用TPageControl部件
1.3.1 静态MPI界面
1.3.2 动态MPI界面
1.3.3 动态MPI界面的管理
1.4 MPI文本编辑器实例
1.4.1 程序基本框架
1.4.2 程序代码分析:动态创建工作区
1.4.3 程序代码分析:编辑与选项操作
1.4.4 程序代码分析:查找与替换操作
1.4.5 程序代码分析:文件的新建、打开与保存操作
1.4.6 程序代码分析:文件的关闭操作
1.4.7 程序代码分析:窗口标题的更新操作
1.5 小结
1.6 问题与练习
第2章 多文档界面
2.1 多文档界面的基本概念
2.2 窗体的继承与多态
2.2.1 窗体的继承
2.2.2 窗体的多态
2.3 TActionList部件与TAction类
2.3.1 为什么要引入行为抽象
2.3.2 行为抽象的机制
2.3.3 使用TActionList部件
2.3.4 活动的触发规则
2.4 MDI文本编辑器实例
2.4.1 使用MDI应用程序向导
2.4.2 程序代码分析:修改主窗体
2.4.3 程序代码分析:修改子窗体clxchildwin
2.4.4 程序代码分析:设计窗体clxtextwin
2.4.5 程序代码分析:设计窗体clximagewin
2.4.6 程序代码分析:设计窗体clxfiletypewin
2.4.7 程序代码分析:修改主面体clxmain
2.4.8 程序代码分析:文件的打印
2.5 小结
2.6 问题与练习
第3章 文件
3.1 文件类型及标准文件过程与函数
3.1.1 文件类型
3.1.2 文件操作标准子程序
3.2 文本文件的处理
3.2.1 文本文件的基本操作
3.2.2 实例程序TextIO
3.3 有型文件的处理
3.3.1 有型文件的基本操作
3.3.2 实例程序TypedIO
3.4 无型文件的处理
3.5 使用文件流类
3.5.1 创建TFileStream流式对象
3.5.2 使用文件流进行文件复制
3.5.3 使用文件流读写数据文件
3.6 彩票分析系统实例
3.6.1 基本数据结构
3.6.2 TUntypedFileStream类的设计
3.6.3 程序界面设计
3.6.4 TMainForm类的设计
3.6.5 “Stakes”页面程序代码分析
3.6.6 “Frequency”页面程序代码分析
3.6.7 “Distribution”页面程序代码分析
3.7 小结
3.8 问题与练习
第4章 异常处理与程序调试
4.1 异常处理机制
4.1.1 异常处理的基本理论
4.1.2 异常引发的基本理论
4.2 CLX异常类
4.2.1 异常类Exception
4.2.2 异常类层次
4.2.3 运行库异常
4.2.4 对象异常
4.2.5 部件异常
4.3 异常的响应与处理
4.3.1 异常保护机制
4.3.2 使用异常实例
4.3.3 缺省异常响应
4.3.4 多个异常的响应
4.3.5 异常的重引发
4.3.6 异常层次嵌套
4.3.7 异常编程
4.4 自定义异常类的应用
4.4.1 定义异常类
4.4.2 引发自定义异常类的异常
4.5 程序调试
4.5.2 控制程序执行
4.5.3 使用断点
4.5.4 检查变量和表达式的值
4.5.5 检查函数或过程调用
4.5.6 检查线程状态
4.5.7 检查CPU状态
4.5.8 检查局部变量
4.5.9 检查浮点处理器状态
4.5.10 检查模块装载与卸载
4.5.11 检查事件日志
4.6 小结
4.7 问题与练习
第5章 属性、方法指针与事件
5.1 属性
5.1.1 引入属性的意义
5.1.2 属性的声明
5.1.3 属性的访问说明
5.1.4 属性的存储说明
5.1.5 属性的索引说明
5.2 高级属性
5.2.1 数组属性
5.2.2 属性的覆盖与重定义
5.3 TMyDate类实例
5.4 方法指针与事件
5.4.1 方法指针类型
5.4.2 事件
5.4.3 为TMyDate类添加事件
5.5 小结
5.6 问题与练习
第6章 高级面向对象主题
6.1 类过程与类函数
6.2 类引用类型
6.2.1 类引用类型的声明
6.2.2 类引用类型与动态创建部件
6.2.3 类引用类型与类方法
6.2.4 类引用类型与类定义
6.3 对象的内部存储格式
6.3.1 域的存储格式
6.3.2 静态方法的存储格式
6.3.3 动态与虚拟方法的存储格式
6.3.4 属性的存储格式
6.4 类操作符
6.4.1 is操作符
6.4.2 as操作符
6.5 运行时类型信息
6.5.1 运行时类型信息的定义
6.5.2 运行时类型信息的意义
6.5.3 运行时类型信息的数据结构
6.5.4 获取类型信息
6.5.5 获取方法指针信息
6.6 小结
6.7 问题与练习
第7章 部件开发
7.1 部件开发的基本方法
7.1.1 部件的基本概念
7.1.2 部件开发的基本途径
7.1.3 部件开发的基本流程
7.2 由现有部件派生新部件
7.2.1 创建和注册简单部件
7.2.2 修改部件类
7.2.3 测试新部件
7.3 包
7.3.1 包的基本概念
7.3.2 包与标准共享对象文件
7.3.3 创建包
7.3.4 包的组织与管理
7.4 由TCustomCntrol类派生新部件
7.4.1 使用部件专家创建新部件
7.4.2 创建属性
7.4.3 实现构造方法
7.4.4 实现字体调整方法
7.5 创建不可见部件
7.5.1 创建非可视化部件
7.5.2 使用非可视化部件
7.7 小结
7.8 问题与练习
第8章 数据库开发基础
8.1 数据库系统概述
8.1.1 数据库的基本概念
8.1.2 数据库的基本类型
8.1.3 数据库的安全性
8.1.5 引用一致性、存储过程与触发器
8.2 数据库系统的体系结构
8.2.1 数据库系统的一般结构
8.2.2 基于文件的客户数据集
8.2.3 单向数据集
8.2.4 使用客户数据集缓冲数据
8.2.5 多层体系结构
8.3 使用数据控制部件
8.3.1 数据控制部件的基本特性
8.3.2 数据控制部件的公共任务
8.3.3 数据的组织
8.3.4 显示与编辑多行记录
8.3.5 浏览与操作记录
8.4 使用数据集部件
8.4.1 数据集的基本概念
8.4.2 数据集的打开与关闭
8.4.3 数据集的状态设置
8.4.4 数据集的失效
8.4.5 数据集的记录定位
8.4.6 数据集的编辑
8.4.7 数据集的书签
8.4.8 数据集的查找
8.4.9 数据集的过滤
8.4.10 数据集的事件
8.5 使用客户数据集部件
8.5.1 创建主—明细结构数据库应用程序
8.5.2 记录的浏览与搜索
8.5.3 数据编辑
8.5.4 排序与索引
8.6 使用字段部件
8.6.1 TField类及其派生类
8.6.2 动态字段部件与持久字段部件
8.6.3 定义新的持久字段部件
8.6.4 设置持久字段部件的显示格式
8.6.5 运行时的持久字段部件操作
8.6.6 字段值的显示、转换与访问
8.7 小结
8.8 问题与练习
第9章 网络编程初探
9.1 HTML语言
9.1.1 SGML的组成
9.1.2 HTML元素
9.1.3 HTML注释
9.1.4 HTML文档的显示
9.1.5 HTML文档字符集
9.1.6 HTML字符实体
9.1.7 HTML数据类型
9.1.8 HTML文档结构
9.1.9 HTML文档浏览器
9.2 HTTP编程
9.2.1 HTTP协议概要
9.2.2 HTTP协议的基本特点
9.2.3 HTTP的工作原理
9.2.4 HTTP的请求与响应
9.2.5 HTTP头标
9.2.6 HTTP编程实例
9.3 FTP编程
9.3.1 FTP会话
9.3.2 FTP模型
9.3.3 FTP文件类型
9.3.4 FTP传输模式
9.3.5 FTP应答
9.3.6 FTP编程实例
9.4 小结
9.5 问题与练习
第10章 多线程编程
10.1 线程的基本概念
10.1.1 进程与线程
10.1.2 宜使用多线程的场合
10.1.3 不宜使用多线程的场合
10.1.4 线程的调度与优先级
10.2 定义线程对象
10.2.1 TThread类
10.2.2 定义线程类
10.2.3 线程对象的初始化
10.2.4 线程对象的释放
10.3 实现线程函数
10.3.1 使用CLX主线程
10.3.2 使用线程局部变量
10.3.3 检查其他线程是否终止
10.3.4 处理线程异常
10.3.5 线程清除代码
10.4 线程同步
10.4.1 使用Synchronize方法
10.4.2 使用Lock方法与Unlock方法
10.4.3 使用TCriticalSection
10.4.4 使用TMultiReadExclusiveWriteSynchronizer
10.4.5 使用WaitFor方法
10.5 小结
10.6 问题与练习
第11章 跨平台程序开发
11.1 从Windows到Linux的标准移植步骤
11.2 CLX与VCL的差异
11.3 Windows与Linux的差异
11.3.1 环境差异
11.3.2 目录差异
11.4 编写可移植代码的一般原则
11.4.1 一般原则
11.4.2 使用条件编译指令
11.4.3 位置无关代码与位置相关代码
11.4.4 消息与系统事件
11.5 小结