第1章 界面设计 1
案例1.1 制作不可移动的窗体 1
案例1.2 制作圆形窗体 2
案例1.3 制作不可见窗体 3
案例1.4 制作始终位于最上层的窗体 4
案例1.5 为窗体创建动画光标 6
案例1.6 使窗体始终最小化 7
案例1.7 使窗体始终最大化 8
案例1.8 在系统菜单中添加自定义菜单项 9
案例1.9 确定一个窗口是否为Top Level窗口 11
案例1.10 自定义Memo组件的边界 13
案例1.11 用鼠标在窗体客户区拖曳窗体 14
案例1.12 制作闪烁的窗口 15
案例1.13 将窗体大小限定在一定范围内 17
案例1.14 制作透明窗体 18
案例1.15 获取任务栏的尺寸 19
案例1.16 使窗体大小不依赖于屏幕分辨率 21
案例1.17 制作Splash窗口 22
案例1.18 制作带背景的窗体 24
案例1.19 给窗体边框“镶边” 26
案例1.20 制作半透明窗体 29
第2章 系统编程 34
案例2.1 隐藏任务栏 34
案例2.2 防止一个程序同时运行多次(一) 36
案例2.3 防止一个程序同时运行多次(二) 39
案例2.4 限制鼠标指针的移动区域 41
案例2.5 模拟鼠标的行为 44
案例2.6 在程序中打开或关闭IE窗口 49
案例2.7 使程序开机后自动运行 55
案例2.8 在自己的程序中关闭其他程序 56
案例2.9 获取驱动器类型信息 60
案例2.10 操作INI文件 62
案例2.11 从文件中读取超过255个字符的行 66
案例2.12 获取文件的日期信息 67
案例2.13 检测软盘或光盘是否变化 71
案例2.14 检测磁盘容量 73
案例2.15 检测驱动器是否准备就绪 74
案例2.16 获取Windows和System目录 76
案例2.17 操作临时文件 77
案例2.18 获取Windows的版本信息 79
案例2.19 获取CPU信息 83
案例2.20 获取内存信息 86
案例2.21 获取系统颜色配置信息 88
案例2.22 获取或更改计算机名 90
案例2.23 获取用户注册信息 92
案例2.24 重启或关闭计算机 95
案例2.25 打开控制面板 97
案例2.26 启动屏幕保护程序 101
案例2.27 隐藏或显示桌面上的图标 102
案例2.28 获取窗口标题栏中的文字 104
案例2.29 使应用程序不出现在任务栏上 106
案例2.30 创建自己的程序组 107
第3章 Shell API编程 111
案例3.1 实现文件的自动打开和超链接 111
案例3.2 复制、移动或删除整个目录 114
案例3.3 编写托盘程序 120
案例3.4 拖放文件 128
案例3.5 将文件加入到“开始”菜单的“文档”中 131
案例3.6 格式化磁盘 133
案例3.7 抽取程序的关联图标 136
案例3.8 获取Windows的若干特殊文件夹路径(一) 138
案例3.9 获取Windows的若干特殊文件夹路径(二) 141
案例3.10 为程序创建快捷方式 146
案例3.11 将文件类型与应用程序相关联 149
案例3.12 定位包含指定文件的目录 153
案例3.13 获取文件信息 160
第4章 组件编程 166
案例4.1 实现.dfm文件和.txt文件的互相转换 166
案例4.2 用剪贴板复制和粘贴图像 171
案例4.3 在ListBox和ComboBox组件中实现自动搜索 173
案例4.4 使程序能在循环中响应界面操作 176
案例4.5 动态创建主菜单和菜单项 180
案例4.6 在StringGrid组件中删除整行 182
案例4.7 加速ListBox组件的填充和清空 186
案例4.8 加速TreeView组件的填充和清空 191
案例4.9 在StringGrid组件中设置只读栏 196
案例4.10 消除在Edit组件中按下回车键时的蜂鸣声 198
案例4.11 运行时拖动组件 199
案例4.12 在SpeedButton组件上使用图标 201
案例4.13 为ListBox组件增加水平滚动条 203
案例4.14 获取RichEdit组件中光标所在的行号 205
第5章 图像编程 207
案例5.1 将图像从BMP格式转换为JPG格式 207
案例5.2 将图像从JPG, ICO, EMF,WMF格式转换为BMP格式 209
案例5.3 将图像从JPG, ICO, WMF,BMP格式转换为EMF格式 211
案例5.4 转换彩色位图为灰度图 212
案例5.5 提高对位图像素的访问速度 217
案例5.6 将文本转换成图像 219
案例5.7 实现TColor值与RGB值的互相转换 222
案例5.8 实现多种渐变色 226
案例5.9 实现图像的翻转 231
案例5.10 创建JPEG图像的缩略图 234
案例5.11 用双缓冲实现无闪烁动画 238
第6章 多媒体编程 243
案例6.1 检测/设置CD-ROM是否自动运行 243
案例6.2 自动弹开/关闭CD-ROM 245
案例6.3 获取Audio-CD的序列号 247
案例6.4 检测声卡是否安装 251
案例6.5 制作能播放MIDI、WAV和AVI文件的播放器 252
案例6.6 实现图像之间的平滑过渡 254
案例7.1 获取本机机器名、IP地址及其类别 262
第7章 网络编程 262
案例7.2 获取本机MAC地址 265
案例7.3 实现拨号连接 270
案例7.4 实现Ping操作 271
案例7.5 检测局域网中某台机器是否在网上 278
案例7.6 在局域网中通过计算机名获取其IP地址 280
案例7.7 通过IP地址获取计算机名 282
案例7.8 获取Windows NT/2000网络中的所有工作组(一) 284
案例7.9 获取Windows NT/2000中的所有工作组(二) 290
案例7.10 获取网络中指定工作组内的所有计算机 293
案例7.11 获取网络中指定计算机的共享资源信息 296
案例7.12 获取网络中某台计算机的磁盘空间 299
案例7.13 在网络中进行文件拷贝 302
案例7.14 实现网络驱动器的映射和断开 304
案例7.15 Windows NT/2000中利用API发送消息 307
案例7.16 用NMUDP组件实现远程控制 312
案例7.17 用NMHTTP组件将域名转换为IP地址 332
案例7.18 在程序中加入网上的图片 335
案例7.19 用NMMsg、NMMSGServ组件收发消息 336
案例7.20 用NMURL组件对URL数据进行编码和解码 342
案例7.21 实现MIME、UUEncode编码与解码 344
案例7.22 编写简单的网络聊天室 349
案例7.23 建立和使用Cookie 357
案例7.24 在Windows NT/2000下得到DNS服务器的域名及IP地址 360
案例7.25 获取网络中指定计算机所属工作组及其MAC地址 362
案例7.26 获取路由、默认网关以及网卡信息 365
案例7.27 获取与远程机连接时所经过的路由信息 367
第8章 数据库编程 370
案例8.1 在Delphi中进行数据集过滤 370
案例8.2 在数据库中存取Word文档 372
案例8.3 处理数据库中日期型字段的显示与输入 376
案例8.4 动态改变DBGrid组件的颜色 382
案例8.5 定制BDE驱动程序以精简Delphi数据库应用系统 385
案例8.6 解决打开DBF表时的“Index not found…”错误 387
案例8.7 优化、反删除dBase或FoxPro数据表 389
案例8.8 在一个DBGrid组件中显示多个数据表数据 396
案例8.9 实现多种数据库的关联查询 398
案例8.10 使用标准SQL语句实现字段数据的模糊查询 400
案例8.11 通过注册表在程序中增加数据源 402
案例8.12 存取图像数据 405
案例8.13 用Delphi进行数据库之间的转换 411
案例8.14 自动登录数据库 415
案例8.15 自动检测、建立数据库别名和数据表 416
案例8.16 在程序中动态地建立和使用别名(一) 421
案例8.17 在程序中动态地建立和使用别名(二) 423
案例8.18 在程序中动态地建立和使用别名(三) 425
案例8.19 在程序中动态地建立和使用别名(四) 427
案例8.20 开发Web Mail程序 429