第一篇 概要 1
第1章 开始学习Delphi 2
1.1 Delphi是什么 2
1.2 快速浏览Delphi IDE 2
1.2.1 对象检查器 3
1.2.2 Delphi工作区 4
1.3 第一个程序::Hello World 4
1.3.1 创建程序 4
1.3.2 修改程序 5
1.4.1 创建Hello WorldⅡ程序 6
1.4.2 修改Hello WorldⅡ程序 6
1.3.3 结束程序 6
1.4 第二个程序:Hello World,PartⅡ 6
1.5 Object Pascal语言概述 7
1.5.1 开始 8
1.5.2 Pascal单元 9
1.5.3 代码注释 16
1.5.4 变量 17
1.5.5 Object Pascal数据类型 19
1.5.6 Object Pascal操作符 22
1.5.7 常量 24
1.5.8 数组 24
1.5.9 字符串 27
1.6 小结 34
1.7 工作室 34
问与答 34
测验 35
练习 35
2.1.1 执行多指令 36
2.1 if,then,else 36
第2章 Pascal介绍 36
2.1.2 增加else 37
2.1.3 if语句嵌套 39
2.2 使用循环 40
2.2.1 for循环 41
2.2.2 while循环 45
2.2.3 repeat循环 47
2.2.4 goto语句 48
2.2.5 Continue 和Break过程 49
2.3 case语句 50
2.4 作用域 51
2.5 记录 54
2.5.1 with语句 55
2.5.2 记录数组 56
2.5.3 包含文件 57
2.6 函数、过程和方法 58
2.6.1 声明与定义 61
2.6.2 数值、常量及引用参数 62
2.6.3 局部函数与过程 65
2.6.4 方法重载 66
2.6.5 函数的缺省参数 67
2.7 小结 68
2.8 工作室 68
问与答 68
测验 69
练习 69
第3章 类和面向对象编程 70
3.1 集 70
3.2 强制转换(Casting) 71
3.3 指针 72
3.3.1 局部动态内存用法 73
3.3.2 动态分配与指针 74
3.3.3 指针的间接引用 75
3.4 类是什么 76
3.5 类的剖析 77
3.5.1 类的存取级 77
3.5.2 类的构造程序 79
3.5.3 类的析构程序 82
3.5.4 数据字段 84
3.5.6 关于Self 85
3.5.5 方法 85
3.5.7 类示例 87
3.6 继承 92
3.6.1 覆盖方法 93
3.6.2 类关键字:is和as 95
3.7 小结 96
3.8 工作室 96
问与答 96
测验 97
练习 97
4.1 Delphi IDE 98
第4章 Delphi IDE浏览 98
4.2.1 Delphi 工程中使用的文件 99
4.2 Delphi 工程 99
4.2.2 源代码单元 102
4.3 Delphi 的主菜单和工具栏 103
4.4 使用组件选项板 104
4.4.1 放置一个组件的多重拷贝 104
4.4.3 组件选项板快捷菜单 105
4.4.4 导航组件选项板 105
4.4.2 在窗体上居中放置组件 105
4.5 多重窗体应用 106
4.5.1 增加单元 107
4.5.2 编译、创建和链接 107
4.6 编译并建立其他Objcct Pascal程序 109
4.7 进一步讨论Delphi 窗体 109
4.7.1 主窗口窗体 109
4.7.2 对话框窗体 110
4.7.3 辅助窗口与对话框比较 114
4.7.4 多文档接口模式 114
4.7.5 窗体的关键属性 115
4.7.6 窗体的方法 118
4.7.7 MDI方法 119
4.7.8 窗体的事件 119
4.8 Object Inspector(对象检查器) 121
4.8.1 Compoent Selector(组件选择器) 121
4.8.2 Properties(属性)页 121
4.8.3 Events(事件)页 123
4.9 可泊位IDE窗口 124
4.9.1 泊位点 124
4.9.2 可泊位窗口试验 125
4.9.3 禁止泊位 126
4.10 一个MDI示范程序 127
4.10.1 创建主窗口窗体 127
4.10.2 编写File |Oen和 File | Save As菜单选项 129
4.10.3 为Window窗口菜单编写代码 130
4.10.4 创建MDI子窗体 131
4.10.5 建立About框 132
4.10.6 进一步完善程序 132
4.12 工作室 134
问与答 134
4.11 小结 134
测验 135
练习 135
第5章 可视化组件模式 137
5.1 架构基础 137
5.1.1 为什么要如此重视架构 137
5.1.2 最想获取什么 139
5.2 可视化组件库 140
5.2.2 属性、方法和事件 141
5.2.1 组件 141
5.3 VCL探秘 151
5.3.1 窗体和应用程序类 152
5.3.2 组件类 152
5.3.3 这不是全部 156
5.4 小结 157
5.5 工作室 157
问与答 157
测验 158
练习 158
6.1.1 Form Designer的快捷菜单 160
6.1 使用Form Designer 160
第6章 使用Form Designer(窗体设计器)与Menu Designer(菜单设计器) 160
6.1.2 放置组件 161
6.1.3 Form Designer网格 162
6.1.4 选择组件 162
6.1.5 移动组件 166
6.1.6 防止组件被移动或改变大小 167
6.1.7 排序、剪切、复制及粘贴组件 167
6.1.8 设置组件大小 168
6.1.9 对齐组件 171
6.1.10 设置Tab顺序 175
6.2 建立示例应用程序 176
6.2.1 第1步:开始新应用程序 177
6.2.2 第2步:增加工具栏 177
6.2.3 第3步:增加状态栏 177
6.2.4 第4步:增加备注组件 178
6.2.5 运行程序 178
6.3 可以创建菜单吗 179
6.3.1 创建主菜单 179
6.3.2 编写代码 185
6.3.4 弹出菜单(快捷菜单) 191
6.3.3 现在是等待已久的时刻 191
6.3.5 创建并保存菜单模板 192
6.4 小结 193
6.5 工作室 193
问与答 193
测验 194
练习 194
7.1.2 非可视化组件 195
7.1.1 可视化组件 195
7.1 组件回顾 195
第7章 VCL组件 195
7.2 Name(命名)属性 196
7.3 重要的公用属性 197
7.3.1 Align(对齐)属性 197
7.3.2 Color(颜色)属性 197
7.3.3 Cursor(光标)属性 198
7.3.4 Enabled(允许)属性 199
7.3.5 Font(字体)属性 199
7.3.6 Hint(提示)属性 200
7.3.7 ParentColor,ParentCtl3D,ParentFont及 ParentShowHint属性 201
7.3.8 Tag属性 201
7.3.9 其他公用属性 201
7.4 组件的主要方法(Methods) 202
7.5 公用事件 203
7.6 TStings 204
7.7 标准窗口控制组件 206
7.7.1 编辑控件 206
7.7.2 ListBox 与ComboBox组件 210
7.7.3 VCL按钮类型 212
7.7.4 Label(标号)组件 219
7.7.5 ScrollBar(滚动栏)组件 220
7.8 Panel(面板)组件 220
7.9 以上这些不是全部 221
7.10 公用对话框 221
7.10.1 Execute(执行)方法 221
7.10.2 File Open (文件打开)与File Save(文件保存)对话框 222
7.10.5 Font(字体)对话框 225
7.10.6 Find (查找)与Replace(替换)对话框 225
7.10.3 File Open Picture和 File Save Picture对话框 225
7.10.4 Color(颜色)对话框 225
7.11 小结 226
7.12 工作室 226
问与答 226
测验 227
练习 227
第一篇 回顾 229
第二篇 概要 231
8.1.1 对象库页面和选项 232
第8章 创建Delphi应用程序 232
8.1 使用对象库 232
8.1.2 利用对象库创建新对象 236
8.1.3 向对象库增加对象 236
8.1.4 向对象库增加工程 238
8.1.5 对象库的内务处理 238
8.2 用Wizards(向导)建立窗体和应用程序 240
8.2.1 使用Dialog Wizard(对话框向导) 240
8.2.2 用Application Wizard(应用程序向导)创建应用程序 241
8.3.1 Delphi如何管理类声明 245
8.3 向代码中增加方法和数据区段 245
8.3.2 向代码中添加方法 247
8.3.3 添加类数据区段 249
8.3.4 删除Delphi生成代码 249
8.4 创建组件模板 250
8.5 使用资源文件 251
8.5.1 Delphi的资源 252
8.5.2 编译资源文件 253
8.5.3 把资源文件链接到可执行文件中 254
8.5.4 使用资源的样本程序 254
8.6.1 什么是程序包 259
8.6 使用程序包(Packages) 259
8.6.2 静态链接与动态链接 260
8.6.3 在应用程序中使用运行阶段程序包 262
8.6.4 展开(Deploying)使用程序包的应用程序 262
8.7 小结 263
8.8 工作室 263
问与答 263
测验 264
练习 264
9.2.1 工程组 266
9.2 使用Project Manager 266
9.1 人人需要工程 266
第9章 Project(工程)、 Code Editor和 Code Explorer 266
9.2.2 工程管理器窗口 268
9.2.3 创建并使用工程组 271
9.2.4 建立工程或工程组 272
9.3 理解工程选项 272
9.3.1 窗体页面 273
9.3.2 应用程序页面 274
9.3.3 编译器页面 275
9.3.4 链接器页面 276
9.3.5 目录/条件页面 277
9.3.6 版本信息页面 278
9.3.7 程序包页面 279
9.4 Delphi Code Editor 280
9.4.1 编辑器基本操作 280
9.4.2 编辑器专用特性 285
9.4.3 Code Editor快捷菜单 291
9.4.4 修改编辑器选项 292
9.5 Code Explorer 296
9.5.3 使用Code Explorer增加代码 297
9.5.1 Code Explorer快捷菜单 297
9.5.2 单元导航 297
9.5.4 Code Explorer选项 299
9.6 小结 299
9.7 工作室 300
问与答 300
测验 300
练习 301
10.1 为什么使用调试器 302
10.2 调试器菜单项 302
第10章 应用程序的调试 302
10.3 使用断点 304
10.3.1 设置和清除断点 304
10.3.2 断点列表窗口(Breakpoint List Window) 305
10.3.3 简单断点 307
10.3.4 条件断点 307
10.3.5 Run to Cursor(运行至光标)命令 308
10.4 监视变量 308
10.4.1 Tooltip表达式求值 308
10.4.2 Watch List快捷菜单 309
10.4.3 使用Watch Properties对话框 310
10.4.5 向Watch List中添加变量 311
10.4.4 启用和禁用监视项 311
10.4.6 使用Watch List 312
10.5 Debug Inspector(调试检查器) 313
10.5.1 Debug Inspector页面 314
10.5.2 Debug Inspector快捷菜单 315
10.6 其他调试工具 316
10.6.1 Evaluate/Modify对话框 316
10.6.3 CPU窗口 317
10.6.2 调用栈窗口 317
10.6.4 Go to Address命令 318
10.7 步进式代码调试 318
10.7.1 调试沟槽符号 318
10.7.2 步进式调试与跟踪 319
10.8 调试DLL(动态链接库) 321
10.9 事件日志窗口 322
10.10 模块(Module)窗口 322
10.11 调试技术 322
10.11.2 追踪查找存取违例 323
10.11.1 OutputDebugString函数 323
10.11.3 调试快速提示 325
10.12 调试器选项 326
10.12.1 通用(General)页面 326
10.12.2 事件日志(Event Log)页面 327
10.12.3 语言异常(Language Exceptions)页面 327
10.12.4 OS(操作系统)异常页面 328
10.13 小结 329
10.14 工作室 329
问与答 329
练习 330
测验 330
第11章 Delphi工具和选项 332
11.1 使用Image Editor(图像编辑器) 332
11.1.1 前景色和背景色 333
11.1.2 透明色和反向色 334
11.1.3 Image Editor绘图工具 334
11.1.4 缩放 335
11.1.5 线宽选项板 335
11.1.6 位图文件 336
11.1.7 图标应用 337
11.1.8 光标应用 338
11.1.9 Image Editor快捷菜单 339
11.1.10 创建资源工程 339
11.2 WinSight::窗口侦查 341
11.2.1 窗口消息接发系统 341
11.2.2 窗口树 342
11.2.3 消息跟踪窗口 343
11.2.4 窗口侦查 344
11.2.5 消息跟踪选项 344
11.2.6 其他WinSight特性 345
11.3 TDUMP 347
11.4 程序包(Package)集合编辑器 348
11.5 配置Delphi工具菜单 348
11.5.1 使用配置工具对话框 349
11.5.2 向菜单中增加工具 349
11.5.3 编辑菜单中的工具 350
11.6 设定环境选项 350
11.6.1 优选项页面 350
11.6.3 选项板页面 351
11.6.2 库页面 351
11.7 小结 353
11.8 工作室 353
问与答 353
测验 354
练习 354
第12章 图像与多媒体程序设计 355
12.1 图像设计简易方法 355
12.2 设备描述环境与TCanvas 355
12.3.1 笔、刷子和字体 358
12.3 GDI对象 358
12.3.2 位图与调色板 361
12.3.3 裁剪区域 362
12.3.4 基本绘图操作 363
12.3.5 绘制文本 364
12.3.6 绘制位图 368
12.4 脱屏(Offscreen)位图 371
12.4.1 创建内存位图 371
12.4.2 保存内存位图 372
12.4.3 样本内存位图程序 373
12.5.1 Windows API 波音频 376
12.5 多媒体程序设计 376
12.5.2 TMediaPlayer组件 377
12.5.3 MediaPlayer属性、方法和事件 378
12.5.4 波音频 379
12.5.5 设置输出音量 380
12.5.6 录制波形音频 380
12.5.7 MIDI音频 382
12.6 CD音频 383
12.6.1 AVI视频 384
问与答 385
12.7 小结 385
12.8 工作室 385
测验 386
练习 386
第13章 基础以外的内容 387
13.1 创建窗口装饰 387
13.1.1 工具栏 387
13.1.2 CoolBar组件 388
13.1.3 工具栏组件 390
13.1.4 可泊位工具栏 395
13.1.5 状态栏 396
13.2 增加功能命令许可 401
13.2.1 TActionList和TAction命令许可 401
13.2.2 实现命令许可 401
13.3 Delphi应用程序中的打印 405
13.3.1 通用打印对话框 406
13.3.2 Printing简单方法 408
13.3.3 通过QuickReport打印 409
13.3.4 Printing复杂方法 409
13.4.1 光标基础 414
13.3.5 打印位图 414
13.4 使用光标 414
13.4.2 装载和使用通用光标 415
13.4.3 装载和使用定制光标 416
13.5 小结 417
13.6 工作室 417
问与答 418
测验 418
练习 419
14.1.1 编写帮助文件 420
14.1 实现上下文相关帮助 420
第14章 高级程序设计 420
14.1.2 上下文识别符和HelpContext属性 421
14.1.3 实现上下文相关帮助 422
14.1.4 使用Help包括文件 424
14.1.5 实际运用 425
14.2 用异常处理程序检查错误 426
14.2.1 异常处理关键字:try,except,finally 以及raise 426
14.2.2 异常的发出 428
14.2.4 应用程序级未处理异常的捕捉 431
14.2.3 运用关键字finally 431
14.2.5 调试与异常处理 432
14.3 使用登记薄(Registry) 433
14.3.1 登记簿关键字 434
14.3.2 登记薄数据类型 435
14.3.3 TRegistry类 435
14.3.4 使用TRegistry 437
14.4 实现专用消息处理 444
14.4.1 窗口消息进一步介绍 444
14.4.3 处理事件 447
14.4.4 处理其他的窗口消息 448
14.4.5 用户定义消息 451
14.5 小结 452
14.6 工作室 452
问与答 452
测验 453
练习 453
第二篇 回顾 455
第三篇 概要 457
第15章 COM 与ActiveX 458
15.1 理解COM 458
15.1.1 COM术语 459
15.1.2 引用计数 461
15.1.3 IUnknown接口 461
15.14 创建COM对象 462
14.4.2 发送与邮寄 466
15.2 理解ActiveX 473
15.2.1 使用第三方(Third-Party) ActiveX控件 473
15.2.2 创建新的ActiveX控件 474
15.2.3 改变ActiveX选项板位图 479
15.3.1 Web上展开选项 480
15.3 Web上展开ActiveX控件与ActiveForms 480
15.3.2 Web上展开 482
15.4 小结 483
15.5 工作室 483
问与答 483
测验 484
练习 485
第16章 Delphi数据库结构 486
16.1 数据库基础 486
16.1.2 客户/服务器数据库 487
16.1.1 本地数据库 487
16.1.3 单级、两级和多级数据库结构 488
16.2 Borland数据库引擎 488
16.2.1 BDE驱动程序 489
16.2.2 BDE别名 489
16.2.3 Delphi的内部数据库 489
16.2.4 SQL链接 490
16.3 Delphi数据库组件 490
16.3.1 TDataSet类 492
16.3.2 Table组件 496
16.3.3 Query组件 501
16.3.4 StoredProc组件 504
16.3.5 UpdateSQL组件 505
16.3.6 DataSource组件 506
16.3.7 Session组件 506
16.3.8 Database组件 506
16.3.9 BatchMove组件 508
16.3.10 TField组件 509
16.5 创建BDE别名 512
16.5.1 用BDE管理程序创建别名 512
16.4 客户/服务器数据库组件 512
16.5.2 通过代码创建别名 513
16.6 小结 513
16.7 工作室 514
问与答 514
测验 514
练习 515
第17章 创建数据库窗体 516
17.1 数据库窗体向导 516
17.1.1 使用数据库窗体向导创建简单的窗体 516
17.1.3 创建主要/明细窗体 520
17.1.2 新窗体的作用 520
17.2 手工创建数据库窗体 522
17.3 进一步考察数据组件 524
17.3.1 数据组件的共性 524
17.3.2 DBGrid组件 524
17.3.3 DBNavigator组件 525
17.3.4 DBText组件 525
17.3.5 DBEdit组件 525
17.3.8 DBListBox 和DBCombBox组件 526
17.3.9 DBCheckBox组件 526
17.3.7 DBLmage组件 526
17.3.6 DBMemo组件 526
17.3.10 DBRadioGroup组件 527
17.3.11 DBLookupLisBox和DBLookupComboBox组件 527
17.3.12 DBRichEdit组件 527
17.3.13 DBCtrlGrid组件 527
17.3.14 其他数据组件 528
17.4 小结 528
测验 529
17.5 工作室 529
问与答 529
练习 530
第18章 创建数据库应用程序 531
18.1 非可视化数据库程序设计 531
18.1.1 读数据库 531
18.1.2 用代码创建数据库 534
18.2 使用数据模块 541
18.2.2 向数据模块中添加内容 542
18.2.1 建立一个样本数据模块 542
18.2.3 运行数据模块 543
18.3 创建报表 544
18.3.1 QuickReport(快速报表)综述 544
18.3.2 手工创建报表 546
18.3.3 方便快捷创建报表 548
18.4 展开(Deploying)Delphi数据库应用程序 548
18.5 小结 549
18.6 工作室 549
问与答 549
练习 550
测验 550
第19章 创建和使用DLL 551
19.1 DLL概况 551
19.1.1 什么是DLL 551
19.1.2 为什么要用DLL 552
19.2 DLL单元剖析 554
19.3 编写DLL的基础知识 555
19.3.1 DLL中的函数和过程 555
19.3.2 exports关键字 556
19.3.3 使用DLLProc 557
19.4 加载DLL 559
19.4.1 静态加载 559
19.4.2 动态加载 559
19.5 调用DLL中的函数和过程 560
19.5.1 使用静态加载时的调用 560
19.5.2 调用动态加载的函数和过程 561
19.6 用对象库创建DLL工程 562
19.7 使用DLL窗体 567
19.7.1 编写包含窗体的DLL 567
19.7.2 调用DLL中的MDI窗体 570
19.8 使用DLL资源 571
19.8.2 运用资源DLL 572
19.8.1 创建资源DLL 572
19.9 小结 573
19.10 工作室 573
问与答 573
测验 574
练习 575
20.1 创建新组件 576
20.1.1 新组件对话框 576
第20章 创建组件 576
20.1.2 创建FlashingLabel组件 578
20.1.3 Register(注册)过程 579
20.2 组件属性和方法 579
20.2.1 属性 580
20.2.2 为组件创建方法 584
20.3 为TFIashingLabel添加功能 584
20.3.1 类声明 588
20.3.2 发布段 588
20.3.3 实现段 589
20.3.4 SetFlashRate过程 589
20.4 测试组件 590
20.3.5 ComponentState属性 590
20.5 添加组件到组件选项板 592
20.5.1 把定制位图加到组件选项板按钮上 593
20.6 编写组件事件 594
20.6.1 事件概述 595
20.6.2 覆盖基类事件 599
20.7 汇总 600
20.9 工作室 606
问与答 606
20.8 小结 606
测验 607
练习 607
第21章 Delphi与C++Builder 609
21.1 Delphi与C++Builder的相似之处 609
21.1.1 IDE(集成开发环境) 609
21.1.2 可视化组件库 610
21.1.3 窗体文件 611
21.1.4 程序包 611
21.2 Delphi与C++Builder的区别 611
21.2.3 IDE 612
21.2.2 文件扩展名 612
21.2.1 语言 612
21.2.4 Code Editor 613
21.2.5 代码浏览器 613
21.2.6 VCL增强型 613
21.2.7 C++Builder可以编译Pascal单元 614
21.2.8 ActiveX支持 614
21.2.9 Delphi编译速度更快,而生成的执行文件更小 614
21.3 从Delphi到C++Builder的转换 614
21.3.1 复制Delphi窗体 615
21.3.2 代码转换 616
21.3.3 重用窗体 619
21.4 小结 620
21.5 工作室 620
问与答 620
测验 621
练习 621
第三篇 回顾 622
第22章 附加内容:建立Inetrnet应用程序 623
22.1 Delphi 中的Internet组件 623
22.2.1 谁还需要另一个浏览器 624
22.2 建立Web浏览器 (Browser) 624
22.2.2 建立浏览器的第一步 625
22.2.3 增加进度指示器 626
22.2.4 收尾工作 627
22.3 把Internet Explorer用作ActiveX控件 632
22.4 发送邮件 633
22.5 展开Internet应用程序 635
测验 636
问与答 636
22.7 工作室 636
22.6 小结 636
练习 637
附录A 测验题答案 638
第1章 638
第2章 639
第3章 639
第4章 640
第5章 641
第6章 642
第8章 643
第7章 643
第9章 644
第10章 645
第11章 646
第12章 646
第13章 647
第14章 648
第15章 649
第16章 649
第17章 650
第18章 651
第19章 652
第20章 652
第21章 653
第22章 654
附录B Delphi互联网资源 655
INPRISE公司 655
商业Web站点 655
用户Web站点 655
新闻组 656
出版物 656