基本信息
源码名称:delphi7教程.pdf
源码大小:7.20M
文件格式:.pdf
开发语言:Pascal
更新时间:2021-04-29
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
delphi7教程
目 录 第 1 章 Delphi 概述··················································································································· 1 1.1 Delphi 介绍··················································································································· 1 1.2 Delphi 7 的主要特性····································································································· 2 1.2.1 熟悉语言特性···································································································· 2 1.2.2 丰富的组件 ······································································································· 2 1.2.3 功能强大的数据库访问技术············································································· 3 1.2.4 便捷的 Internet 编程技术·················································································· 3 1.3 Delphi 7 的安装与卸载································································································· 3 1.3.1 Delphi 7 的安装································································································· 3 1.3.2 Delphi 7 的卸载································································································· 6 第 2 章 Delphi 7 的集成开发环境····························································································· 8 2.1 集成开发环境中的窗口元素························································································ 8 2.1.1 对象编辑器 ······································································································· 8 2.1.2 工程管理器 ······································································································· 8 2.1.3 代码编辑器 ······································································································· 9 2.1.4 对象浏览器 ····································································································· 11 2.1.5 调试器············································································································· 11 2.2 集成开发环境中的操作界面······················································································ 13 2.2.1 主菜单············································································································· 13 2.2.2 工具栏············································································································· 18 2.2.3 组件面板 ········································································································· 19 2.3 定制集成开发环境 ····································································································· 19 2.3.1 定制编程环境·································································································· 19 2.3.2 定制代码编辑器······························································································ 20 2.3.3 定制工具栏 ····································································································· 20 2.3.4 定制组件面板·································································································· 21 2.3.5 定制窗口位置·································································································· 22 2.3.6 保存当前定制·································································································· 22 2.4 附属工具 ···················································································································· 23 2.4.1 Database Desktop····························································································· 23 2.4.2 数据库引擎(BDE Administrator)································································ 29 2.4.3 SQL Explorer ··································································································· 30 2.4.4 Data Pump ······································································································· 31 2.4.5 Image Editor ···································································································· 32 Delphi 7 程序设计与开发技术大全 ·2· 2.5 使用帮助系统············································································································· 34 第 3 章 应用程序框架············································································································· 35 3.1 创建一个简单的 Delphi 程序 ····················································································· 35 3.2 构成 Delphi 工程的文件····························································································· 38 3.2.1 工程文件(.dpr)···························································································· 38 3.2.2 单元文件(.pas)···························································································· 38 3.2.3 窗体文件(.dfm)··························································································· 40 3.2.4 资源文件(.res) ···························································································· 41 3.2.5 工程选项及桌面配置文件(.dof)································································· 42 3.2.6 中间编译单元(.dcu)···················································································· 42 3.2.7 备份文件(.~ pas)······················································································ 42 3.2.8 包文件(.dpk)······························································································· 42 3.3 Delphi 项目的框架类·································································································· 42 3.3.1 TForm 类 ········································································································· 43 3.3.2 TApplication 类································································································ 45 3.3.3 TScreen 类······································································································· 48 3.4 Delphi 的公共体系结构······························································································ 48 3.4.1 Delphi 固有的体系结构··················································································· 48 3.4.2 多文档应用程序······························································································ 49 3.4.3 数据库模块窗体······························································································ 50 3.4.4 网络模块窗体·································································································· 51 3.5 Delphi 工程的常见管理方法······················································································ 51 3.5.1 工程的目录结构······························································································ 51 3.5.2 专用单元存放公共代码 ·················································································· 52 3.5.3 管理多个工程·································································································· 52 第 4 章 Object Pascal 语言······································································································· 53 4.1 语言基础 ···················································································································· 53 4.1.1 Object Pascal 语言编写环境············································································ 53 4.1.2 注释语句 ········································································································· 54 4.1.3 标识符············································································································· 54 4.1.4 保留字和指令字······························································································ 55 4.1.5 数据类型与定义变量 ······················································································ 56 4.1.6 Object Pascal 的运算符 ··················································································· 64 4.1.7 语句················································································································· 65 4.1.8 过程与函数 ····································································································· 69 4.1.9 规范化命名 ····································································································· 74 4.2 面向对象的特性········································································································· 75 4.2.1 类和对象 ········································································································· 75 4.2.2 类的定义 ········································································································· 75 4.2.3 类的封装 ········································································································· 76 目录 ·3· 4.2.4 类的继承 ········································································································· 76 4.2.5 构造与析构 ····································································································· 77 4.2.6 方法················································································································· 80 4.2.7 多态性············································································································· 82 4.2.8 类运算符 ········································································································· 85 4.2.9 类方法和类引用······························································································ 87 4.3 结构化异常处理········································································································· 89 4.3.1 Try...Except 语句和 Try...Finally 语句 ····························································· 89 4.3.2 Raise 语句 ······································································································· 91 4.3.3 异常类············································································································· 92 4.4 方法与技巧················································································································· 92 4.4.1 设置代码模板·································································································· 92 4.4.2 设置提示信息·································································································· 93 第 5 章 使用 VCL 组件编程···································································································· 94 5.1 可视化类库(VCL) ································································································· 94 5.1.1 VCL 类库结构································································································· 94 5.1.2 组件运行机制·································································································· 95 5.2 VCL 常用基类············································································································ 99 5.2.1 TPersistent 类··································································································· 99 5.2.2 TComponent 类································································································ 99 5.2.3 TControl 类···································································································· 100 5.2.4 TWinControl 类 ····························································································· 100 5.2.5 TGraphicControl 类 ······················································································· 101 5.2.6 TCustomControl 类························································································ 101 5.3 Delphi 组件··············································································································· 102 5.3.1 Delphi 组件的优势························································································ 102 5.3.2 组件的分类 ··································································································· 102 5.3.3 组件的属性、事件和方法············································································· 103 5.3.4 组件的基本操作···························································································· 106 5.4 使用 Delphi 组件编程······························································································· 107 5.4.1 示例功能 ······································································································· 108 5.4.2 设置窗体 ······································································································· 108 5.4.3 编写代码 ······································································································· 110 第 6 章 常用 VCL 组件的使用······························································································ 112 6.1 简单组件 ·················································································································· 112 6.1.1 标签组件(TLabel)····················································································· 112 6.1.2 按钮组件(TButton)··················································································· 115 6.1.3 复选框组件(TCheckBox) ········································································· 116 6.1.4 单选框组件(TRadioButton)······································································ 117 6.1.5 下拉列表组件(TComboBox)···································································· 117 Delphi 7 程序设计与开发技术大全 ·4· 6.1.6 窗格组件(TPanel)····················································································· 120 6.1.7 滚动条组件(TScrollBar)··········································································· 121 6.1.8 单选分组框组件(TRadioGroup)······························································· 123 6.1.9 简单组件编程示例························································································ 124 6.2 文本编辑组件··········································································································· 126 6.2.1 单行编辑框组件(TEdit)············································································ 127 6.2.2 多行编辑框组件(TMemo)········································································ 129 6.2.3 RTF 编辑组件(TRichEdit)········································································ 130 6.2.4 格式输入组件(TMaskEdit)······································································· 131 6.2.5 文本编辑组件编程示例 ················································································ 133 6.3 分组组件 ·················································································································· 139 6.3.1 Tab 组件(TTabControl)············································································· 139 6.3.2 多页组件(TPageControl) ·········································································· 141 6.3.3 Tab 表组件(TTabSheet) ············································································ 143 6.3.4 分组组件编程示例························································································ 145 6.4 图形显示组件··········································································································· 149 6.4.1 图像组件(TImage)···················································································· 149 6.4.2 位图组件(TBitMap)·················································································· 150 6.4.3 图形显示组件编程示例 ················································································ 152 6.5 对话框组件··············································································································· 153 6.5.1 打开对话框组件(TOpenDialog) ······························································· 153 6.5.2 另存为对话框组件(TSaveDialog) ···························································· 156 6.5.3 打开图像对话框组件(TOpenPictureDialog)············································· 156 6.5.4 图像另存为对话框(TSavePictureDialog)·················································· 157 6.5.5 字体对话框(TFontDialog)········································································ 157 6.5.6 颜色对话框(TColorDialog) ······································································ 158 6.5.7 打印对话框(TPrintDialog)········································································ 159 6.5.8 打印设置对话框(TPrinterSetupDialog)····················································· 160 6.5.9 查找对话框(TFindDialog)········································································ 160 6.5.10 替换对话框(TReplaceDialog)································································· 161 6.5.11 对话框组件编程示例 ·················································································· 162 第 7 章 高级 VCL 组件 ········································································································· 167 7.1 窗体组件 ·················································································································· 167 7.1.1 表头组件(THeaderControl)······································································· 167 7.1.2 状态栏组件(TStatusBar)··········································································· 169 7.1.3 工具栏组件(TToolBar)············································································· 171 7.1.4 酷栏组件(TCoolBar) ················································································ 174 7.1.5 窗体组件编程实例························································································ 175 7.2 菜单组件 ·················································································································· 178 7.2.1 主菜单组件(TMainMenu)········································································· 178 目录 ·5· 7.2.2 弹出菜单组件(TPopMenu)······································································· 180 7.2.3 菜单组件编程示例························································································ 182 7.3 表格组件 ·················································································································· 186 7.3.1 自绘栅格组件(TDrawGrid) ······································································ 186 7.3.2 字符串栅格组件(TStringGrid)·································································· 189 7.3.3 表格显示组件编程示例 ················································································ 189 7.4 列表组件 ·················································································································· 193 7.4.1 列表框组件(TListBox) ············································································· 193 7.4.2 动作列表组件(TActionList)······································································ 196 7.4.3 图像列表组件(TImageList) ······································································ 198 7.4.4 树型视图组件(TTreeView)······································································· 203 7.4.5 列表视图组件(TListView)········································································ 207 7.4.6 列表组件编程示例························································································ 212 7.5 打印相关 ·················································································································· 215 7.5.1 Quick Report 打印组件·················································································· 215 7.5.2 Rave Report 打印组件··················································································· 217 第 8 章 窗体编程··················································································································· 218 8.1 窗体的分类··············································································································· 218 8.1.1 SDI 窗体········································································································ 218 8.1.2 MDI 窗体 ······································································································ 219 8.1.3 MPI 窗体······································································································· 222 8.2 窗体的基本属性、方法和事件 ················································································ 222 8.2.1 窗体的基本属性···························································································· 223 8.2.2 窗体的基本方法···························································································· 226 8.2.3 窗体的基本事件···························································································· 227 8.3 模式窗体与非模式窗体···························································································· 230 8.3.1 模式窗体 ······································································································· 230 8.3.2 非模式窗体 ··································································································· 231 8.4 窗体示例 ·················································································································· 231 第 9 章 事件处理··················································································································· 234 9.1 事件的定义及作用 ··································································································· 234 9.2 常用事件 ·················································································································· 234 9.2.1 键盘事件 ······································································································· 234 9.2.2 鼠标事件 ······································································································· 235 9.3 拖曳事件 ·················································································································· 235 9.4 事件编程示例··········································································································· 237 9.4.1 检测是否按下 Shift、Alt 或 Ctrl 键 ······························································ 237 9.4.2 模拟按下键盘上的某个键············································································· 238 9.4.3 限制鼠标移动的范围 ···················································································· 247 9.4.4 自定义鼠标 ··································································································· 248 Delphi 7 程序设计与开发技术大全 ·6· 9.4.5 设置光标闪烁的速度 ···················································································· 249 9.4.6 不同程序间的拖曳操作 ················································································ 251 第 10 章 文件和路径处理 ····································································································· 253 10.1 文件管理常用函数和过程······················································································ 253 10.1.1 文件操作常用函数和过程··········································································· 253 10.1.2 目录操作函数和过程 ·················································································· 256 10.1.3 驱动器操作常用函数 ·················································································· 259 10.2 各种文件类型的输入输出······················································································ 259 10.2.1 文本文件 ····································································································· 260 10.2.2 类型文件 ····································································································· 261 10.2.3 无类型文件·································································································· 263 10.3 映像内存的操作····································································································· 264 10.3.1 映像内存函数······························································································ 265 10.3.2 内存映像的步骤·························································································· 266 10.3.3 内存映像示例······························································································ 267 10.4 目录和驱动器········································································································· 272 10.4.1 获取 System 目录 ························································································ 272 10.4.2 获取 Windows 目录····················································································· 273 10.4.3 获取当前目录······························································································ 273 10.4.4 获取可用驱动器信息 ·················································································· 274 第 11 章 GDI 和图像编程 ····································································································· 276 11.1 Delphi 的绘图类 ····································································································· 276 11.1.1 画布类(TCanvas)···················································································· 276 11.1.2 画笔类(TPen)·························································································· 282 11.1.3 画刷类(TBrush) ······················································································ 285 11.1.4 颜色类(TColor)······················································································· 286 11.2 画图程序················································································································· 287 11.2.1 界面设计 ····································································································· 287 11.2.2 代码设计 ····································································································· 290 11.2.3 菜单设计 ····································································································· 294 11.3 坐标系统和映射模式······························································································ 297 11.3.1 设备坐标系·································································································· 298 11.3.2 逻辑坐标系·································································································· 298 11.3.3 屏幕坐标系·································································································· 298 11.3.4 窗体坐标系·································································································· 298 11.3.5 坐标映射 ····································································································· 299 11.3.6 设置映射模式······························································································ 300 11.3.7 设置窗口范围······························································································ 300 11.3.8 映射模式示例······························································································ 301 11.4 图像格式处理········································································································· 303 目录 ·7· 11.5 GDI 字体················································································································· 305 11.5.1 Win32 字体类型 ·························································································· 305 11.5.2 基本字体元素······························································································ 305 11.5.3 GDI 字体分类······························································································ 306 11.5.4 显示不同字体······························································································ 307 11.5.5 实际创建一种字体 ······················································································ 307 第 12 章 多媒体技术············································································································· 310 12.1 多媒体技术概述····································································································· 310 12.1.1 MPC 标准···································································································· 310 12.1.2 多媒体技术应用领域 ·················································································· 310 12.1.3 开发多媒体应用程序的工具······································································· 311 12.2 特殊显示效果········································································································· 312 12.2.1 基本原理 ····································································································· 313 12.2.2 使用 CopyRect 实现特效············································································· 313 12.2.3 使用 BitBlt 实现特效 ·················································································· 314 12.3 动画························································································································ 319 12.3.1 文字动画 ····································································································· 319 12.3.2 图像动画 ····································································································· 320 12.4 音频与视频············································································································· 322 12.4.1 WAV 与 MIDI 文件简介·············································································· 322 12.4.2 AVI 文件格式······························································································ 324 12.4.3 TMediaPlayer 组件的使用··········································································· 325 12.5 MessageBeep( )函数································································································ 328 12.6 PlaySound( )函数 ···································································································· 329 12.7 mciSendString( )函数······························································································ 330 第 13 章 消息处理技术 ········································································································· 333 13.1 Windows 消息········································································································· 333 13.1.1 了解消息 ····································································································· 333 13.1.2 消息结构 ····································································································· 333 13.1.3 消息类型 ····································································································· 334 13.1.4 消息处理 ····································································································· 335 13.1.5 应用程序的消息循环 ·················································································· 338 13.2 Delphi 消息处理机制······························································································ 339 13.2.1 消息处理函数······························································································ 339 13.2.2 应用程序消息······························································································ 340 13.3 发送消息················································································································· 341 13.3.1 Perform()函数······························································································ 341 13.3.2 SendMessage( )和 PostMessage( )函数 ························································ 341 13.4 消息和事件············································································································· 341 13.4.1 消息和事件的工作原理··············································································· 341 Delphi 7 程序设计与开发技术大全 ·8· 13.4.2 消息与事件的对应关系··············································································· 343 13.4.3 使用 Windows 消息处理 Delphi 没有的事件·············································· 343 13.5 消息处理编程示例 ································································································· 346 第 14 章 多线程编程············································································································· 348 14.1 线程的基础知识····································································································· 348 14.1.1 进程与线程关系·························································································· 348 14.1.2 多线程应用条件·························································································· 349 14.2 VCL 线程对象········································································································ 351 14.2.1 TThread 类··································································································· 351 14.2.2 线程函数 ····································································································· 354 14.2.3 线程的挂起与继续······················································································ 355 14.2.4 线程的终止与异常处理··············································································· 356 14.3 管理多线程············································································································· 357 14.3.1 线程同步技术······························································································ 357 14.3.2 线程优先级·································································································· 358 14.4 多线程示例············································································································· 365 第 15 章 动态链接库和组件包······························································································ 374 15.1 动态链接库概述····································································································· 374 15.1.1 动态链接库的概念······················································································ 374 15.1.2 Windows 系统的动态链接库······································································· 374 15.1.3 动态链接与静态链接 ·················································································· 375 15.1.4 DLL 和系统变量························································································· 376 15.1.5 DLL 的入口点函数 ····················································································· 376 15.1.6 DLL 和内存管理························································································· 377 15.1.7 DLL 中的数据····························································································· 377 15.1.8 DLL 中的异常和运行时错误······································································ 377 15.2 创建和调用 DLL ···································································································· 378 15.2.1 创建 DLL 的基本步骤················································································· 378 15.2.2 调用 DLL····································································································· 381 15.3 在 DLL 中封装窗体································································································ 384 15.4 使用 DLL 共享数据································································································ 386 15.4.1 内存映射文件的概念 ·················································································· 386 15.4.2 与内存映射文件相关的函数······································································· 387 15.4.3 使用内存映射文件在 DLL 中共享数据······················································ 389 15.5 钩子函数················································································································· 392 15.5.1 钩子链········································································································· 392 15.5.2 钩子函数 ····································································································· 392 15.5.3 钩子类型 ····································································································· 392 15.5.4 与使用钩子相关的函数··············································································· 394 15.5.5 使用钩子函数监测所有鼠标动作的实例···················································· 395 目录 ·9· 15.6 包和 DLL················································································································ 398 15.6.1 为什么使用包······························································································ 399 15.6.2 与包有关的文件类型 ·················································································· 399 15.6.3 运行时包 ····································································································· 399 15.6.4 设计时包 ····································································································· 401 15.6.5 创建和编辑包······························································································ 403 15.6.6 配置包········································································································· 407 15.6.7 包集合文件·································································································· 408 15.6.8 使用包和 DLL····························································································· 409 第 16 章 开发新的 VCL 组件································································································ 411 16.1 开发组件简介········································································································· 411 16.1.1 什么是组件·································································································· 411 16.1.2 为什么使用组件·························································································· 411 16.1.3 Delphi 的组件库基础 ·················································································· 412 16.1.4 组件和类 ····································································································· 417 16.1.5 开发组件的要求·························································································· 417 16.1.6 如何选择新组件的基类··············································································· 419 16.1.7 开发新组件的基本步骤··············································································· 420 16.1.8 测试未安装的组件······················································································ 423 16.1.9 测试已安装的组件······················································································ 424 16.2 组件开发过程中的面向对象编程··········································································· 424 16.2.1 定义新类 ····································································································· 424 16.2.2 祖先、后代及类层次 ·················································································· 425 16.2.3 访问控制 ····································································································· 425 16.2.4 分派方式 ····································································································· 426 16.2.5 抽象类成员·································································································· 427 16.2.6 类和指针 ····································································································· 428 16.3 创建属性················································································································· 428 16.3.1 属性的类型·································································································· 428 16.3.2 发布继承的属性·························································································· 428 16.3.3 定义属性 ····································································································· 428 16.3.4 存储和装载属性·························································································· 432 16.4 创建事件················································································································· 434 16.4.1 事件定义 ····································································································· 434 16.4.2 怎样实现标准事件······················································································ 436 16.4.3 定义新事件·································································································· 437 16.5 创建方法················································································································· 439 16.5.1 避免互相依赖······························································································ 439 16.5.2 命名方法的惯例·························································································· 439 16.5.3 保护方法 ····································································································· 440 Delphi 7 程序设计与开发技术大全 ·10· 16.5.4 使方法变为虚方法······················································································ 440 16.5.5 声明方法 ····································································································· 440 16.6 在组件中使用图形 ································································································· 440 16.6.1 VCL 的图形接口························································································· 441 16.6.2 使用 Canvas································································································· 441 16.6.3 使用图形工作······························································································ 441 16.6.4 脱屏位图(Off-Screen Bitmap)································································· 443 16.6.5 对变化作出反应·························································································· 443 16.7 处理消息和系统通知······························································································ 444 16.7.1 理解消息处理系统······················································································ 444 16.7.2 改变消息处理方法······················································································ 445 16.7.3 创建新的消息处理方法··············································································· 446 16.8 使组件在设计阶段可用·························································································· 448 16.8.1 注册组件 ····································································································· 448 16.8.2 安装组件到组件面板 ·················································································· 450 16.8.3 使组件的资源文件可用··············································································· 452 16.8.4 为组件设置位图·························································································· 453 16.8.5 为组件提供帮助·························································································· 454 16.8.6 增加属性编辑器·························································································· 454 16.8.7 加入组件编辑器·························································································· 457 16.9 修改现存的组件:制作非自动换行的 Memo 组件 ··············································· 460 16.9.1 创建并注册组件·························································································· 460 16.9.2 修改组件类·································································································· 461 16.10 开发图形组件:制作 Shape 图形组件 ································································· 462 16.10.1 创建和注册组件························································································ 462 16.10.2 发布继承的属性························································································ 462 16.10.3 增加图形能力···························································································· 463 16.11 开发窗口控件:制作 Calendar 组件····································································· 468 16.11.1 创建并注册组件························································································ 468 16.11.2 发布继承属性···························································································· 469 16.11.3 改变初始值································································································ 470 16.11.4 重定义单元格大小 ···················································································· 470 16.11.5 填充单元格································································································ 471 16.11.6 跟踪日期···································································································· 472 16.11.7 导航月和年································································································ 476 16.11.8 导航日期···································································································· 476 16.12 开发数据感知控件:制作数据感知的 Calender 组件·········································· 478 16.12.1 制作一个数据浏览控件············································································· 478 16.12.2 制作一个数据编辑控件············································································· 482 16.13 开发非可视组件:制作 Dialog 组件···································································· 486 目录 ·11· 16.13.1 定义组件接口···························································································· 486 16.13.2 创建和注册组件························································································ 487 16.13.3 创建组件接口···························································································· 487 16.13.4 测试对话框组件························································································ 488 第 17 章 Delphi 两层数据库开发·························································································· 489 17.1 数据库基础知识····································································································· 489 17.1.1 数据库的出现和发展 ·················································································· 489 17.1.2 数据库的组成······························································································ 491 17.1.3 数据库系统模型·························································································· 492 17.1.4 数据库的常用概念······················································································ 494 17.1.5 目前流行的数据库介绍··············································································· 495 17.1.6 数据库开发的一般方法··············································································· 498 17.2 Delphi 的数据库体系结构······················································································ 500 17.2.1 Delphi 数据库访问原理··············································································· 500 17.2.2 Delphi 与其他数据库开发工具的比较························································ 502 17.2.3 Delphi 的数据库开发优势··········································································· 503 17.3 Delphi 支持的数据引擎·························································································· 503 17.3.1 BDE 数据库引擎························································································· 504 17.3.2 ADO 数据库引擎 ························································································ 504 17.3.3 dbExpress 数据库引擎················································································· 505 17.3.4 Interbase 数据库引擎··················································································· 506 17.4 数据访问组件········································································································· 506 17.4.1 数据库组件·································································································· 507 17.4.2 数据库连接组件·························································································· 512 17.4.3 数据集组件·································································································· 513 17.4.4 数据源组件·································································································· 535 17.5 数据感知组件········································································································· 537 17.5.1 单行字符字段编辑框组件(TDBText)····················································· 538 17.5.2 单行字段编辑框组件(TDBEdit)····························································· 542 17.5.3 多行字段编辑框组件(TDBMemo)························································· 545 17.5.4 图像字段组件(TDBImage)····································································· 550 17.5.5 字段列表框组件(TDBListBox) ······························································ 551 17.5.6 字段下拉列表框组件(TDBComboBox)·················································· 554 17.5.7 参照字段列表框组件(TDBLookupListBox)··········································· 555 17.5.8 参照字段下拉列表框组件(TDBLookupComboBox)······························ 557 17.5.9 记录导航组件(TDBNavigator) ······························································· 559 17.5.10 表格组件(TDBGrid) ············································································· 563 17.6 Delphi 的其他支持 ································································································· 569 17.6.1 DataPump ···································································································· 569 17.6.2 DataDesktop································································································· 572 Delphi 7 程序设计与开发技术大全 ·12· 17.6.3 BDE 配置工具····························································································· 581 17.6.4 SQL Explorer 实用工具··············································································· 582 17.7 如何连接数据库····································································································· 584 17.7.1 BDE 方式连接 Access ················································································· 584 17.7.2 ODBC 方式连接 Access ·············································································· 584 17.7.3 ADO 方式连接 Access ················································································ 588 17.7.4 连接文本文件······························································································ 590 17.8 一些常用工具和数据字典的用法··········································································· 591 17.8.1 SQL 监视器································································································· 591 17.8.2 数据字典 ····································································································· 591 第 18 章 客户/服务器编程 ···································································································· 593 18.1 从桌面数据库到客户/服务器结构 ········································································· 593 18.1.1 为什么要采用客户/服务器结构·································································· 593 18.1.2 客户/服务器体系结构 ················································································· 594 18.2 服务器端的设计开发······························································································ 596 18.2.1 数据库对象·································································································· 596 18.2.2 定义数据库表······························································································ 596 18.2.3 使用域········································································································· 598 18.2.4 定义视图、存储过程和触发器··································································· 598 18.2.5 业务规则 ····································································································· 603 18.2.6 数据库对象的访问权限··············································································· 604 18.3 客户端使用 SQL 服务器 ························································································ 605 18.3.1 连接 SQL 服务器 ························································································ 605 18.3.2 获得 SQL 数据库信息················································································· 608 18.3.3 查询数据库·································································································· 608 18.3.4 数据库更新·································································································· 613 18.3.5 执行存储过程······························································································ 614 第 19 章 多层数据库应用程序的开发 ·················································································· 619 19.1 多层体系结构和技术概述······················································································ 619 19.1.1 多层体系结构概述······················································································ 619 19.1.2 多层体系结构的优点 ·················································································· 620 19.1.3 多层体系结构技术概述··············································································· 622 19.2 客户端程序开发····································································································· 628 19.2.1 客户端应用程序的结构··············································································· 628 19.2.2 创建客户端应用程序的步骤······································································· 628 19.2.3 连接应用服务器·························································································· 629 19.2.4 管理应用服务器连接 ·················································································· 631 19.2.5 处理约束和客户端的差错控制··································································· 632 19.2.6 数据更新 ····································································································· 632 19.3 服务器程序开发····································································································· 634 目录 ·13· 19.3.1 创建应用服务器的步骤··············································································· 634 19.3.2 创建及配置远程数据模块··········································································· 636 19.3.3 建立 IProvider 接口····················································································· 638 19.4 InternetExpress 扩展 ······························································································· 640 19.4.1 XML Broker 组件························································································ 640 19.4.2 TinetXPageProducer 组件 ············································································ 644 19.5 支持 CORBA 和 MTS····························································································· 645 19.5.1 CORBA ······································································································· 645 19.5.2 MTS············································································································· 646 19.6 Briefcase(公文包)程序······················································································· 648 第 20 章 报表、图表和决策的支持 ······················································································ 651 20.1 使用 QuickReport 组件创建报表············································································ 651 20.1.1 安装 QReport 组件面板··············································································· 651 20.1.2 QuickReport 组件介绍················································································· 652 20.1.3 报表向导 ····································································································· 660 20.2 使用 Rave 组件创建报表························································································ 662 20.2.1 开发环境介绍······························································································ 663 20.2.2 Rave 组件介绍····························································································· 664 20.2.3 创建视图 ····································································································· 666 20.2.4 创建报表 ····································································································· 669 20.2.5 应用实例 ····································································································· 672 20.3 TeeChart 图表组件·································································································· 676 20.3.1 TeeChart 组件介绍 ······················································································ 676 20.3.2 TeeChart 组件常用属性和方法 ··································································· 676 20.3.3 TeeChart 组件的使用··················································································· 677 20.3.4 Series 对象介绍··························································································· 679 20.3.5 创建数据库图表·························································································· 680 20.3.6 创建 QuickReport 图表················································································ 682 20.3.7 使用 TeeChart 向导创建图表 ······································································ 682 20.3.8 图表的预览,打印和导出··········································································· 684 20.4 Decision Cube 决策组件························································································· 685 20.4.1 Decision Cube 组件 ····················································································· 685 20.4.2 Decision Query 组件···················································································· 688 20.4.3 Decision Grid 组件······················································································· 689 20.4.4 Decision Graph 组件···················································································· 692 20.4.5 Decision Pivot 组件 ····················································································· 694 20.4.6 DecisionSource 组件···················································································· 697 第 21 章 从数据建模到系统开发·························································································· 698 21.1 软件工程介绍········································································································· 698 21.1.1 生命周期法·································································································· 698 Delphi 7 程序设计与开发技术大全 ·14· 21.1.2 快速原型法·································································································· 700 21.2 数据库的建立········································································································· 702 21.2.1 需求分析 ····································································································· 702 21.2.2 数据建模 ····································································································· 703 21.2.3 设计规范化·································································································· 704 21.2.4 自动化设计工具·························································································· 704 21.3 设计用户端界面····································································································· 705 21.3.1 用户界面设计的基本原则··········································································· 705 21.3.2 Delphi 中用户界面设计··············································································· 706 21.4 基于 ADO 两层结构的实现 ··················································································· 707 21.5 使用多层结构的实现······························································································ 708 21.5.1 基于 DataSnap 技术的多层数据库应用程序··············································· 708 21.5.2 使用 Bussiness Broker Server 的多层数据库应用程序································ 709 21.5.3 逻辑三层结构的数据库应用程序 ······························································· 709 21.6 发布到 Web············································································································· 710 21.7 “图书管理系统”示例·························································································· 711 21.7.1 程序功能及总体结构设计··········································································· 711 21.7.2 数据库设计·································································································· 713 21.7.3 数据模块设计······························································································ 713 21.7.4 用户登录模块的实现 ·················································································· 714 21.7.5 图书馆管理系统功能的实现······································································· 717 21.7.6 修改图书记录模块的实现··········································································· 718 21.7.7 修改学生记录模块的实现··········································································· 721 21.7.8 修改密码设置模块的实现··········································································· 724 21.7.9 生成预约图书的报表 ·················································································· 726 21.7.10 生成催还图书的报表 ················································································ 728 21.7.11 图书馆服务系统功能的实现····································································· 731 21.7.12 查询、借阅及预约图书············································································· 733 21.7.13 查询个人借阅情况及归还图书································································· 741 21.7.14 小结··········································································································· 746 第 22 章 Internet 编程和 Indy 组件 ······················································································· 747 22.1 WinSock 基础 ········································································································· 747 22.1.1 TCP、UDP 和 IP ························································································· 747 22.1.2 套接字(Socket)······················································································· 748 22.1.3 客户/服务器模式························································································· 749 22.1.4 面向连接的协议套接字的调用··································································· 750 22.1.5 面向无连接协议的套接字的调用 ······························································· 750 22.2 利用 Winsock API 实现 Socket 编程······································································· 751 22.2.1 常用 WinSockAPI 函数 ··············································································· 751 22.2.2 利用 WinSockAPI 实现 Socket 编程 ··························································· 754 目录 ·15· 22.3 利用组件实现 Socket 编程····················································································· 762 22.3.1 TClientSocket 组件······················································································ 762 22.3.2 TServerSocket 组件 ····················································································· 763 22.3.3 Indy 组件介绍 ····························································································· 764 22.4 编程示例················································································································· 772 22.4.1 远程抓屏示例······························································································ 772 22.4.2 局域网聊天程序·························································································· 780