《Delphi 6应用开发指南》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)PaulKimmeL著;郭旭,周建明译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2002
  • ISBN:7900637648
  • 页数:556 页
图书介绍:

第1章 走进Delphi 1

1.1 浏览和配置IDE 1

1.1.1 打开文件和保存文件 1

1.1.2 搜索代码 3

1.1.3 探索Delphi 5

1.1.4 运行程序 10

1.1.5 配置工作环境 13

1.1.6 使用上下文菜单 15

1.2 创建应用程序 16

1.2.1 创建一个程序 17

1.2.2 保存您的工作 18

1.2.3 编译并运行程序 18

1.3 理解Delphi的设计--以工程为中心 19

1.3.1 工程文件 19

1.3.2 源代码文件 19

1.3.3 窗体与数据模块 20

1.3.4 配置与选项文件 21

1.3.5 中间编译单元 21

1.3.6 备份文件 21

1.3.7 包文件 21

1.3.8 应用程序文件 22

1.4 源代码文件的组织 22

1.4.1 单元的各个总分 22

1.4.2 Unit语句 23

1.4.3 接口部分 23

1.4.4 实现部分 23

1.4.5 定义Uses子句 24

1.4.6 Type子句 24

1.4.7 变量部分 24

1.4.8 资源声明 25

1.4.9 Initialization部分的使用 25

1.4.10 Finalization部分的使用 25

1.5 代码的原子与分子 26

1.5.1 操作符与操作数 26

1.5.2 关键字 26

1.5.3 基本数据类型 27

1.5.4 书写代码 28

1.5.5 条件语句 28

1.5.6 循环控制语句 30

1.6 编写过程和函数 30

1.6.1 编写过程 31

1.6.2 编写函数 32

1.6.3 参数前缀的使用 32

1.6.4 参数的默认值 33

1.7 调试程序 33

1.7.1 向集成调试器传递命令行参数 34

1.7.2 简化的中断命令 34

1.8 小结 34

第2章 学好面向对象的Pascal 36

2.1 Delphi的惯例 36

2.1.1 少就是多 37

2.1.2 最好的习惯 37

2.1.3 惯例 37

2.2 每个Windows程序都具有的成分 38

2.2.1 图形用户界面 38

2.2.2 过程和函数 40

2.2.3 Windows是基于消息的操作系统 41

2.2.4 事件处理程序把Windows和Windows程序联系起来 41

2.3 调用WindwosAPI过程 42

2.3.1 可执行文件与动态链接库 43

2.3.2 怎样调用WindowsAPI过程 43

2.3.3 声明API过程 44

2.3.4 在运行时加载库 45

2.3.5 创建动态链接库 47

2.4 类的定义与对象的实例化 49

2.4.1 基本的类语法 50

2.4.2 捕获状态 52

2.4.3 增加功能 53

2.4.4 创建对象实例 54

2.5 信息隐藏是好事情 55

2.5.1 存取限字符 55

2.5.2 作用域 59

2.5.3 信息隐藏的目的 59

2.6 向类添加特性 60

2.6.1 数据维护对象的状态 60

2.6.2 特性代表数据的接口 60

2.6.3 特性访问方法 61

2.7 小结 63

第3章 Delphi体系结构的关键类 64

3.1 浏览Delphi的体系结构 64

3.1.1 Project Browser选项 66

3.1.2 理解Project Browser中的作用域、继承和引用 68

3.2 根类 68

3.2.1 TObject类 68

3.2.2 COM接口 70

3.3 组件的继承 70

3.3.1 TPersistent类 70

3.3.2 TComponent类 72

3.3.3 TControl类 73

3.3.4 TWinControl类 73

3.3.5 使用新的标签化组件 73

3.3.6 特性编辑器类 74

3.4 TApplication类 74

3.4.1 Application事件 75

3.4.2 使用TApplicationEvents组件 76

3.5 新的Windows Shell组件 77

3.6 图形类 78

3.6.1 TCanvas类 78

3.6.2 Delphi6中新增的字体、画笔、画刷恢复能力 80

3.7 打印 80

3.8 Internet类 82

3.9 数据结构 82

3.9.1 使用新的TValueListEditor组件 82

3.9.2 在表中存储数据 82

3.9.3 TOrderedList 84

3.9.4 TCollection类 84

3.10 数据流 85

3.10.1 TStrings类 86

3.11 TParser类 86

3.12 异常处理 87

3.12.1 使用try except块语句 88

3.12.2 使用资源保护块 90

3.12.3 引发异常 90

3.13 多线程类 91

3.14 OpenTools API 92

3.15 Microsoft Office服务器 92

3.16 小结 93

第4章 定义多态和动态过程 94

4.1 使用默认参数 94

4.2 产生多态的行为 95

4.2.1 引入命名矫正 96

4.2.2 过载过程 96

4.3 在过载过程与默认参数之间选择 97

4.4 继承 97

4.4.1 理解继承关系中存取限定符的作用 98

4.4.2 单继承 99

4.4.3 多继承 99

4.5 静态的、虚的和动态的方法 100

4.6 重载方法 101

4.6.1 Inherited保留字的使用 103

4.6.2 重载构造函数 103

4.6.3 重载析构函数 104

4.7 重新引入方法 104

4.8 抽象类 105

4.9 向前声明 105

4.10 小结 106

第5章 集合、常数与运行时类型信息编程 107

5.1 不可变常数 107

5.1.1 全局与本地常数 107

5.1.2 常数参数 108

5.1.3 使用const创建静态本地变量 109

5.1.4 数组常数 110

5.1.5 记录常数 111

5.1.6 过程常数 112

5.1.7 指针常数 113

5.1.8 用于初始化常量的过程 113

5.2 枚举的使用 113

5.2.1 用枚举定义数组边界 114

5.2.2 预定义枚举类型 115

5.2.3 用于枚举类型的过程 117

5.3 集合操作 118

5.3.1 理解集合以及set of语句 119

5.3.2 使用集合构造器 119

5.3.3 集合操作符 120

5.3.4 Include和Exclude过程 124

5.4 掌握数组 125

5.4.1 数组异常 125

5.4.2 定义子界值 126

5.4.3 使用类型减少边界错误 126

5.4.4 下界与上界函数 127

5.4.5 开放数组参数 128

5.4.6 定义静态数组和动态数组 131

5.4.7 紧缩数组 132

5.5 运行时类型信息 133

5.6 类型转换 133

5.7 小结 134

第6章 接口的奥秘 135

6.1 赢得对意大利细面条的战争 135

6.2 类定义实用指南 138

6.2.1 类中有什么 139

6.2.2 没有数据的类 139

6.2.3 命名惯例 140

6.2.4 存取限定符的使用 141

6.2.5 默认的公开或公有权限 141

6.2.6 公开接口 143

6.2.7 公有接口 143

6.2.8 保护接口 143

6.2.9 私有接口 143

6.3 创建自定义过程类型 144

6.3.1 定义过程类型 144

6.3.2 回调过程 145

6.4 过程类型中的默认参数值 147

6.5 传递过程类型的参数 147

6.6 过程类型常量 148

6.7 事件处理程序 149

6.7.1 定义事件处理程序 150

6.7.2 调用事件方法 150

6.7.3 触发事件 151

6.7.4 定义事件特性 154

6.7.5 事件处理程序将消息转发到应用程序 155

6.8 消息方法 155

6.8.1 查找预定义消息常数 155

6.8.2 定义消息处理程序 157

6.8.3 理解Delphi的消息发送体系 160

6.9 小结 161

第7章 抽象类和静态接口 162

7.1 类方法的实现 162

7.1.1 创建无数据类 163

7.1.2 构造函数和析构函数 166

7.2 维护无对象状态 167

7.3 动态链接库编程 169

7.3.1 调用DLL过程 169

7.3.2 编写动态链接库 172

7.3.3 处理DLL异常 175

7.3.4 对字符串参数使用共享内存管理器 176

7.3.5 创建工程组 177

7.3.6 测试DLL 177

7.4 瘦客户程序设计 179

7.4.1 使用类引用 180

7.4.2 定义纯虚抽象类 182

7.4.3 创建面向对象的DLL 183

7.4.4 创建瘦客户程序 189

7.5 小结 191

第8章 高级特性编程 192

8.1 声明特性 192

8.1.1 存取限定符 193

8.1.2 只读和只写特性的定义 195

8.1.3 针对处理器密集型特性修改的安全措施 195

8.1.4 使用Assign方法进行对象赋值 198

8.2 特性的存储限定符 198

8.2.1 默认和非默认存储方式的使用 200

8.2.2 使用stored限定符 201

8.3 定义数组特性 202

8.3.1 数组特性的default限定符 204

8.3.2 隐式范围检查 205

8.4 定义索引特性 205

8.4.1 使用枚举索引值 207

8.5 多态特性 208

8.6 提升子类中特性的可见性 211

8.7 小结 213

第9章 创建定制组件 214

9.1 组件单元概览 214

9.2 使用组件向导 215

9.2.1 为扩展的标签控件编写代码 216

9.2.2 测试控件 219

9.3 组件的构造函数和析构函数 220

9.4 定义组件特性 221

9.5 编译并测试组件 226

9.5.1 陷阱代码 230

9.6 在Code Insight中定义陷阱 231

9.7 添加组件图标 232

9.7.1 用Image Editor创建组件资源文件 233

9.7.2 查找图标资源 234

9.8 将组件安装到包中 236

9.9 小结 237

第10章 高级组件设计 238

10.1 动态装载资源 238

10.1.1 创建Delphi组件资源文件 239

10.1.2 装载资源 240

10.2 公开所拥有的组件 242

10.2.1 声明公开的组件特性 243

10.2.2 调用SetSubComponent以持久化公开对象 245

10.3 创建对话框组件 246

10.4 重载Notification方法 250

10.5 创建特性编辑器 251

10.5.1 子类化已有的特性编辑器 252

10.5.2 定义定制的特性编辑器 253

10.6 持久化非公开特性 259

10.6.1 重载DefineProperties 259

10.6.2 TReader和TWriter 260

10.6.3 写入复杂类型的数据 260

10.7 小结 263

第11章 用组件开发一致的界面 264

11.1 定制组件 265

11.1.1 定制组件的三个C 265

11.1.2 重分解 266

11.1.3 小的改变有什么好处 268

11.1.4 采取好的策略 268

11.1.5 组件化 269

11.2 创建组件模板 269

11.2.1 定义组件模板 269

11.3 窗体模板与窗体继承 274

11.3.1 创建窗体模板 275

11.3.2 使用模板窗体 278

11.4 静态与动态的组件用法 279

11.4.1 动态创建窗体 279

11.4.2 一个动态的数据库窗体 282

11.5 所有者绘图组件 287

11.5.1 定制网格绘制 289

11.5.2 所有者绘图TMainMenu组件 290

11.6 小结 293

第12章 使用Microsoft自动化组件 294

12.1 TOleServer 294

12.2 Microsoft自动化服务器 297

12.2.1 自动化服务器组件概览 297

12.2.2 导入类型库 299

12.2.3 CreateOleObject 304

12.2.4 CreateRemoteComObject 305

12.3 Access 305

12.3.1 用Access解析固定长度的数据 306

12.4 小结 310

第13章 使用Data Access组件 311

13.1 ODBC(开放式数据库连接) 312

13.1.1 创建ODBC别名 312

13.1.2 改变ODBC别名的配置 314

13.1.3 测试连接 314

13.2 Borland数据库引擎 315

13.3 数据库窗体向导 315

13.3.1 使用SQL Explorer创建BDE别名 316

13.3.2 使用数据库窗体向导 317

13.4 Data Access组件 319

13.5 TDataSet 320

13.6 TBDEDataSet和TDBDataSet 326

13.7 TTable组件 326

13.7.1 SessionName和DatabaseName特性 327

13.7.2 Table属性 327

13.7.3 Fields 327

13.8 TQuery组件 328

13.8.1 编写SQL SELECT语句 329

13.8.2 Open与ExecSQL方法 330

13.8.3 RequestLive特性 331

13.8.4 Params 331

13.8.5 UpdateObject特性 332

13.9 TDataSource组件 332

13.10 TDatabase 333

13.10.1 CachedUpdates 334

13.10.2 事务隔离级别 334

13.11 TSession 335

13.12 TBatchMove 335

13.13 TUpdateSQL 336

13.13.1 创建一个样本UpdatdSQL应用程序 336

13.13.2 编写UpdateSQL应用程序代码 339

13.14 小结 342

第14章 使用数据控制 343

14.1 简述两层和三层设计 343

14.2 数据控件概览 345

14.2.1 DBGrid 345

14.2.2 DBNavigator 345

14.2.3 DBText 345

14.2.4 DBEdit 346

14.2.5 DBMemo 346

14.2.6 DBImage 346

14.2.7 DBListBox 346

14.2.8 DBComboBox 346

14.2.9 DBCheckBox 346

14.2.10 DBLookupListBox 347

14.2.11 DBLookupComboBox 347

14.2.12 DBRichEdit 347

14.2.13 DBCtrlGrid 347

14.2.14 DBChart 348

14.2.15 连接到DataSource和DataSet 349

14.2.16 数据控件特性 349

14.3 DBRichEdit控件 350

14.3.1 格式化文本 350

14.3.2 更改段落特性 352

14.3.3 查找文本 353

14.3.4 流BLOB字段 354

14.4 DBGrid控件 354

14.4.1 列集合和列对象 355

14.4.2 栅格事件 358

14.4.3 定制单元栅格绘图 359

14.5 DBLookupListBox和DBComboBox控件 361

14.6 DBChart控件 362

14.7 动态和静态字段 365

14.7.1 字段编辑器 366

14.7.2 字段特性:使用字段约束、默认表达式和编辑掩码 368

14.7.3 处理字段级事件 369

14.7.4 定义字段级的查找 371

14.7.5 关于动态字段组件和静态字段组件的最后一点说明 372

14.8 数据库字典 373

14.8.1 创建数据字典 373

14.8.2 将字典同DataSet相关联 376

14.9 创建定制的数据控件 376

14.9.1 添加TFieldDataLink组件 377

14.9.2 使控件可复制 380

14.10 小结 388

第15章 MIDAS编程 389

15.1 MIDAS组件概述 390

15.1.1 定义服务器应用程序 390

15.1.2 定义客户程序 393

15.2 对MIDAS服务器进行查询 395

15.2.1 服务器程序的实现 395

15.2.2 实现客户程序 401

15.3 错误处理 404

15.3.1 建立客户与服务器示例程序 404

15.3.2 使用错误处理窗体 406

15.4 公文包客户和服务器程序 407

15.5 小结 408

第16章 Intranet与Internet编程 409

16.1 传输控制协议(TCP)组件 410

16.1.1 Indy客户端TCP组件 410

16.1.2 Indy服务器TCP组件 413

16.2 用户数据报(UDP)组件 414

16.3 建立FTP客户程序 416

16.3.1 连接到FTP服务器 417

16.3.2 上传和下载文件 419

16.3.3 向FTP服务器发送命令 420

16.4 创建Telnet客户程序 422

16.5 使用POP3和SMTP建立Internet Email客户端程序 425

16.5.1 使用TIdPOP3组件 425

16.5.2 使用TIdMessage组件 427

16.5.3 使用TIdSMTP组件 427

16.6 小结 428

第17章 使用WebBroker组件创建Web服务器 429

17.1 HTML基础 429

17.1.1 URL(Uniform Resource Locator) 429

17.1.2 基本的HTML结构 431

17.1.3 将可替换参数标记与WebBroker一同使用 436

17.2 使用WebBroker组件 436

17.2.1 WebDispatcher组件 437

17.2.2 TPageProducer组件 439

17.2.3 TDataSetPageProducer组件 440

17.2.4 查看表数据 442

17.2.5 TQueryTableProducer组件 444

17.3 使用Cookie 446

17.4 小结 449

第18章 创建Windows程序 450

18.1 准备工作 450

18.1.1 大有帮助的简单工作 451

18.1.2 版本控制 451

18.2 开发中的Delphi工程选项 452

18.2.1 应用设置 452

18.2.2 设置运行时错误 452

18.2.3 调试选项 453

18.2.4 加入版本信息 454

18.2.5 在RichEditor工程中指定目录和条件选项 454

18.3 建立主窗体 455

18.3.1 多文档界面 455

18.3.2 添加TMainMenu组件 457

18.3.3 添加工具栏 463

18.3.4 TActionList和TAction组件 465

18.3.5 建立状态栏 474

18.4 建立编辑器窗体 479

18.4.1 自动合并Format菜单 480

18.4.2 创建一个惟一的临时文件 481

18.5 永久保存注册表中应用程序的设置 482

18.6 使程序合乎需要 484

18.6.1 调试与测试 484

18.6.2 质量保证 484

18.6.3 文档 484

18.7 工程部署选项 485

18.8 小结 485

第19章 Delphi的SQL的程序设计 486

19.1 结构化查询语言 486

19.2 SQL编程 487

19.2.1 SELECT语句 487

19.2.2 DELETE 489

19.2.3 INSERT 489

19.2.4 UPDATE 490

19.2.5 SQL与TQuery组件 490

19.3 高级SQL编程 492

19.3.1 定义WHERE子句 492

19.3.2 使用JOIN子句 495

19.3.3 对数据排序 496

19.3.4 GROUP BY语句 496

19.3.5 HAVING子句 497

19.3.6 UNION和INTERSECTION 497

19.3.7 定义嵌套查询 498

19.4 小结 499

附录A 使用OPENTOOLS API的Delphi扩展示例 500

A.1 OpenToolsAPI介绍 500

A.1.1 OpenTools接口 501

A.1.2 创建向导 501

A.2 创建定制向导 506

A.2.1 定义New Expert Wizard 506

A.2.2 向Delphi的菜单添加菜单项 515

A.2.3 建立代码生成器 516

A.3 CODEGEN.TXT 517

A.3.1 将向导添加到New Items对话框 521

A.4 创建组件编辑器 524

A.4.1 定义上下文菜单 524

A.4.2 注册组件编辑器 527

A.4.3 阴影标签的组件编辑器 527

A.5 小结 531

附录B 创建NT服务程序 532

B.1 创建服务程序 532

B.1.1 定义邮件发送器服务 533

B.2 安装服务程序 534

B.3 使用服务控制管理器 535

B.4 服务事件日志 536

B.5 服务的调试 536

B.6 小结 538

附录C 将程序转变为自动化服务器 539

C.1 向工程添加自动化对象 539

C.1.1 使用自动化对象向导 539

C.1.2 在类型库编辑器中定义接口 539

C.1.3 实现接口 542

C.1.4 运行服务器来注册类型库 543

C.2 建立测试程序 544

C.3 小结 545

附录D 用Delphi实现无线程序 546

D.1 准备工作 546

D.2 无线标记语言基础 547

D.2.1 定义桌面(或WML文档) 547

D.2.2 定义卡片 549

D.2.3 格式化标记 549

D.2.4 导航按钮 549

D.2.5 模板 550

D.2.6 输入域和变量 551

D.3 无线应用与Delphi 551

D.4 使用Delphi创建无线服务器 552

D.4.1 建立联系表 553

D.4.2 使用Web Broker创建CGI服务器 553

D.4.3 测试程序 555

D.5 小结 556