书籍详情
Delphi 4开发大全
作者:(美)[S.特谢拉]Steve Teixeira,(美)[X.帕凯科]Xavier Pacheco著;徐新华译
出版社:人民邮电出版社
出版时间:1999-01-01
ISBN:9787115079213
定价:¥175.00
内容简介
本书的内容非常丰富,涉及到很多其他资料没有讲到的技术和技巧。书中首先简要回顾了Delphi的历史,然后介绍了Objece Pascal语言、Win32、API、Delphi的体系结构、消息、编码标准、ActiveX控件、图像编程、动态链接库、高级打印技术、多线程、文件处理、若干核心技术、获取系统信息、怎样升级到Delphi 4、MDI应用程序、剪贴板、多媒体编程、测试与调试、VCL、编写自定义的元件、控件、Open Tools API、编写桌面数据库应用程序、开发客户/服务器结构的应用程序、扩展数据库VCL、WebBroker技术、MIDAS开发、Client/server开发等。本书非常适合于那些已从事Delphi开发编程,有一定经验,现在需要进一步提高的读者。对于Delphi的初学者来说,有些章节具有一定的难度,需要仔细阅读本书第一章,并积累一些基础知识。
作者简介
暂缺《Delphi 4开发大全》作者简介
目录
第一部分 快速开发的基础
第一章 Delphi下的Windows编程
1.1 历史的回顾
1.1.1 Delphi1
1.1.2 Delphi2
1.1.3 Delphi3
1.1.4 Delphi4
1.2 Delphi是什么
1.2.1 Delphi4产品家族
1.2.2 可视化开发环境
1.2.3 优化的32位编译器
1.2.4 可伸缩的数据库访问
1.2.65 语言和库
1.3 Delphi4和IDE
1.3.1 主窗口
1.3.2 工具栏
1.3.3 Form设计器
1.3.4 Object Inspector
1.3.5 代码编辑器
1.3.6 代码浏览器
1.4 源代码生成器
1.5 创建一个简单的应用程序
1.6 事件机制的优势的哪里
1.7 无约定编程
1.8 加速原型化
1.9 可扩展的元件的和环境
第二章 Object Pascal语言
2.1 注释
2.2 新的过程和函数功能
2.2.1 圆括号
2.2.2 重载
2.2.3 默认值参数
2.3 变量
2.4 常量
2.5 运算符
2.5.1 赋值运算符
2.5.2 比较运算符
2.5.3 逻辑运算符
2.5.4 算术运算符
2.5.5 按位运算符
2.5.6 用于加减速运算的过程
2.6 Ojbect Pascal类型
2.6.1 类型的比较
2.6.2 字符
2.6.3 字符串
2.6.4 可变类型(Variant)
2.6.5 Currency
2.7 用户自定义类型
2.7.1 数组
2.7.2 动态数组
2.7.3 记录
2.7.4 集合
2.7.5 对象
2.7.6 指针
2.7.7 类型别名
2.8 类型强制转换
2.9 字符串资源
2.10 测试条件
2.10.1 使用if语句
2.10.2 使用case语句
2.11 循环
2.11.1 for
2.11.2 while
2.11.3 repeat…until
2.11.4 break()过程
2.11.5 Continue()过程
2.12 过程和函数
2.12.1 传递参考
2.13 作用域
2.14 单元
2.14.1 uses子句
2.14.2 循环引用
2.15 包
2.15.1 使用Delphi包
2.15.2 包的语法
2.16 面向对象编程
2.16.1 基于对象与面向对象
2.17 使用Delphi对象
2.17.1 声明和创建实例
2.17.2 析构
2.18 方法
2.18.1 方法的类型
2.18.2 特性
2.18.3 可见性
2.18.4 友类
2.18.5 对象的秘密
2.18.6 TBbject——所有对象的祖先
2.18.7 接口
2.19 结构化异常处理
2.19.1 异常类
2.19.2 执行的流程
2.19.3 再次触发异常
2.20 运行期类型信息
第三章 WIN32 API
3.1 对象——过去和现在
3.1.1 内核对象
3.1.2 进程
3.1.3 进一步介绍内核对象
3.1.4 GDI和用户对象
3.2 多任务和多线程
3.3 什么是线性内存模式
3.3.1 什么是线性内存模式
3.3.2 Win 32怎样管理内存
3.4 Win 32的错误处理
第四章 应用程序框架和设计
4.1 掌握Delphi环境和项目和体系结构
4.2 构成Delphi 4项目的文件
4.2.1 项目文件
4.2.2 单元文件
4.2.3 Form文件
4.2.4 资源文件
4.2.5 项目选项和桌面设置文件
4.2.6 后备文件
4.2.7 包文件
4.3 有关项目管理的提示
4.3.1 一个项目一个目录
4.3.2 代码中被共享的单元
4.3.3 多项目管理(项目组)
4.4 Delphi4项目的框架类
4.4.1 TForm
4.4.2 TApplication
4.4.3 TApplication的方法
4.4.4 TApplication 的事件
4.4.5 TScreen类
4.5 定义公共体系结构——使用对象库
4.5.1 应用程序的体系结构
4.5.2 Delphi固有的体系结构
4.5.3 体系结构的例子
4.5.4 子Form(TChildForm)
4.5.5 数据库基础模式Form(TDBModeForm)
4.5.6 数据库导航/状态Form(TDBNavStatForm)
4.6 一些项目管理的功能
4.6.1 在项目中添加资源
4.6.2 改变光标形状
4.6.3 防止出现一个Form的多个实例
4.6.4 在项目文件中增加代码
4.6.5 重载应用程序的异常处理
4.6.6 显示封面
4.6.7 使Form尺寸最小
4.6.8 运行一个无Form的项目
4.6.9 退出Windows
4.6.10 不允许关闭Windows
4.7 Windows 95认证
4.7.1 什么时候需要认证
4.7.2 适用于所有应用程序的条件
4.7.3 基于文件的应用程序需要满足的条件
4.7.4 实用程序需要满足的条件
第五章 理解消息
5.1 什么是消息
5.2 消息的类型
5.3 Winodws消息系统是怎样工作的
5.4 Delphi的消息系统
5.4.1 特殊的消息记录
5.5 处理消息
5.5.1 消息处理:不是无约定的
5.5.2 对Result域赋值
5.5.3 TApplication的OnMessage事件
5.6 发送您自己的消息
5.6.1 Perform()
5.6.2 SendMessage()和PostMessage()
5.7 非标准的消息
5.7.1 通知消息
5.7.2 VCL内部的消息
5.7.3 用户自定义的消息
5.8 一个消息系统的剖析:VCL
5.9 消息与事件之间的关系
第六章 代码标准文档
6.1 一般的源代码格式规则
6.1.1 缩进
6.1.2 边距
6.1.3 begin…end
6.2 OBJECT PASCAL
6.2.1 括号
6.2.2 保留字和关键字
6.2.3 过程和函数(例程)
6.2.4 变量
6.2.5 类型
6.2.6 构造类型
6.2.7 语句
6.2.8 结构化异常处理
6.2.9 类
6.3 文件
6.3.1 项目文件
6.3.2 Form文件
63.3 数据模块文件
6.3.4 远程数据模块文件
6.3.5 单元文件
6.3.6 文件头
6.4 Form与数据模块
6.4.1 Form
6.4.2 数据模块
6.5 包
6.5.1 运行期包与设计期包
6.5.2 文件命名标准
6.6 元件
6.6.1 自定义的元件
6.6.2 元件实例的命名规则
6.6.3 元件的前缀
第七章 使用ActiveX控件
7.1 什么是ActiveX控件
7.2 何时使用ActiveX控件
7.3 把ActiveX控件中到元件选项板上
7.4 Delphi元件外套
7.4.1 外套文件是从哪来的
7.4.2 枚举
7.4.3 接口
7.4.4 ToleControl的派生类
7.4.5 方法
7.4.6 特性
7.5 在应用程序中使用ActiveX控件
7.6 发布带有ActiveX控件的应用程序
7.6.1 注册ActiveX控件
7.7 BLACKJACK:一个OCX示范程序
7.7.1 纸牌
7.7.2 游戏
7.7.3 调用ActiveX控件的方法
第二部分 高级技术
第八章 图像编程
8.1 TImage:显示图像
8.1.1 图像:位图、图元文件、图标
8.1.2 显示JPEG图像
8.2 使用TCanvas的特性
8.2.1 画笔
8.2.2 使用TCanvas,Pixels特性
8.2.3 刷子
8.2.4 字体
8.2.5 CopyMode特性
8.2.6 其他特性
8.3 TCanvas的方法
8.3.1 用TCanvas画线
8.3.2 用TCanvas画几何形状
8.3.3 画图的示例程序
8.3.4 用TCanvas输出文字
8.4 坐标系统和映射模式
8.4.1 设备坐标系
8.4.2 逻辑坐标系
8.4.3 屏幕坐标系
8.4.4 Form坐标系
8.4.5 坐标映射
8.4.6 设置映射模式
8.4.7 设置窗口/视区范围
8.4.8 关于映射模式的示范程序
8.5 创建一个绘画程序
8.5.1 Paint程序如何工作
8.5.2 TPanel
8.5.3 从剪贴板粘贴位图数据
8.5.4 依附到Win32剪贴链
8.5.5 复制位图Paint程序的注释
8.5.6 编写动画程序
8.6 这个动画程序如何工作
8.6.1 高级字体
8.7 高级字体
8.7.1 Win32字体类型
8.7.2 基本字体元素
8.7.3 GDI字体分类
8.7.4 显示不同字体
8.8 实际创建一种字体
8.8.1 这个程序是如何工作的
8.8.2 显示字体的有关信息
第九章 动态链接库
9.1 究竟什么是DLL
9.2 静态链接与动态链接
9.3 为什么要使用DLL
9.3.1 共享代码、资源和数据
9.3.2 隐藏实现的细节
9.3.3 自定义控件
9.4 创建和使用DLL
9.4.1 数数有几个美分(一个简单的DLL)
9.4.2 显示DLL中的模式Form
9.5 显示DLL中的无模式Form
9.6 在Delphi应用程序中使用DLL
9.6.1 显式调用DLL
9.7 DLL的入口和出口函数
9.7.1 进程/线程初始化和终止例程
9.7.2 DLL入口/出口示例
9.8 DLL中的异常
9.8.1 在16位Delphi中捕捉异常
9.8.2 异常和Safecall指示字
9.9 回调函数
9.9.1 使用回调函数
9.9.2 自定义的列表框
9.10 从DLL中调用回调函数
9.11 在不同的进程间共享DLL的数据
9.11.1 创建一个可以被共享数据的DLL
9.11.2 访问DLL中的共享数据
9.12 引出DLL中的对象
第十章 打印
10.1 TPrinter对象
10.2 TPrinter.Canvas
10.3 简单打印
10.3.1 打印TMemo元件中的内容
10.3.2 打印位图
10.3.3 打印RTF格式的文本
10.4 打印Form
10.5 高级打印
10.5.1 打印分栏报表
10.2.2 放弃打印进程
10.5.3 打印信封
10.5.4 抽象打印
10.5.5 一个简单的打印预览程序
10.6 其它打印任务
10.6.1 TDeviceMode结构
10.6.2 设置打印份数
10.6.3 设置打印方向
10.6.4 设置纸张尺寸
10.6.5 设置纸张的长度
10.6.6 设置页的亮度
10.6.7 设置打印比例
10.6.8 设置打印颜色
10.6.9 设置双面打印
10.6.10 指定默认打印机
10.6.11 指定默认打印机
10.7 获取打印机信息
10.7.1 GetDeviceCaps()和DeviceCapabilities()
10.7.2 获取打印机信息的示范程序
第十一章 编写多线程应用程序
11.1 关于线程的解释
11.1.1 一种新型的多任务
11.1.2 线程的常规用法
11.1.3 不要滥用线程
11.2 TThread对象
11.2.1 TThread基础
11.2.2 Thread实例
11.2.3 线程终止
11.2.4 与VCL同步
11.2.5 一个演示程序
11.2.6 优先级和时序安排
11.2.7 挂起和唤醒线程
11.2.8 测试一个线程的时间
11.3 管理多线程
11.3.1 线程局部存储
11.3.2 线程同步
11.4 一个多线程的示范程序
11.4.1 用户界面
11.4.2 专门的搜索线程
11.4.3 调整优先级
11.5 多线程与数据库
11.6 多线程与图形处理
第十二章 文件处理
12.1 处理文件的输入/输出
12.1.1 处理文本文件
12.1.2 处理有类型文件
12.1.3 处理无类型文件
12.2 TTextRec和TFileRec结构
12.3 内存映射文件
12.3.1 内存映射文件的用途
12.3.2 使用映射文件
12.3.3 内存映射文件的一致性
12.3.4 文本搜索实用程序
12.4 目录和驱动器
12.4.1 获得可用的驱动器和驱动器类型的列表
12.4.2 获得驱动器信息
12.4.3 获取Windows目录
12.4.4 获得系统目录的位置
12.4.5 获取当前目录
12.4.6 在目录中查找文件
12.4.7 复制和删除目录树
12.4.8 获取文件的版本信息
12.4.9 获取版本号
12.4.10 获得操作系统信息
第十三章 核心技术
13.1 高级消息处理
13.1.1 Subclassing
13.1.2 Win32API窗口过程
13.1.3 Delphi的窗口方法
13.1.4 HookMainWindow()
13.2 防止邮现应用程序的多个实例
13.3 使用BASM
13.3.1 BASM是怎样工作的
13.3.2 访问参数与很容易
13.3.3 Register调用约定
13.3.4 完全用汇编写的过程或函数
13.3.5 记录
13.4 使用挂钩
13.4.1 设置挂钩
13.4.2 使用挂钩函数
13.4.3 使用脱钩函数
13.4.4 使用SendKeys:一个Journal Playback类型的挂钩
13.5 使用C/C++的OBJ文件
13.5.1 调用一个函数
13.5.2 函数的名称问题
13.5.3 共享函数
13.5.4 使用DelphiRTL
13.6 使用C++类
13.7 Thunking
13.7.1 Generic Thunking
13.7.2 WM-COPYDATA
第十四章 获取系统信息
14.1 infoForm——获取一般信息
14.1.1 格式化字符串
14.1.2 获取内存状态
14.1.3 获取OS版本信息
14.1.4 获取目录信息
14.1.5 获取系统信息
14.1.6 检查环境
14.2 平台中立
14.3 Windows 95/98:使用ToolHelp32
14.3.1 快照
14.3.2 列举进程
14.3.3 列法线程
14.3.4 列举模块
14.3.5 列举堆
14.3.6 堆的视图
14.3.7 完整的源代码
14.4 Windows NT:PSAPI
第十五章 移植到Delphi 4
15.1 Delphi 4的新功能
15.1.1 哪个版本
15.1.2 单元、元件和包
15.2 从Delphi3移植到Delphi4
15.2.1 无符号的32位整数
15.2.2 64位整数
15.2.3 Real类型
15.3 从Delphi2移植到Delphi4
15.3.1 布尔类型
15.3.2 ResurceString
15.3.3 RTL的改变
15.3.4 TCustomForm
15.3.5 RTL的改变
15.3.6 TCustormForm
15.4 GetChildren()
15.4.1 字符串和字符
15.4.2 变量长度和范围
15.4.3 记录的排序
15.4.4 32位数学运算
15.4.5 TDateTime
15.4.6 单元结束代码
15.4.7 汇编语言
15.4.8 调用约定
15.4.9 动态链接库
15.4.10 WIndows操作系统的变化
15.4.11 32位地址空间
15.4.12 32位资源
15.4.13 VBX控件
15.4.14 Windows API函数的变化
15.4.15 16位和32位并存
第十六章 MDI应用程序
16.1 创建MDI应用程序
16.1.1 理解MDI基础
16.1.2 子Form
16.1.3 主Form
16.2 菜单
16.2.1 合并菜单
16.2.2 在菜单中列出打开的文档
16.3 杂类MDI技术
16.3.1 在MDI客户区输出一幅位图
16.3.2 创建一个隐藏的子Form
16.3.3 最小化、最大化、还原MDI子窗口
第十七章 用剪贴板共享信息
17.1 剪贴板的基础
17.1.1 文本
17.1.2 图像
17.2 创建您自己的剪贴板格式
17.2.1 创建一个剪贴板感知的对象
17.2.2 使用自定义的剪贴板格式
第十八章 多媒体编程
18.1 创建一个简单的媒体播放器
18.2 播放WAV文件
18.3 播放视频
18.3.1 显示第一帧
18.3.2 使用Display特性
18.3.3 使用DisplayRect特性
18.3.4 理解TMediaPlayer事件
18.3.5 DDGMPLAY的源代码
18.4 设备支持
18.5 创建音频CD播放器
18.5.1 显示闪屏
18.5.2 开始编写CD播放器
18.5.3 更新CD播放器的信息
18.5.4 刷新CD播放器的方法
18.5.5 CD播放器的源代码
第十九章 测试与调试
19.1 常见的编程错误
19.1.1 在类的实例创建之前使用了它
19.1.2 确保类的实例被释放
19.1.3 驯服指针
19.1.4 使用末初始化的PChar
19.1.5 释放空指针
19.2 使用内部集成调试器
19.2.1 断点
19.2.2 逐行执行代码
19.2.3 使用Watch窗口
19.2.4 使用Watc窗口
19.2.5 Inspector
19.2.6 计算和修改
19.2.7 访问调用栈
19.2.8 查看线程
19.2.9 事件日志
19.2.10 模块视图
19.2.11 调试DLL
19.2.12 CPU视图
19.3 TURBO调试器
19.3.1 CPU窗口
19.3.2 TD32的新断点
19.3.3 模块视图
第三部分 基于元件的开发
第二十章 VCL的要素
20.1 什么是元件
20.2 元件的种类
20.2.1 标准元件
20.2.2 自定义元件
20.2.3 图像元件
20.2.4 可非视元件
20.3 元件的结构
20.3.1 特性
20.3.2 特性的种类
20.3.3 方法
20.3.4 事件
20.3.5 流特性
20.3.6 拥有关系
20.3.7 父子关系
20.4 元件的继承关系
20.4.1 TPersistent
20.4.2 TComponent
20.4.3 TControl
20.4.4 TWinControl
20.4.5 TGraphicControl
20.4.6 TCustomControl
20.4.7 其他类
20.5 运行期类型信息
20.5.1 TypInfor.pas单元
20.5.2 获取类型信息
20.5.3 获取方法指针的类型信息
20.5.4 获取有序类型的RTTI信息
第二十一章 编写自定义元件
21.1 元件设计基础
21.1.1 什么时候需要编写元件
21.1.2 编写元件的一般步骤
21.1.3 确定一个祖先类
21.1.4 创建一个元件单元
21.1.5 加和特性
21.1.6 加入事件
21.1.7 加入自定义的方法
21.1.8 构造和析构
21.1.9 注册元件
21.1.10 测试元件
21.11 提供元件图标
21.2 一个范例元件
21.2.1 扩展Win32控件外套的功能
21.2.2 TddgRunButton——创建特性
21.3 TddgRunButton-创建特性
21.3.1 TddgRunButton——一个容器元件
21.3.2 显现特性
21.3.3 显现事件
21.3.4 TddgRunButton——加和新的事件
21.3.5 把Form加到元件选项板上
21.4 元件包
21.4.1 为什么使用雹
21.4.2 包的类型
21.4.3 包文件
21.4.4 在Delphi 4程序中使用包
21.4.5 把包安装到IDE中
21.4.6 设计您自己的包
21.4.7 包的版本
21.4.8 包的编译指令
21.4.9 包的编译指令
21.4.10 关于{$WEAKPACKAGEUNIT}指令
21.4.11 包的命名约定
第二十二章 高级元件技术
22.1 伪可视元件
22.1.1 扩展提示功能
22.1.2 创建一个THintWindow的派生类
22.1.3 椭圆型的窗口
22.1.4 使自定义的提示窗口有效
22.1.5 发布TddgRunButton元件
22.2 动态效果的元件
22.2.1 游动的元件
22.2.2 编写这个元件
22.2.3 在内存中的位图上输出
22.2.4 在元件上输出
22.2.5 开始游动
22.2.6 测试TddgRunButton元件
22.3 编写特性编辑器
22.3.1 派生下个特性编辑器对象
22.3.2 把特性当作文本来编辑
22.3.3 注册新的特性编辑器
22.3.4 用对话框来编辑特性
22.4 元件编辑器
22.4.1 TComponentEditor
22.4.2 一个简单的元件
22.4.3 一个简单的元件编辑器
22.4.4 注册元件编辑器
22.5 对非分布的数据进行流操作
22.5.1 声明特性
22.5.2 DefineProperty()的例子
22.5.3 TddgWaveFile:调用DefineBinaryProperty()的例子
22.6 元件的列表:Tcollection类:TClooctionItem
22.6.1 声明TClollectiojn类:TrunBtnItem
22.6.2 声明TCollection类:TRunButtons
22.6.3 实现TddgLAUNCHPa、TrunBtuItem和TRunButtons
22.6.4 编辑一组TCollectionItem对象的列表
第二十三章 COM和ActiveX
23.1 OLE基础
23.1.1 组件对象模型
23.1.2 COM、ActiveX与OLE的异同
23.1.3 术语
23.1.4 ActiveX有什么伟大之处
23.1.5 OLE1与OLE2
23.1.6 结构化存储
23.1.7 统一数据传达室输
23.1.8 线程模式
23.1.9 预期:COM+
23.2 COM与Object pASCAL
23.2.1 接口
23.2.2 接口
23.2.3 HResult类型
23.3 COM对象和类工厂
23.3.1 TComObject和TComOjbectFactory
23.3.2 In-Process COM服务器
23.3.3 创建In-Process COM
23.3.4 In-Process COM服务器
23.3.5 聚合
23.4 分布式COM
23.5 Automation
23.5.1 IDispatch接口
23.5.2 类型信息
23.5.3 推后捆绑与早期捆绑
23.5.4 注册
23.5.5 创建Automation服务器
23.5.6 创建Automation控制器
23.6 TOleContatiner
23.6.1 一个简单的范例程序
23.6.2 一个销复杂的范例程序
第二十四章 扩展WInows Shell
24.1 托盘图标
24.1.1 API
24.1.2 处理消息
24.1.3 图标及提示
24.1.4 鼠标点击
24.1.5 将应用程序隐藏起来
24.1.6 一个托盘图标的例子
24.2 应用程序桌面工具栏
24.2.1 API
24.2..2 TAppBar:AppBar的Form
24.2.3 使用TAppBar
24.3 外壳链接
24.3.1 获取IShellLink的实现
24.3.2 使用ishELLlINK
24.3.3 创建一个外壳链接
24.3.4 获取及设置链接信息
24.3.5 一个例子
24.4 外壳扩展
24.4.1 COM对象向导
24.4.2 复制钩子句柄
24.4.3 上下文菜单处理
24.4.4 图标句柄
第二十五章 创建ActiveX控件
25.1 为什么要创建ActiveX控件
25.2 创建ActiveX控件
25.2.1 ActiveX控件向导
25.2.2 ActiveX框架
25.2.3 特性页
25.3 ActiveForm
25.3.1 在ActiveForm中加入特性
25.4 Web上的ActiveX
25.4.1 与Web浏览器交互
25.4.2 Web分发
第二十六章 Open Tools API
26.1 Open Tools API的接口
26.2 使用Open Tools API
26.2.1 一个叫Dumb的专家
26.2.2 Expert专家
26.2.3 DDG Search
26.3 Form专家
第四部分 数据库开发
第二十七章 编写桌面数据库应用程序
27.1 使用数据集
27.1.1 VCL数据库体系结构
27.1.2 BDE数据访问元件
27.1.3 打开一个数据集
27.1.4 浏览数据集
27.1.5 对字段的操作
27.1.6 刷新数据集
27.1.7 变化的状态
27.1.8 过滤器
27.2 使用TTable元件
27.2.1 查找记录
27.2.2 主/细表
27.2.3 TTable析事件
27.2.4 通过代码创建一个数据库表
27.3 数据模块
27.4 搜索、设置范围和过滤的示例
27.4.1 数据模块
27.4.2 主Form
27.4.3 Range Form
27.4.4 Key Serach Form
27.4.5 Filter Form
27.5 TQuery和TStoredProc:其他数据集
27.6 文本文件
27.6.1 计划文件
27.6.2 数据文件
27.6.3 使用文本数据库
27.6.4 限制
27.6.5 从文本数据库表中引入数据
27.7 用ODBC连接
27.7.1 到哪找到ODBC驱动程序
27.7.2 ODBC实例:连接MS Access
第二十八章 开发客户/服务器应用程序
28.1 为什么要采用客户/服务台器模式
28.2 客户/服务器体系结构
28.2.1 客户
28.2.2 服务器
28.2.3 业务规则
28.2.4 胖客户、胖服务器、中间层:业务规则究竟属于哪一端
28.3 客户/服务器模型
28.3.1 两层模型
28.3.2 三层模型
28.4 Clien/Server与桌面数据库开发的比较
28.4.1 面向子集与面向记录
28.4.2 数据安全性
28.4.3 记录锁定方法
28.4.4 数据完整性
28.4.5 面向事务
28.5 SQL:在客户/服务器开发中的角色
28.6 Delphi Client/Server开发
28.7 服务器:设计后端
28.7.1 定义数据库表
28.7.2 使用域
28.7.3 用视图、存储过程和触发器定义业务规则
28.7.4 对数据库对象的访问权限
28.7.5 客房:设计前端
28.8 使用TDatabase元件
28.8.1 执行存储过程
28.8.2 执行存储过程
第二十九章 扩展数据库VCL
29.1 使用BDE
29.1.1 BDE单元
29.1.2 Check()
29.1.3 游标和句柄
29.1.4 使游标同步
29.2 dBASE表
29.2.1 物理记录编号
29.2.2 显示被删除的记录
29.2.3 显示被删除的记录
29.2.4 测试被软删除的记录
29.2.5 恢复被软删除的记录
29.3 紧缩
29.3.1 Paradox表
29.3.2 记录序号
29.3.3 限制查询结果
29.3.4 BDE杂项
29.3.5 编写数据感知控件
29.4 扩展TDataSet
29.4.1 过去
29.4.2 现在
29.4.3 创建一个TDataSetTTable派生类
第三十章 使用WebBroker技术
30.1 ISAPI、NSAPI和CGI——Web服务器扩展
30.1.1 公共网关接口
30.1.2 ISAPI和NSAPI
30.1.3 使用Web服务器
30.2 用Delphi创建Web应用程序
30.2.1 TWebModule和TWebDispacher
30.2.2 TWebRequest和TWebRe
30.4 使用COOKIE
30.5重定向到另一个Web站点
30.6 从HTML表单中获取
30.7 数据流
30.7.1 数据流的例子
第三十一章 MIDAS开发
31.1 分布式应用程序基础
31.2 一个简单的MIDAS应用程序
31.2.1 建立应用服务器
31.2.2 建立客户程序
31.2.3 保存修改了的数据
31.3 分布式主细关系
31.4 公文包模式:把数据带上路
31.5 连接缓冲池:解决一些问题的方案
31.6 实例化:您希有多少个服务器
31.7 回调:客房现在是服务器
31.8 安全
第五部分 快速数据库应用程序开发
第三十二章 货物管理程序——Client/Server开发
32.1 设计后端
32.1.1 定义域
32.1.2 定义表
32.1.3 定义生成器
32.1.4 定义触发器
32.1.5 定义存储过程
32.1.6 授予权限
32.2 集中数据库访问——商业规则
32.2.1 Login()Logout()方法
32.2.2 Customer——表的方法
32.2.3 PART表的方法
32.2.4 SALES表的方法
32.2.5 临时表的方法
32.3 设计用户界面
32.3.1 TMainForm——应用
32.3.2 TCustomerForm——客户输入
32.3.3 TPartForm——条目输入
32.3.4 TSalesForm——销售浏览
32.3.5 TNewSalesFOR销售浏览
32.3.6 客户搜索对话框
第三十三章 客户跟踪系统:MIDAS开发
33.1 设计服务器程序
33.2 设计客户程序
33.2.1 客户端数据
33.2.2 客户端模块]
第三十四章 错误报告工具——桌面数据库应用程序
34.1 通用应用程序需求
34.1.1 使程序可以在WWW上使用
34.1.2 用户数据输入和登录
34.1.3 错误处理、浏览和过滤
34.1.4 错误注解
34.1.5 其他U/I功能
34.2 数据模型
34.3 开发数据模块
34.3.1 应用程序初始化和登录
34.3.2 生成ID
34.3.3 错误处理例程
34.3.4 浏览和过滤记录
34.3.5 增加用户
34.3.6 加入注解
34.4 开发用户界面
34.4.1 使程序具有Web功能
34.4.2 其他用户界面
34.5 命名程序具有WS
第三十五章 错误报告工具:使用WebBroker
35.1 网页布局
35.2 修改数据模块
35.3 创建TDataSerTa bleProbcef元件:dstpBugs
35.4 创建TWebDispatcher元件:wbdpBugs
35.5 创建tpAGEpRODUCER元件:pprdBugs
35.6 编写ISAPI服务器——加入TActionIel
35.6.1 辅助例程
35.6.2 介绍网页
35.6.3 获取和校验用户登录的名称
35.7 浏览错误报告
35.7.1 浏览所有的错误报告
35.7.2 浏览用户自己输入的错误报告
35.7.3 格式化表格单元并显示错误细节
35.8 加入新的错误报告
35.8.1 获取错误信息
35.8.2 校验插入的记录
附录A 错误信息与异常
A.1 处理层和安全层
A.2 运行期错误
A.2.1 异常
A.2.2 Win32系统错误
附录B BDE错误代码
第一章 Delphi下的Windows编程
1.1 历史的回顾
1.1.1 Delphi1
1.1.2 Delphi2
1.1.3 Delphi3
1.1.4 Delphi4
1.2 Delphi是什么
1.2.1 Delphi4产品家族
1.2.2 可视化开发环境
1.2.3 优化的32位编译器
1.2.4 可伸缩的数据库访问
1.2.65 语言和库
1.3 Delphi4和IDE
1.3.1 主窗口
1.3.2 工具栏
1.3.3 Form设计器
1.3.4 Object Inspector
1.3.5 代码编辑器
1.3.6 代码浏览器
1.4 源代码生成器
1.5 创建一个简单的应用程序
1.6 事件机制的优势的哪里
1.7 无约定编程
1.8 加速原型化
1.9 可扩展的元件的和环境
第二章 Object Pascal语言
2.1 注释
2.2 新的过程和函数功能
2.2.1 圆括号
2.2.2 重载
2.2.3 默认值参数
2.3 变量
2.4 常量
2.5 运算符
2.5.1 赋值运算符
2.5.2 比较运算符
2.5.3 逻辑运算符
2.5.4 算术运算符
2.5.5 按位运算符
2.5.6 用于加减速运算的过程
2.6 Ojbect Pascal类型
2.6.1 类型的比较
2.6.2 字符
2.6.3 字符串
2.6.4 可变类型(Variant)
2.6.5 Currency
2.7 用户自定义类型
2.7.1 数组
2.7.2 动态数组
2.7.3 记录
2.7.4 集合
2.7.5 对象
2.7.6 指针
2.7.7 类型别名
2.8 类型强制转换
2.9 字符串资源
2.10 测试条件
2.10.1 使用if语句
2.10.2 使用case语句
2.11 循环
2.11.1 for
2.11.2 while
2.11.3 repeat…until
2.11.4 break()过程
2.11.5 Continue()过程
2.12 过程和函数
2.12.1 传递参考
2.13 作用域
2.14 单元
2.14.1 uses子句
2.14.2 循环引用
2.15 包
2.15.1 使用Delphi包
2.15.2 包的语法
2.16 面向对象编程
2.16.1 基于对象与面向对象
2.17 使用Delphi对象
2.17.1 声明和创建实例
2.17.2 析构
2.18 方法
2.18.1 方法的类型
2.18.2 特性
2.18.3 可见性
2.18.4 友类
2.18.5 对象的秘密
2.18.6 TBbject——所有对象的祖先
2.18.7 接口
2.19 结构化异常处理
2.19.1 异常类
2.19.2 执行的流程
2.19.3 再次触发异常
2.20 运行期类型信息
第三章 WIN32 API
3.1 对象——过去和现在
3.1.1 内核对象
3.1.2 进程
3.1.3 进一步介绍内核对象
3.1.4 GDI和用户对象
3.2 多任务和多线程
3.3 什么是线性内存模式
3.3.1 什么是线性内存模式
3.3.2 Win 32怎样管理内存
3.4 Win 32的错误处理
第四章 应用程序框架和设计
4.1 掌握Delphi环境和项目和体系结构
4.2 构成Delphi 4项目的文件
4.2.1 项目文件
4.2.2 单元文件
4.2.3 Form文件
4.2.4 资源文件
4.2.5 项目选项和桌面设置文件
4.2.6 后备文件
4.2.7 包文件
4.3 有关项目管理的提示
4.3.1 一个项目一个目录
4.3.2 代码中被共享的单元
4.3.3 多项目管理(项目组)
4.4 Delphi4项目的框架类
4.4.1 TForm
4.4.2 TApplication
4.4.3 TApplication的方法
4.4.4 TApplication 的事件
4.4.5 TScreen类
4.5 定义公共体系结构——使用对象库
4.5.1 应用程序的体系结构
4.5.2 Delphi固有的体系结构
4.5.3 体系结构的例子
4.5.4 子Form(TChildForm)
4.5.5 数据库基础模式Form(TDBModeForm)
4.5.6 数据库导航/状态Form(TDBNavStatForm)
4.6 一些项目管理的功能
4.6.1 在项目中添加资源
4.6.2 改变光标形状
4.6.3 防止出现一个Form的多个实例
4.6.4 在项目文件中增加代码
4.6.5 重载应用程序的异常处理
4.6.6 显示封面
4.6.7 使Form尺寸最小
4.6.8 运行一个无Form的项目
4.6.9 退出Windows
4.6.10 不允许关闭Windows
4.7 Windows 95认证
4.7.1 什么时候需要认证
4.7.2 适用于所有应用程序的条件
4.7.3 基于文件的应用程序需要满足的条件
4.7.4 实用程序需要满足的条件
第五章 理解消息
5.1 什么是消息
5.2 消息的类型
5.3 Winodws消息系统是怎样工作的
5.4 Delphi的消息系统
5.4.1 特殊的消息记录
5.5 处理消息
5.5.1 消息处理:不是无约定的
5.5.2 对Result域赋值
5.5.3 TApplication的OnMessage事件
5.6 发送您自己的消息
5.6.1 Perform()
5.6.2 SendMessage()和PostMessage()
5.7 非标准的消息
5.7.1 通知消息
5.7.2 VCL内部的消息
5.7.3 用户自定义的消息
5.8 一个消息系统的剖析:VCL
5.9 消息与事件之间的关系
第六章 代码标准文档
6.1 一般的源代码格式规则
6.1.1 缩进
6.1.2 边距
6.1.3 begin…end
6.2 OBJECT PASCAL
6.2.1 括号
6.2.2 保留字和关键字
6.2.3 过程和函数(例程)
6.2.4 变量
6.2.5 类型
6.2.6 构造类型
6.2.7 语句
6.2.8 结构化异常处理
6.2.9 类
6.3 文件
6.3.1 项目文件
6.3.2 Form文件
63.3 数据模块文件
6.3.4 远程数据模块文件
6.3.5 单元文件
6.3.6 文件头
6.4 Form与数据模块
6.4.1 Form
6.4.2 数据模块
6.5 包
6.5.1 运行期包与设计期包
6.5.2 文件命名标准
6.6 元件
6.6.1 自定义的元件
6.6.2 元件实例的命名规则
6.6.3 元件的前缀
第七章 使用ActiveX控件
7.1 什么是ActiveX控件
7.2 何时使用ActiveX控件
7.3 把ActiveX控件中到元件选项板上
7.4 Delphi元件外套
7.4.1 外套文件是从哪来的
7.4.2 枚举
7.4.3 接口
7.4.4 ToleControl的派生类
7.4.5 方法
7.4.6 特性
7.5 在应用程序中使用ActiveX控件
7.6 发布带有ActiveX控件的应用程序
7.6.1 注册ActiveX控件
7.7 BLACKJACK:一个OCX示范程序
7.7.1 纸牌
7.7.2 游戏
7.7.3 调用ActiveX控件的方法
第二部分 高级技术
第八章 图像编程
8.1 TImage:显示图像
8.1.1 图像:位图、图元文件、图标
8.1.2 显示JPEG图像
8.2 使用TCanvas的特性
8.2.1 画笔
8.2.2 使用TCanvas,Pixels特性
8.2.3 刷子
8.2.4 字体
8.2.5 CopyMode特性
8.2.6 其他特性
8.3 TCanvas的方法
8.3.1 用TCanvas画线
8.3.2 用TCanvas画几何形状
8.3.3 画图的示例程序
8.3.4 用TCanvas输出文字
8.4 坐标系统和映射模式
8.4.1 设备坐标系
8.4.2 逻辑坐标系
8.4.3 屏幕坐标系
8.4.4 Form坐标系
8.4.5 坐标映射
8.4.6 设置映射模式
8.4.7 设置窗口/视区范围
8.4.8 关于映射模式的示范程序
8.5 创建一个绘画程序
8.5.1 Paint程序如何工作
8.5.2 TPanel
8.5.3 从剪贴板粘贴位图数据
8.5.4 依附到Win32剪贴链
8.5.5 复制位图Paint程序的注释
8.5.6 编写动画程序
8.6 这个动画程序如何工作
8.6.1 高级字体
8.7 高级字体
8.7.1 Win32字体类型
8.7.2 基本字体元素
8.7.3 GDI字体分类
8.7.4 显示不同字体
8.8 实际创建一种字体
8.8.1 这个程序是如何工作的
8.8.2 显示字体的有关信息
第九章 动态链接库
9.1 究竟什么是DLL
9.2 静态链接与动态链接
9.3 为什么要使用DLL
9.3.1 共享代码、资源和数据
9.3.2 隐藏实现的细节
9.3.3 自定义控件
9.4 创建和使用DLL
9.4.1 数数有几个美分(一个简单的DLL)
9.4.2 显示DLL中的模式Form
9.5 显示DLL中的无模式Form
9.6 在Delphi应用程序中使用DLL
9.6.1 显式调用DLL
9.7 DLL的入口和出口函数
9.7.1 进程/线程初始化和终止例程
9.7.2 DLL入口/出口示例
9.8 DLL中的异常
9.8.1 在16位Delphi中捕捉异常
9.8.2 异常和Safecall指示字
9.9 回调函数
9.9.1 使用回调函数
9.9.2 自定义的列表框
9.10 从DLL中调用回调函数
9.11 在不同的进程间共享DLL的数据
9.11.1 创建一个可以被共享数据的DLL
9.11.2 访问DLL中的共享数据
9.12 引出DLL中的对象
第十章 打印
10.1 TPrinter对象
10.2 TPrinter.Canvas
10.3 简单打印
10.3.1 打印TMemo元件中的内容
10.3.2 打印位图
10.3.3 打印RTF格式的文本
10.4 打印Form
10.5 高级打印
10.5.1 打印分栏报表
10.2.2 放弃打印进程
10.5.3 打印信封
10.5.4 抽象打印
10.5.5 一个简单的打印预览程序
10.6 其它打印任务
10.6.1 TDeviceMode结构
10.6.2 设置打印份数
10.6.3 设置打印方向
10.6.4 设置纸张尺寸
10.6.5 设置纸张的长度
10.6.6 设置页的亮度
10.6.7 设置打印比例
10.6.8 设置打印颜色
10.6.9 设置双面打印
10.6.10 指定默认打印机
10.6.11 指定默认打印机
10.7 获取打印机信息
10.7.1 GetDeviceCaps()和DeviceCapabilities()
10.7.2 获取打印机信息的示范程序
第十一章 编写多线程应用程序
11.1 关于线程的解释
11.1.1 一种新型的多任务
11.1.2 线程的常规用法
11.1.3 不要滥用线程
11.2 TThread对象
11.2.1 TThread基础
11.2.2 Thread实例
11.2.3 线程终止
11.2.4 与VCL同步
11.2.5 一个演示程序
11.2.6 优先级和时序安排
11.2.7 挂起和唤醒线程
11.2.8 测试一个线程的时间
11.3 管理多线程
11.3.1 线程局部存储
11.3.2 线程同步
11.4 一个多线程的示范程序
11.4.1 用户界面
11.4.2 专门的搜索线程
11.4.3 调整优先级
11.5 多线程与数据库
11.6 多线程与图形处理
第十二章 文件处理
12.1 处理文件的输入/输出
12.1.1 处理文本文件
12.1.2 处理有类型文件
12.1.3 处理无类型文件
12.2 TTextRec和TFileRec结构
12.3 内存映射文件
12.3.1 内存映射文件的用途
12.3.2 使用映射文件
12.3.3 内存映射文件的一致性
12.3.4 文本搜索实用程序
12.4 目录和驱动器
12.4.1 获得可用的驱动器和驱动器类型的列表
12.4.2 获得驱动器信息
12.4.3 获取Windows目录
12.4.4 获得系统目录的位置
12.4.5 获取当前目录
12.4.6 在目录中查找文件
12.4.7 复制和删除目录树
12.4.8 获取文件的版本信息
12.4.9 获取版本号
12.4.10 获得操作系统信息
第十三章 核心技术
13.1 高级消息处理
13.1.1 Subclassing
13.1.2 Win32API窗口过程
13.1.3 Delphi的窗口方法
13.1.4 HookMainWindow()
13.2 防止邮现应用程序的多个实例
13.3 使用BASM
13.3.1 BASM是怎样工作的
13.3.2 访问参数与很容易
13.3.3 Register调用约定
13.3.4 完全用汇编写的过程或函数
13.3.5 记录
13.4 使用挂钩
13.4.1 设置挂钩
13.4.2 使用挂钩函数
13.4.3 使用脱钩函数
13.4.4 使用SendKeys:一个Journal Playback类型的挂钩
13.5 使用C/C++的OBJ文件
13.5.1 调用一个函数
13.5.2 函数的名称问题
13.5.3 共享函数
13.5.4 使用DelphiRTL
13.6 使用C++类
13.7 Thunking
13.7.1 Generic Thunking
13.7.2 WM-COPYDATA
第十四章 获取系统信息
14.1 infoForm——获取一般信息
14.1.1 格式化字符串
14.1.2 获取内存状态
14.1.3 获取OS版本信息
14.1.4 获取目录信息
14.1.5 获取系统信息
14.1.6 检查环境
14.2 平台中立
14.3 Windows 95/98:使用ToolHelp32
14.3.1 快照
14.3.2 列举进程
14.3.3 列法线程
14.3.4 列举模块
14.3.5 列举堆
14.3.6 堆的视图
14.3.7 完整的源代码
14.4 Windows NT:PSAPI
第十五章 移植到Delphi 4
15.1 Delphi 4的新功能
15.1.1 哪个版本
15.1.2 单元、元件和包
15.2 从Delphi3移植到Delphi4
15.2.1 无符号的32位整数
15.2.2 64位整数
15.2.3 Real类型
15.3 从Delphi2移植到Delphi4
15.3.1 布尔类型
15.3.2 ResurceString
15.3.3 RTL的改变
15.3.4 TCustomForm
15.3.5 RTL的改变
15.3.6 TCustormForm
15.4 GetChildren()
15.4.1 字符串和字符
15.4.2 变量长度和范围
15.4.3 记录的排序
15.4.4 32位数学运算
15.4.5 TDateTime
15.4.6 单元结束代码
15.4.7 汇编语言
15.4.8 调用约定
15.4.9 动态链接库
15.4.10 WIndows操作系统的变化
15.4.11 32位地址空间
15.4.12 32位资源
15.4.13 VBX控件
15.4.14 Windows API函数的变化
15.4.15 16位和32位并存
第十六章 MDI应用程序
16.1 创建MDI应用程序
16.1.1 理解MDI基础
16.1.2 子Form
16.1.3 主Form
16.2 菜单
16.2.1 合并菜单
16.2.2 在菜单中列出打开的文档
16.3 杂类MDI技术
16.3.1 在MDI客户区输出一幅位图
16.3.2 创建一个隐藏的子Form
16.3.3 最小化、最大化、还原MDI子窗口
第十七章 用剪贴板共享信息
17.1 剪贴板的基础
17.1.1 文本
17.1.2 图像
17.2 创建您自己的剪贴板格式
17.2.1 创建一个剪贴板感知的对象
17.2.2 使用自定义的剪贴板格式
第十八章 多媒体编程
18.1 创建一个简单的媒体播放器
18.2 播放WAV文件
18.3 播放视频
18.3.1 显示第一帧
18.3.2 使用Display特性
18.3.3 使用DisplayRect特性
18.3.4 理解TMediaPlayer事件
18.3.5 DDGMPLAY的源代码
18.4 设备支持
18.5 创建音频CD播放器
18.5.1 显示闪屏
18.5.2 开始编写CD播放器
18.5.3 更新CD播放器的信息
18.5.4 刷新CD播放器的方法
18.5.5 CD播放器的源代码
第十九章 测试与调试
19.1 常见的编程错误
19.1.1 在类的实例创建之前使用了它
19.1.2 确保类的实例被释放
19.1.3 驯服指针
19.1.4 使用末初始化的PChar
19.1.5 释放空指针
19.2 使用内部集成调试器
19.2.1 断点
19.2.2 逐行执行代码
19.2.3 使用Watch窗口
19.2.4 使用Watc窗口
19.2.5 Inspector
19.2.6 计算和修改
19.2.7 访问调用栈
19.2.8 查看线程
19.2.9 事件日志
19.2.10 模块视图
19.2.11 调试DLL
19.2.12 CPU视图
19.3 TURBO调试器
19.3.1 CPU窗口
19.3.2 TD32的新断点
19.3.3 模块视图
第三部分 基于元件的开发
第二十章 VCL的要素
20.1 什么是元件
20.2 元件的种类
20.2.1 标准元件
20.2.2 自定义元件
20.2.3 图像元件
20.2.4 可非视元件
20.3 元件的结构
20.3.1 特性
20.3.2 特性的种类
20.3.3 方法
20.3.4 事件
20.3.5 流特性
20.3.6 拥有关系
20.3.7 父子关系
20.4 元件的继承关系
20.4.1 TPersistent
20.4.2 TComponent
20.4.3 TControl
20.4.4 TWinControl
20.4.5 TGraphicControl
20.4.6 TCustomControl
20.4.7 其他类
20.5 运行期类型信息
20.5.1 TypInfor.pas单元
20.5.2 获取类型信息
20.5.3 获取方法指针的类型信息
20.5.4 获取有序类型的RTTI信息
第二十一章 编写自定义元件
21.1 元件设计基础
21.1.1 什么时候需要编写元件
21.1.2 编写元件的一般步骤
21.1.3 确定一个祖先类
21.1.4 创建一个元件单元
21.1.5 加和特性
21.1.6 加入事件
21.1.7 加入自定义的方法
21.1.8 构造和析构
21.1.9 注册元件
21.1.10 测试元件
21.11 提供元件图标
21.2 一个范例元件
21.2.1 扩展Win32控件外套的功能
21.2.2 TddgRunButton——创建特性
21.3 TddgRunButton-创建特性
21.3.1 TddgRunButton——一个容器元件
21.3.2 显现特性
21.3.3 显现事件
21.3.4 TddgRunButton——加和新的事件
21.3.5 把Form加到元件选项板上
21.4 元件包
21.4.1 为什么使用雹
21.4.2 包的类型
21.4.3 包文件
21.4.4 在Delphi 4程序中使用包
21.4.5 把包安装到IDE中
21.4.6 设计您自己的包
21.4.7 包的版本
21.4.8 包的编译指令
21.4.9 包的编译指令
21.4.10 关于{$WEAKPACKAGEUNIT}指令
21.4.11 包的命名约定
第二十二章 高级元件技术
22.1 伪可视元件
22.1.1 扩展提示功能
22.1.2 创建一个THintWindow的派生类
22.1.3 椭圆型的窗口
22.1.4 使自定义的提示窗口有效
22.1.5 发布TddgRunButton元件
22.2 动态效果的元件
22.2.1 游动的元件
22.2.2 编写这个元件
22.2.3 在内存中的位图上输出
22.2.4 在元件上输出
22.2.5 开始游动
22.2.6 测试TddgRunButton元件
22.3 编写特性编辑器
22.3.1 派生下个特性编辑器对象
22.3.2 把特性当作文本来编辑
22.3.3 注册新的特性编辑器
22.3.4 用对话框来编辑特性
22.4 元件编辑器
22.4.1 TComponentEditor
22.4.2 一个简单的元件
22.4.3 一个简单的元件编辑器
22.4.4 注册元件编辑器
22.5 对非分布的数据进行流操作
22.5.1 声明特性
22.5.2 DefineProperty()的例子
22.5.3 TddgWaveFile:调用DefineBinaryProperty()的例子
22.6 元件的列表:Tcollection类:TClooctionItem
22.6.1 声明TClollectiojn类:TrunBtnItem
22.6.2 声明TCollection类:TRunButtons
22.6.3 实现TddgLAUNCHPa、TrunBtuItem和TRunButtons
22.6.4 编辑一组TCollectionItem对象的列表
第二十三章 COM和ActiveX
23.1 OLE基础
23.1.1 组件对象模型
23.1.2 COM、ActiveX与OLE的异同
23.1.3 术语
23.1.4 ActiveX有什么伟大之处
23.1.5 OLE1与OLE2
23.1.6 结构化存储
23.1.7 统一数据传达室输
23.1.8 线程模式
23.1.9 预期:COM+
23.2 COM与Object pASCAL
23.2.1 接口
23.2.2 接口
23.2.3 HResult类型
23.3 COM对象和类工厂
23.3.1 TComObject和TComOjbectFactory
23.3.2 In-Process COM服务器
23.3.3 创建In-Process COM
23.3.4 In-Process COM服务器
23.3.5 聚合
23.4 分布式COM
23.5 Automation
23.5.1 IDispatch接口
23.5.2 类型信息
23.5.3 推后捆绑与早期捆绑
23.5.4 注册
23.5.5 创建Automation服务器
23.5.6 创建Automation控制器
23.6 TOleContatiner
23.6.1 一个简单的范例程序
23.6.2 一个销复杂的范例程序
第二十四章 扩展WInows Shell
24.1 托盘图标
24.1.1 API
24.1.2 处理消息
24.1.3 图标及提示
24.1.4 鼠标点击
24.1.5 将应用程序隐藏起来
24.1.6 一个托盘图标的例子
24.2 应用程序桌面工具栏
24.2.1 API
24.2..2 TAppBar:AppBar的Form
24.2.3 使用TAppBar
24.3 外壳链接
24.3.1 获取IShellLink的实现
24.3.2 使用ishELLlINK
24.3.3 创建一个外壳链接
24.3.4 获取及设置链接信息
24.3.5 一个例子
24.4 外壳扩展
24.4.1 COM对象向导
24.4.2 复制钩子句柄
24.4.3 上下文菜单处理
24.4.4 图标句柄
第二十五章 创建ActiveX控件
25.1 为什么要创建ActiveX控件
25.2 创建ActiveX控件
25.2.1 ActiveX控件向导
25.2.2 ActiveX框架
25.2.3 特性页
25.3 ActiveForm
25.3.1 在ActiveForm中加入特性
25.4 Web上的ActiveX
25.4.1 与Web浏览器交互
25.4.2 Web分发
第二十六章 Open Tools API
26.1 Open Tools API的接口
26.2 使用Open Tools API
26.2.1 一个叫Dumb的专家
26.2.2 Expert专家
26.2.3 DDG Search
26.3 Form专家
第四部分 数据库开发
第二十七章 编写桌面数据库应用程序
27.1 使用数据集
27.1.1 VCL数据库体系结构
27.1.2 BDE数据访问元件
27.1.3 打开一个数据集
27.1.4 浏览数据集
27.1.5 对字段的操作
27.1.6 刷新数据集
27.1.7 变化的状态
27.1.8 过滤器
27.2 使用TTable元件
27.2.1 查找记录
27.2.2 主/细表
27.2.3 TTable析事件
27.2.4 通过代码创建一个数据库表
27.3 数据模块
27.4 搜索、设置范围和过滤的示例
27.4.1 数据模块
27.4.2 主Form
27.4.3 Range Form
27.4.4 Key Serach Form
27.4.5 Filter Form
27.5 TQuery和TStoredProc:其他数据集
27.6 文本文件
27.6.1 计划文件
27.6.2 数据文件
27.6.3 使用文本数据库
27.6.4 限制
27.6.5 从文本数据库表中引入数据
27.7 用ODBC连接
27.7.1 到哪找到ODBC驱动程序
27.7.2 ODBC实例:连接MS Access
第二十八章 开发客户/服务器应用程序
28.1 为什么要采用客户/服务台器模式
28.2 客户/服务器体系结构
28.2.1 客户
28.2.2 服务器
28.2.3 业务规则
28.2.4 胖客户、胖服务器、中间层:业务规则究竟属于哪一端
28.3 客户/服务器模型
28.3.1 两层模型
28.3.2 三层模型
28.4 Clien/Server与桌面数据库开发的比较
28.4.1 面向子集与面向记录
28.4.2 数据安全性
28.4.3 记录锁定方法
28.4.4 数据完整性
28.4.5 面向事务
28.5 SQL:在客户/服务器开发中的角色
28.6 Delphi Client/Server开发
28.7 服务器:设计后端
28.7.1 定义数据库表
28.7.2 使用域
28.7.3 用视图、存储过程和触发器定义业务规则
28.7.4 对数据库对象的访问权限
28.7.5 客房:设计前端
28.8 使用TDatabase元件
28.8.1 执行存储过程
28.8.2 执行存储过程
第二十九章 扩展数据库VCL
29.1 使用BDE
29.1.1 BDE单元
29.1.2 Check()
29.1.3 游标和句柄
29.1.4 使游标同步
29.2 dBASE表
29.2.1 物理记录编号
29.2.2 显示被删除的记录
29.2.3 显示被删除的记录
29.2.4 测试被软删除的记录
29.2.5 恢复被软删除的记录
29.3 紧缩
29.3.1 Paradox表
29.3.2 记录序号
29.3.3 限制查询结果
29.3.4 BDE杂项
29.3.5 编写数据感知控件
29.4 扩展TDataSet
29.4.1 过去
29.4.2 现在
29.4.3 创建一个TDataSetTTable派生类
第三十章 使用WebBroker技术
30.1 ISAPI、NSAPI和CGI——Web服务器扩展
30.1.1 公共网关接口
30.1.2 ISAPI和NSAPI
30.1.3 使用Web服务器
30.2 用Delphi创建Web应用程序
30.2.1 TWebModule和TWebDispacher
30.2.2 TWebRequest和TWebRe
30.4 使用COOKIE
30.5重定向到另一个Web站点
30.6 从HTML表单中获取
30.7 数据流
30.7.1 数据流的例子
第三十一章 MIDAS开发
31.1 分布式应用程序基础
31.2 一个简单的MIDAS应用程序
31.2.1 建立应用服务器
31.2.2 建立客户程序
31.2.3 保存修改了的数据
31.3 分布式主细关系
31.4 公文包模式:把数据带上路
31.5 连接缓冲池:解决一些问题的方案
31.6 实例化:您希有多少个服务器
31.7 回调:客房现在是服务器
31.8 安全
第五部分 快速数据库应用程序开发
第三十二章 货物管理程序——Client/Server开发
32.1 设计后端
32.1.1 定义域
32.1.2 定义表
32.1.3 定义生成器
32.1.4 定义触发器
32.1.5 定义存储过程
32.1.6 授予权限
32.2 集中数据库访问——商业规则
32.2.1 Login()Logout()方法
32.2.2 Customer——表的方法
32.2.3 PART表的方法
32.2.4 SALES表的方法
32.2.5 临时表的方法
32.3 设计用户界面
32.3.1 TMainForm——应用
32.3.2 TCustomerForm——客户输入
32.3.3 TPartForm——条目输入
32.3.4 TSalesForm——销售浏览
32.3.5 TNewSalesFOR销售浏览
32.3.6 客户搜索对话框
第三十三章 客户跟踪系统:MIDAS开发
33.1 设计服务器程序
33.2 设计客户程序
33.2.1 客户端数据
33.2.2 客户端模块]
第三十四章 错误报告工具——桌面数据库应用程序
34.1 通用应用程序需求
34.1.1 使程序可以在WWW上使用
34.1.2 用户数据输入和登录
34.1.3 错误处理、浏览和过滤
34.1.4 错误注解
34.1.5 其他U/I功能
34.2 数据模型
34.3 开发数据模块
34.3.1 应用程序初始化和登录
34.3.2 生成ID
34.3.3 错误处理例程
34.3.4 浏览和过滤记录
34.3.5 增加用户
34.3.6 加入注解
34.4 开发用户界面
34.4.1 使程序具有Web功能
34.4.2 其他用户界面
34.5 命名程序具有WS
第三十五章 错误报告工具:使用WebBroker
35.1 网页布局
35.2 修改数据模块
35.3 创建TDataSerTa bleProbcef元件:dstpBugs
35.4 创建TWebDispatcher元件:wbdpBugs
35.5 创建tpAGEpRODUCER元件:pprdBugs
35.6 编写ISAPI服务器——加入TActionIel
35.6.1 辅助例程
35.6.2 介绍网页
35.6.3 获取和校验用户登录的名称
35.7 浏览错误报告
35.7.1 浏览所有的错误报告
35.7.2 浏览用户自己输入的错误报告
35.7.3 格式化表格单元并显示错误细节
35.8 加入新的错误报告
35.8.1 获取错误信息
35.8.2 校验插入的记录
附录A 错误信息与异常
A.1 处理层和安全层
A.2 运行期错误
A.2.1 异常
A.2.2 Win32系统错误
附录B BDE错误代码
猜您喜欢