引言 1
安装 1
第1章 窗体 1
1.1 使窗体自动地出现在应用程序中 3
1.2 在运行期间从头创建一个窗体 5
1.3 拖动一个无标题的窗口 9
1.4 为窗体设置最大最小尺寸 12
1.5 在窗体中使ENTER键发挥像TAB键一样的作用 14
1.6 在MDI父窗体上绘制一个有意思的背景 17
1.7 定制带图示的窗口标题栏 24
1.8 询问用户是否真的想要关闭窗体 31
1.9 在程序开始运行时显示一个醒目的屏幕 33
1.10 显示具有自己的风格的对话框 36
第2章 标准组件和类 41
2.1 使用String类 42
2.2 使用带有Set值的参数 54
2.3 创建一个最符合用户输入的Combo框 59
2.4 使用拖放技术把条目从一个列表框移到另一个列表框 62
2.5 为列表框增加水平滚动框 66
2.6 为列表框增加图像 68
2.7 创建Windows95风格的滚动栏 70
2.8 创建多页对话框 72
2.9 创建多屏状态栏 78
第3章 文本控件 81
3.1 创建简单的字处理器 82
3.2 在自己的字处理器中增加Search 和Replace函数 89
3.3 在自己的字处理器中使用不同字体 92
3.4 在自己的字处理器中增加Cut和Faste 97
3.5 在自己的字处理器中完成Undo任务 100
3.6 创建右对齐编辑框 104
3.7 创建字体选择组合框 106
3.8 限制文本输入特定的字符 108
第4章 鼠标和菜单 112
4.1 创建和使用自己的鼠标光标 113
4.2 运行时修改菜单 115
4.3 在菜单中显示文件历史列表 121
4.4 在菜单中放入图片 129
4.5 在菜单中创建和使用用户定义的确认符 132
4.6 在菜单中使用不同的字体 135
4.7 使用弹出菜单 141
第5章 图形 144
5.1 在窗体上用画布绘图 146
5.2 可视化笔方式的设置 152
5.3 用鼠标画一个边界框 156
5.4 在图片中创建热点 159
5.5 从资源文件中载入图标并在窗体中显示 163
5.6 生成动画 167
5.7 从一幅图片淡出另一幅图片 175
5.8 在背景上进行文本的淡入淡出 183
5.9 用真正的笛卡尔坐标系统绘图 189
5.10 把系统颜色转化为实际颜色 194
5.11 在透明的背景上绘制位图 198
5.12 自动调整窗体以适应图片与自动调整图片以适应窗体 201
5.13 编写一个屏幕保护程序 203
第6章 环境与系统 211
6.1 像在文件管理器中那样列出文件 213
6.2 在应用中运行另一个程序 215
6.3 重新启动Windows 219
6.4 在整个硬盘中搜索一个文件 221
6.5 取消Windows的屏幕保护 227
6.6 防止程序的多个实例被装入内存 229
6.7 确定Windows处于哪个目录下 231
6.8 确定系统还有多少可用的内存 233
6.9 确定正在运行的Windows的版本 238
6.10 在Windows的托盘中显示图标 240
6.11 寻找并且设置环境变量 245
6.12 拖放文件 248
6.13 确定哪个程序正在运行 252
6.14 确定哪个硬盘驱动器可用以及有多少硬盘空间 254
第7章 外设 269
7.1 通过调制解调器进行话音拨号 270
7.2 通过串口发送和接收数据 272
7.3 检测软驱或CD-ROM驱动器中是否已插入了盘片 289
7.4 确定显示器或打印机的色彩能力 293
第8章 INTERNET 298
8.1 生成一个基本的HTML浏览器 299
8.2 通过Internet发送邮件 302
8.3 生成一个基本的CGI应用 306
8.4 生成一个基本的ISAPI应用 314
8.5 通过Internet实现两个程序间的通信 320
第9章 多媒体 328
9.1 检测系统中是否配置了声卡 329
9.2 播放波形和MIDI文件 334
9.3 在主窗体中播放视频文件 338
9.4 播放音频CD 341
9.5 在应用程序中检测和使用游戏操作杆 349
9.6 显示JPEG和GIF文件 356
第10章 打印 360
10.1 打印纯文本文档 361
10.2 允许用户选择打印页面范围 367
10.3 保持打印页面与屏幕显示一致 370
10.4 显示打印联机状态 372
10.5 利用“快速报告”工具来创建一个简单的报告 380
第11章 数据库 385
11.1 察看数据库的内容 387
11.2 使用SQL察看一个数据库的内容 390
11.3 利用VCL组件自动显示和编辑数据库信息 394
11.4 利用VCL组件浏览数据库 398
11.5 搜索数据库 401
11.6 在不使用data-aware控件时编辑一个数据库 404
11.7 在设计期间控制数据库表格显示的布局 407
11.8 在运行期间控制数据库表格显示的布局 409
11.9 在相关数据库中使用查找控件 413
11.10 在运行期间创建一个BDE别名 417
第12章 线程 420
12.1 创建一个独立的执行线程 421
12.2 从后台线程中访问屏幕 424
12.3 在多个线程之间安全地共享数据 428
12.4 在多个线程之间安全地共享有限的资源 435
12.5 使一个线程等待一个事件发生 442
12.6 启动具有不同优先级的线程 446
12.7 在一个后台线程中运行一个查询 449
第13章 对象的链接与嵌入(OLE) 454
13.1 在应用中使用拖放技术 455
13.2 在应用中使用OLE对象 462
13.3 创建一个可以被另一个应用通过OLE Automation控制的应用 470
13.4 通过OLE Automation控制另一个应用 474
第14章 异常 478
14.1 在异常发生时显示一个定制的消信 478
14.2 创建一个定制的异常 482
14.3 捕捉异常 486
14.4 处理硬件异常 490
15.1 从一个现有的VCL类创建一个定制组件 494
第15章 定制组件 494
15.2 在设计期间使用定制组件 500
15.3 从头创建一个定制组件 503
第16章 洗炼的应用 518
16.1 创建一个具有专业风格的About框 519
16.2 创建并且显示气球式提示和状态栏提示 525
16.3 创建可以被翻译为另一种语言的窗体 527
16.4 利用注册来保存应用的配置信息 529
16.5 使用户可以定制屏幕标注 533
第17章 秘密和技巧 539
17.1 计算一个数值表达式 540
17.2 创建一个像Visual Basic中一样的控件数组 547
17.3 将一个控件作为文本进行编辑 552
17.4 观察一个.DFM文件的内容 555
17.5 创建一个DLL 556
17.6 使用用Delphi编写的模块 566
附录A 参考文献 568
附录B GUN通用公共许可权(GPL)和库通用公共许可权(LGPL) 569