《Delphi 6开发人员指南》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(美)Steve Teixeira,(美)Xavier Pacheco著;龙劲松等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2003
  • ISBN:7111109686
  • 页数:844 页
图书介绍:本书内容丰富

第一部分 基本知识 1

第1章 Delphi编程简介 1

1.1 Delphi的产品家族介绍 2

1.2 认识Delphi 3

1.2.1 可视化开发环境的特性 4

1.2.3 编程语言的功能和复杂性的对立 5

1.2.2 编译器速度和编译后代码执行效率 5

1.2.4 数据库结构的灵活性和可扩展性 6

1.3.1 Delphi 1 7

1.3 历史回顾 7

1.2.5 实现机制对设计和使用模式的增强 7

1.3.3 Delphi 3 8

1.3.2 Delphi 2 8

1.3.5 Delphi 5 9

1.3.4 Delphi 4 9

1.4.1 主窗口 10

1.4 Delphi IDE环境 10

1.3.6 Delphi 6 10

1.4.3 Delphi工具栏 11

1.4.2 主菜单 11

1.4.6 对象观察器 12

1.4.5 窗体设计器 12

1.4.4 组件选项板 12

1.4.8 代码浏览器 13

1.4.7 代码编辑器 13

1.5 项目源文件概述 14

1.4.9 对象层次图 14

1.6 应用程序简介 16

1.7 事件处理机制的优势 17

1.8 快速原型化 18

1.10 必须掌握的10种IDE功能 19

1.9 可扩展的组件和环境 19

1.11 小结 22

第2章 ObjectPascal语言 23

2.2.2 重载 24

2.2.1 函数调用中的圆括号 24

2.1 注释 24

2.2 扩展过程和函数特性 24

2.2.3 缺省参数值 25

2.3 变量 26

2.4 常量 27

2.5 运算符 28

2.5.3 逻辑运算符 29

2.5.2 比较运算符 29

2.5.1 赋值运算符 29

2.5.4 数学运算符 30

2.5.6 增/减量运算 31

2.5.5 按位运算符 31

2.6.1 类型比较 32

2.6 ObjectPascal类型 32

2.5.7 “计算-赋值”运算符 32

2.6.2 字符类型 33

2.6.3 字符串 34

2.6.4 变体类型 43

2.6.5 货币类型 52

2.7.1 数组 53

2.7 用户自定义类型 53

2.7.2 动态数组 54

2.7.3 记录 55

2.7.4 集合 56

2.7.5 对象 58

2.7.6 指针 59

2.7.7 类型别名 60

2.8 类型转换和强制类型转换 61

2.10 条件判断语句 62

2.9 字符串资源 62

2.10.2 case语句 63

2.10.1 if语句 63

2.11.1 for循环 64

2.11 循环 64

2.11.4 Break()过程 65

2.11.3 repeat..until循环 65

2.11.2 while循环 65

2.12 过程和函数 66

2.11.5 Continue()过程 66

2.13 作用域 70

2.14 单元 71

2.14.2 单元循环引用 72

2.14.1 uses子句 72

2.15.2 包的语法格式 73

2.15.1 使用Delphi包 73

2.15 包 73

2.16 面向对象编程 74

2.17.2 析构 76

2.17.1 声明和实例化 76

2.17 使用Delphi对象 76

2.17.3 方法 77

2.17.4 方法的类型 78

2.17.6 可见区域说明符 80

2.17.5 属性 80

2.17.7 友元类 81

2.17.9 TObject:所有对象的祖先 82

2.17.8 对象的秘密 82

2.17.10 接口 83

2.18 结构化异常处理 86

2.18.1 异常类 88

2.18.2 异常执行流程 90

2.18.3 异常的再激活 91

2.19 运行时信息 92

2.20 小结 93

3.1 什么是消息 94

第3章 理解Windows消息 94

3.3 Windows消息系统的工作方式 95

3.2 消息的类型 95

3.4 Delphi的消息系统 96

3.5 消息的处理 98

3.5.2 为Result消息值赋值 100

3.5.1 消息处理:并非无约定 100

3.6 发送自己的消息 101

3.5.3 TApplication类型的OnMessage事件 101

3.7 非标准消息 102

3.6.2 SendMessage()和PostMessage()API函数 102

3.6.1 Perform()方法 102

3.7.1 通知消息 103

3.7.3 用户定义消息 104

3.7.2 内部VCL消息 104

3.8 剖析VCL的消息系统 106

3.10 小结 112

3.9 消息和事件之间的关系 112

4.1 版本兼容的共性 113

第4章 编写可移植代码 113

第二部分 高级技术 113

4.1.1 版本判断 114

4.1.3 关于IDE的讨论 115

4.1.2 单元、组件和包 115

4.2.1 Linux中不具备的特性 116

4.2 Delphi和Kylix兼容性 116

4.2.3 平台相关特点 117

4.2.2 编译器和语言特性 117

4.4 从Delphi 5升级 118

4.3.4 潜在的二进制DFM的不兼容 118

4.3 Delphi 6的新特性 118

4.3.1 变体变量 118

4.3.2 枚举类型 118

4.3.3 $IF指示符 118

4.5.2 VCL问题 119

4.5.1 RTL问题 119

4.4.1 可写的类型常量 119

4.4.2 Cardinal一元取反操作 119

4.5 从Delphi 4升级 119

4.6.1 无符号32位整数 120

4.6 从Delphi 3升级 120

4.5.3 Internet开发主题 120

4.5.4 数据库问题 120

4.7.1 Boolean类型的改变 122

4.7 从Delphi 2升级 122

4.6.2 64位整数 122

4.6.3 Real类型 122

4.7.4 TCustomForm 123

4.7.3 RTL的改变 123

4.7.2 ResourceString 123

4.9 小结 124

4.8 从Delphi 1升级 124

4.7.5 GetChildren() 124

4.7.6 自动化服务器 124

5.1.1 多任务的类型 125

5.1 阐述线程 125

第5章 多线程技术 125

5.1.3 线程的滥用 126

5.1.2 在Delphi应用程序中使用多线程 126

5.2.1 TThread基础 127

5.2 TThread对象 127

5.2.3 线程终止 130

5.2.2 线程实例 130

5.2.4 和VCL同步 131

5.2.5 应用程序Demo 134

5.2.6 优先级和调度 135

5.2.8 线程中的计时 137

5.2.7 线程的挂起和恢复 137

5.3.1 线程局部存储 139

5.3 管理多线程 139

5.3.2 线程同步 142

5.4.1 用户界面 152

5.4 多线程应用程序范例 152

5.4.2 搜索线程 158

5.4.3 调整优先级 162

5.5 多线程访问BDE 164

5.6 多线程图形操作 168

5.7 纤程 172

5.8 小结 177

6.1 何谓DLL 178

第6章 动态链接库 178

6.2 静态链接和动态链接 180

6.3.1 多个应用程序共享代码、资源和数据 181

6.3 为何要用DLL 181

6.4.1 数美分(简单的DLL) 182

6.4 创建和使用DLL 182

6.3.2 隐藏实施细节 182

6.4.2 通过DLL显示模式窗体 185

6.5 通过DLL显示无模式窗体 187

6.6 在Delphi应用程序中使用DLL 188

6.7 显式调用DLL 190

6.8 动态链接库的入口/出口函数 192

6.8.2 DLL入口/出口示例 193

6.8.1 进程和线程的初始化和结束标准 193

6.9.1 在16位Delphi中捕捉异常 196

6.9 DLL中的异常 196

6.10 回调函数 197

6.9.2 异常和Safecall指示符 197

6.10.1 使用回调函数 199

6.11 通过DLL调用回调函数 200

6.10.2 绘制Owner-Draw列表框 200

6.12 共享不同进程中的DLL数据 202

6.12.1 创建共享内存的DLL 203

6.12.2 使用共享内存的DLL 206

6.13 从DLL中输出对象 208

6.14 小结 212

7.1 数据库类型 213

第7章 Delphi数据库体系结构 213

第三部分 数据库开发 213

7.3.1 数据库连接概述 214

7.3 连接到数据库服务器 214

7.2 数据库体系结构 214

7.4 操作数据集 215

7.3.2 建立数据库连接 215

7.4.1 打开及关闭数据集 216

7.4.2 导航数据集 219

7.4.3 管理数据集 223

7.5.1 字段值 226

7.5 操作字段 226

7.4.4 数据集状态 226

7.5.2 字段数据类型 227

7.5.4 管理字段数据 228

7.5.3 字段名称及号码 228

7.5.5 操作BLOB字段 233

7.5.6 过滤数据 238

7.5.7 搜索数据集 239

7.5.8 关键字查找 240

7.5.10 查找、范围及过滤器演示 243

7.5.9 使用数据模块 243

7.5.11 书签 250

7.6 小结 251

8.1.1 单向、只读数据集 252

8.1 使用dbExpress 252

第8章 用dbExpress进行数据库开发 252

8.2.1 TSQLConnection 253

8.2 dbExpress组件 253

8.1.2 dbExpress与BDE比较 253

8.1.3 dbExpress支持跨平台开发 253

8.2.2 TSQLDataset 256

8.2.3 显示查询结果 256

8.3 设计可编辑的dbExpress应用程序 259

8.2.5 TSQLMonitor 259

8.2.4 向后兼容组件 259

8.4 部署dbExpress应用程序 260

8.5 小结 261

9.3 OLE DB、ADO、ODBC概述 262

9.2 Microsoft的统一数据访问策略概述 262

第9章 用dbGo for ADO进行数据库开发 262

9.1 dbGo介绍 262

9.4.1 为ODBC建立OLEDB提供者 263

9.4 使用dbGo forADO 263

9.5.2 建立数据库连接 265

9.5.1 TADOConnection 265

9.4.2 Access数据库 265

9.5 dbGo for ADO组件 265

9.5.3 回避/替代登录提示 267

9.5.5 TADODataset 269

9.5.4 TADOCommand 269

9.5.6 类似BDE的数据集组件 270

9.6 事务处理 271

9.7 小结 272

第10章 组件体系:VCL和CLX 273

第四部分 基于组件的开发 273

10.2 何谓组件 274

10.1 关于新的CLX 274

10.3 组件的层次结构 275

10.3.2 可视组件 276

10.3.1 非可视组件 276

10.4.1 属性 278

10.4 组件结构 278

10.4.2 属性的类型 279

10.4.4 事件 280

10.4.3 方法 280

10.4.5 流式属性 281

10.4.7 父子关系 282

10.4.6 所有权 282

10.5.2 TPersistent方法 283

10.5.1 TPersistent类 283

10.5 可视组件的继承关系 283

10.5.3 TComponent类 284

10.5.5 TWinControl和TWidget-Control 285

10.5.4 TControl类 285

10.5.8 其他类 287

10.5.7 TCustomControl类 287

10.5.6 TGraphicControl类 287

10.6 运行期类型信息 290

10.6.1 TypInfo.pas单元:运行类型信息的定义者 291

10.6.2 获取类型信息 293

10.6.3 获得方法指针的类型信息 299

10.6.4 获取有序类型的类型信息 302

10.6.5 通过RTTI为属性赋值 306

10.7 小结 308

11.1.1 决定是否应编写组件 309

11.1 组件设计基础 309

第11章 编写VCL组件 309

11.1.2 编写组件的步骤 310

11.1.4 创建组件单元 311

11.1.3 确定祖先类 311

11.1.5 创建属性 313

11.1.6 创建事件 321

11.1.7 创建自定义方法 325

11.1.8 构造函数和析构函数 326

11.1.9 注册组件 328

11.1.10 测试组件 329

11.2.1 扩展Win32组件包装器的性能 331

11.2 组件示例 331

11.1.11 提供组件图标 331

11.2.2 TddgRunButton:创建属性 340

11.3.1 设计决策 345

11.3 TddgButtonEdit:一个容器组件 345

11.3.3 显露事件 346

11.3.2 显露属性 346

11.3.4 TddgDigitalClock:创建组件事件 348

11.3.5 把窗体添加到组件面板 351

11.4 小结 353

12.1.2 创建一个THintWindow派生类 354

12.1.1 扩展提示功能 354

第12章 高级VCL组件构造技术 354

12.1 伪可视组件 354

12.1.3 椭圆型窗口 356

12.2.1 滚动字幕组件 357

12.2 动态组件 357

12.1.4 激活THintWindow派生窗口 357

12.1.5 运用TDDGHintWindow 357

12.2.3 在屏幕以外的位图上绘制 358

12.2.2 编写组件 358

12.2.4 描绘组件 359

12.2.5 让组件“动起来” 360

12.2.6 测试TddgMarquee组件 368

12.3 编写属性编辑器 369

12.3.1 创建一个继承的属性编辑器对象 370

12.3.2 将属性作为文本进行编辑 371

12.3.3 注册新的属性编辑器 374

12.3.4 利用对话框将属性作为整体进行编辑 375

12.4.1 TComponentEditor 378

12.4 组件编辑器 378

12.4.2 一个简单的组件 379

12.4.4 注册组件编辑器 380

12.4.3 一个简单的组件编辑器 380

12.5.1 定义属性 382

12.5 对非公开的组件数据执行流操作 382

12.5.2 DefineProperty()的例子 383

12.5.3 TddgWaveFile:DefineBinary Property()用法示例 384

12.6 属性类别 390

12.6.2 自定义类别 391

12.6.1 类别类 391

12.7 组件列表:TCollection和TCollectionItem 394

12.7.2 定义TCollection类:TRunButtons 396

12.7.1 定义TCollectionItem类:TRunBtnItem 396

12.7.3 实现TddgLaunchPad、TRun-BtnItem和TRunButtons 397

12.7.4 用对话框属性编辑器编辑TCollectionItem组件的列表 403

12.8 小结 408

13.1 何谓CLX 409

第13章 CLX组件开发 409

13.2 CLX的体系结构 410

13.3 移植问题 412

13.4.1 TddgSpinner组件 414

13.4 组件示例 414

13.4.2 设计期增强工具 425

13.4.3 组件引用和图像列表 430

13.4.4 CLX数据感知组件 435

13.5 CLX设计编辑器 443

13.6.1 命名约定 446

13.6 包 446

13.6.2 运行期包 448

13.6.3 设计期包 450

13.6.4 单元注册 452

13.6.5 组件位图 453

13.7 小结 454

14.1 为何要用包 455

第14章 充分发挥包的作用 455

14.3 包的类型 456

14.2 为何不用包 456

14.1.1 精简代码 456

14.1.2 发布更小的应用程序——应用程序分割 456

14.1.3 组件容器 456

14.6 把包安装到Delphi IDE中 457

14.5 使用运行期包 457

14.4 包文件 457

14.7.1 包编辑器 458

14.7 创建包 458

14.7.2 包设计方案 459

14.9 包编译器指示符 462

14.8 包的版本化 462

14.11 使用运行期(插件)包的可扩展应用程序 463

14.10 包的命名约定 463

14.12 从包中导出函数 469

14.13 获取包的信息 471

14.14 小结 474

15.1.1 COM:组件对象模型 475

15.1 COM基础 475

第15章 COM开发 475

15.1.3 术语 476

15.1.2 COM、ActiveX和OLE之间的对比 476

15.1.6 结构化存储 477

15.1.5 OLE1与OLE2的对比 477

15.1.4 ActiveX的优势 477

15.1.9 COM+ 478

15.1.8 线程模式 478

15.1.7 统一数据传输 478

15.2.1 接口 479

15.2 COM与Object Pascal 479

15.2.2 使用接口 481

15.3 COM对象和类工厂 485

15.2.3 HResult返回类型 485

15.3.1 TComObject和TComObject-Factory 486

15.3.2 in-process COM服务器 487

15.3.3 创建in-proc COM服务器实例 488

15.4 聚合 489

15.3.4 out-of-process COM服务器 489

15.6 Automation 490

15.5 分布式COM 490

15 6.1 IDispatch 491

15.6.3 后期绑定与早期绑定的对比 492

15.6.2 类型信息 492

15.6.5 创建Automation服务器 493

15.6.4 注册 493

15.6.6 创建Automation控制器 505

15.7 高级Automation技术 512

15.7.1 Automation事件 512

15.7.2 Automation集合 521

15.7.3 类型库新增接口类型 529

15.7.4 二进制数据的交换 530

15.7.5 后台:COM的语言支持 533

15.8.1 一个简单的示例程序 537

15.8 TOleContainer 537

15.8.2 一个较为复杂的示例程序 539

15.9 小结 547

16.1.1 API 548

16.1 托盘图标组件 548

第16章 Windows外壳编程 548

16.1.2 处理消息 550

16.1.3 图标及提示 551

16.1.4 鼠标点击 552

16.1.5 隐藏应用程序 553

16.1.6 托盘图标应用程序示例 559

16.2 应用程序桌面工具栏 560

16.2.1 API 561

16.2.2 TAppBar:AppBar的窗体 562

16.2.3 使用TAppBar 569

16.3 外壳链接 572

16.3.2 使用IShellLink 573

16.3.1 获取IShellLink实例 573

16.3.3 创建一个外壳链接 575

16.3.4 获取及设置链接信息 576

16.3.5 示例程序 580

16.4 外壳扩展 586

16.4.2 复制钩子处理器 588

16.4.1 COM对象向导 588

16.4.3 环境菜单处理器 592

16.4.4 图标处理器 600

16.4.5 信息提示处理器 607

16.5 小结 612

17.1 OpenTools接口 613

第17章 使用OpenToolsAPI 613

17.2.1 简单的向导 615

17.2 使用OpenTools API 615

17.2.2 Wizard向导 618

17.2.3 DDGSearch 626

17.3 窗体向导 637

17.4 小结 643

18.1 什么是COM+ 645

第18章 使用COM+/MTS开发事务程序 645

第五部分 企业开发 645

18.3.1 事务 646

18.3 服务 646

18.2 使用COM的原因 646

18.3.2 安全 647

18.3.4 队列组件 651

18.3.3 及时激活 651

18.3.5 对象缓冲池 658

18.3.6 事件 659

18.4.4 Neutral线程 666

18.4.3 运行环境(Contexts) 666

18.4 运行期 666

18.4.1 注册数据库(RegDB) 666

18.4.2 配置组件 666

18.5.3 有状态(Stateful)和无状态(Stateless) 667

18.5.2 执行环境 667

18.5 创建COM+应用程序 667

18.5.1 目标:规模 667

18.5.6 有关事务的思考 669

18.5.5 COM+应用程序的组织 669

18.5.4 生命周期管理 669

18.6.1 COM+向导 670

18.6 Delphi中的COM+ 670

18.5.7 资源 670

18.6.2 COM+框架 671

18.6.3 Tic-Tac-Toe:一个简单的应用程序 673

18.6.4 调试COM+应用程序 687

18.7 小结 688

19.1 CORBA特性 689

第19章 CORBA开发 689

19.2 CORBA体系结构 690

19.2.1 OSAgent 691

19.3 接口定义语言 692

19.2.2 接口 692

19.3.2 用户定义类型 693

19.3.1 基本类型 693

19.3.8 方法参数 694

19.3.7 序列 694

19.3.3 别名 694

19.3.4 枚举 694

19.3.5 结构 694

19.3.6 数组 694

19.4 银行案例 695

19.3.9 模块 695

19.5 复杂数据类型 704

19.6.3 EJB在容器中运行 710

19.6.2 EJB是一种特殊的组件 710

19.6 Delphi、CORBA和EnterpriseJavaBeans(EJB) 710

19.6.1 Delphi程序员EJB速成 710

19.6.6 EJB的类型 711

19.6.5 Home(本地)接口和Remote(远程)接口 711

19.6.4 EJB具有预定义的API 711

19.6.8 创建一个简单的“Hello,world”EJB 712

19.6.7 配置JBuilder 5以开发EJB 712

19.7 CORBA和Web Services 717

19.7.1 创建Web Service 718

19.7.2 创建SOAP客户端应用程序 719

19.7.3 添加CORBA客户端代码至WebService中 720

19.8 小结 723

20.2 SOAP 724

20.1 Web Services 724

第20章 BizSnap开发:基于SOAP的Web Services 724

20.3.1 TWebModule 725

20.3 编写Web Service 725

20.3.2 定义一个可调用接口 726

20.3.3 实现一个可调用接口 727

20.3.4 测试Web Service 728

20.4 从客户端调用Web Service 730

20.4.1 为远程可调用对象产生一个输入单元 731

20.4.2 使用THTTPRIO组件 732

20.5 小结 733

21.1 创建多层应用程序的机制 734

第21章 DataSnap开发 734

21.2.1 集中商业逻辑 735

21.2 多层体系结构的优点 735

21.2.5 容错性 736

21.2.4 公文包模型 736

21.2.2 瘦客户结构 736

21.2.3 自动错误调解 736

21.3 典型的DataSnap结构 737

21.2.6 负载平衡 737

21.3.1 服务器 738

21.3.2 客户端 740

21.4.1 创建服务器 742

21.4 使用DataSnap创建应用程序 742

21.4.2 创建客户端 743

21.5.1 客户端优化技术 748

21.5 更多增强应用程序健壮性的措施 748

21.5.2 应用程序服务器技术 750

21.6 实例 757

21.7 Client Dataset组件的更多特性 766

21.8 典型错误 769

21.9 配置DataSnap应用程序 769

21.9.1 发放许可证 769

21.9.2 DCOM配置 770

21.9.3 文件配置 771

21.9.4 Internet配置考虑(防火墙) 771

21.10 小结 773

第六部分 Internet开发 775

第22章 ASP开发 775

22.1 理解活动服务器对象 775

22.2 活动服务器对象向导 777

22.2.1 类型库编辑器 779

22.2.2 新方法 781

22.2.3 ASPResponse对象 782

22.2.4 第一次运行 783

22.2.5 ASPRequest对象 784

22.2.6 重新编译活动服务器对象 784

22.2.7 再次运行活动服务器对象 785

22.3 ASP Session、Server和Application对象 786

22.4 活动服务器对象及数据库 787

22.5 活动服务器对象及NetCLX支持 789

22.6 调试活动服务器对象 791

22.6.1 使用MTS调试活动服务器对象 792

22.6.2 采用WindowsNT4调试 793

22.6.3 采用Windows 2000调试 794

22.7 小结 795

23.1.1 多个Webmodule 796

23.1 WebSnap的特性 796

23.1.2 服务器执行脚本 796

第23章 WebSnap开发 796

23.1.6 会话管理 797

23.1.5 Page Producer(页面生成器)组件 797

23.1.7 登录服务 797

23.1.4 多种调度方法 797

23.1.3 TAdapter(适配器)组件 797

23.2 WebSnap开发 798

23.1.10 文件上传服务 798

23.2.1 应用程序的设计 798

23.1.9 HTML管理 798

23.1.8 用户跟踪 798

23.2.2 为应用程序添加功能 805

23.2.3 导航菜单栏 805

23.2.4 登录 807

23.2.5 管理用户偏好数据 809

23.2.6 在会话之间保存偏好数据 812

23.2.7 图像处理 814

23.2.8 显示数据 816

23.2.9 将应用程序转换为ISAPI DLL 819

23.3 高级话题 820

23.3.1 LocateFileServices(文件定位服务 820

23.3.2 文件上传 821

23.3.3 包含定制模板 823

23.3.4 在TAdapterPageProducer中定制组件 823

23.4 小结 825

24.1 开发技术的发展:回顾 826

24.1.1 20世纪80年代以前:庞然大物时代 826

第24章 无线开发 826

24.1.4 20世纪90年代后期:多层结构及基于Internet的事务处理 827

24.1.3 20世纪90年代早期:客户端/服务器 827

24.1.5 21世纪早期:扩展到无线移动领域的应用程序基础架构 827

24.1.2 20世纪80年代后期:桌面数据库应用程序 827

24.2.3 Pocket.PC 828

24.2.2 PalmOS设备 828

24.2.4 RIM BlackBerry 828

24.2.1 移动电话 828

24.2 移动无线设备 828

24.3.3 3G 829

24.3.2 CDPD 829

24.3.4 GPRS 829

24.3.5 蓝牙 829

24.3.1 GSM、CDMA和TDMA 829

24.3 无线电技术 829

24.4 基于服务器的无线数据技术 830

24.4.1 SMS 830

24.3.6 802.11 830

24.4.2 WAP 831

24.4.3 I-mode 838

24.4.4 PQA 839

24.5 无线用户体验 842

24.5.1 环路选择网络和数据包选择网络 842

24.5.4 数据输入和导航技术 843

24.5.3 窗体因素的重要性 843

24.5.5 M-Commerce 843

24.5.2 无线并非Web 843

24.6 小结 844