第1章 开发环境 1
1.1 环境设置 2
0001 如何定制工具栏 2
0002 如何定制组件面板 2
0003 如何定制代码编辑器 3
0004 保存自定义开发环境桌面 4
1.2 组件安装 4
0005 安装ActiveX组件 4
0006 安装不同类型的第三方组件 5
0007 在Delphi中加载QReport报表组件 7
1.3 创建DLL文件 8
0008 生成一个DLL文件 8
0009 调用DLL文件 8
1.4 窗体相关操作 9
0010 将组件置前/置后 9
0011 如何锁定窗体中的组件 9
0012 如何改变窗体上的网格大小 10
0013 组件的选取 10
0014 改变窗体Hint背景色 11
0015 以原始风格显示控件的滚动条 11
0016 使用快捷键打开对象观察器中的“...”按钮 11
1.5 其他相关应用技巧 11
0017 安装合适的Delphi版本 11
0018 熟练掌握Delphi中的菜单项 12
0019 构成Delphi项目的主要文件 12
0020 如何在程序中调用帮助文件 12
第2章 语言基础 17
2.1 基础语言 18
0021 如何对代码进行注释 18
0022 Exit语句的使用 18
0023 有效地使用Self对象 19
0024 声明局部变量、类变量和全局变量 19
0025 有效利用条件语句和嵌套条件语句 20
0026 有效利用循环语句和嵌套循环语句 21
0027 使用GoTo跳转语句 21
0028 有效使用Case Else语句 22
0029 保证数组循环的安全性 22
0030 获取枚举值列表 23
0031 使两个变量位于同一个地址空间 23
0032 利用动态数组作为函数参数 24
0033 调用Register过程的注意事项 24
0034 在Delphi中禁止使用result 24
0035 如何在Delphi中录制代码 24
0036 如何编译器会提示数组太大时的处理技巧 25
0037 如何对超大数字进行计算 25
0038 强类型的定义及使用 25
2.2 类、函数、重载 25
0039 在函数的定义中正确使用var 25
0040 如何实现类的转形 26
0041 如何实现数据加密与解密算法 27
0042 如何继承父类的方法 27
0043 如何实现函数重载 28
0044 类中多态的应用 28
0045 将函数作为参数进行调用 30
2.3 参数与指针 30
0046 通过指针读写数据 30
0047 在过程中使用常量参数 31
0048 在过程中使用数组参数 31
0049 在过程中使用默认参数 31
2.4 其他 32
0050 如何在字符串中使用单引号 32
0051 结构对象的定义与使用 32
0052 使用数组为TlistView组件动态创建字段 33
0053 解决程序的死锁问题 34
0054 怎样实现接口委托 34
0055 在Delphi中使用汇编 35
0056 为程序设置版本和帮助信息 36
0057 动态链接库的创建与调用 36
0058 String类型和Pchar类型的用法和区别 36
0059 如何捕获异常 37
0060 TStrings与TStringList的使用 37
0061 如何实现窗体文件转换 37
第3章 程序算法 39
3.1 计算类算法 40
0062 如何计算1~100的阶乘和 40
0063 如何实现最大公约数 40
0064 如何实现最小公倍数 41
0065 如何实现裴波纳契数列求和 42
0066 如何实现百钱百鸡算法 42
0067 如何实现哥德巴赫猜想 43
0068 如何实现韩信点兵 44
0069 求水仙花数的算法 44
0070 求1000以内的完数 45
0071 如何计算x的y次方 46
3.2 复杂计算类算法 46
0072 如何实现金额大小写转换的算法 46
0073 如何计算时钟的指针位置 47
0074 如何计算汉字笔划 48
0075 如何计算两个日期之间的天数、周数、分钟数 49
0076 如何实现数字斜塔 50
0077 如何实现杨辉三角 51
0078 如何实现CRC算法 52
0079 如何将B转换成GB、MB和KB 52
3.3 判断及转换类算法 53
0080 判断IP地址是否合法的算法 53
0081 判断身份证是否合法的算法 54
0082 判断素数的算法 55
0083 将字符串转换成Unicode格式 56
3.4 排序及分组类算法 56
0084 利用回溯法将一组数平均分成两组 56
0085 利用冒泡法对数字进行排序 58
0086 用回溯法找出n个自然数中取r个数的所有组合 58
0087 0~N位数的任意组合 59
0088 在数组中快速查找近似值 60
0089 实现直接插入法排序 61
第4章 函数应用 63
4.1 字符串处理函数 64
0090 使用Uppercase函数将小写字母转换为大写字母 64
0091 使用Lowercase函数将大写字母转换为小写字母 64
0092 使用Copy函数获取一个字符串的子串 64
0093 使用LeftStr函数从左边取得指定个数的字符串 65
0094 使用RightStr函数从右边取得指定个数的字符串 65
0095 使用Length函数取得一段字符串的长度 65
0096 使用Pos函数返回子字符串第一次出现的索引值 66
0097 使用Quotedstr函数返回字符串的引证串 66
0098 使用Trim函数删除字符串的首尾空格 66
4.2 数学计算函数 67
0099 使用Abs函数返回指定数值的绝对值 67
0100 使用Mod函数计算1~10之间的奇数和 67
0101 使用Div函数做整除操作 68
0102 使用DivMod函数返回两个操作数相除的商和余数 68
0103 使用Power函数返回底数的任何次幂 69
0104 使用Round函数将实数四舍五入为整数 69
0105 使用Sqr函数计算指定数的平方 70
0106 使用Mean函数计算平均数 70
0107 求最大浮点数和最小浮点数 71
4.3 序数函数 72
0108 使用Odd函数改变StringGrid组件的奇偶行颜色 72
0109 使用Pred函数获取顺序类型表达式的前驱 72
0110 使用Succ函数获取顺序类型表达式的后继 73
4.4 进制转换相关函数 73
0111 如何将二进制转换为八进制 73
0112 如何将二进制转换为十进制 75
0113 如何将二进制转换为十六进制 76
0114 如何将十进制转换为二进制 77
0115 如何将十进制转换为十六进制 78
0116 如何将十六进制转换为十进制 79
4.5 类型转换函数 80
0117 使用IntToHex函数将整数转换为十六进制数 80
0118 使用Int函数返回实数的整数部分 80
0119 使用IntToStr函数将整数转换为字符串类型 80
0120 使用StrToInt函数将字符串转换成整数 81
0121 使用StrToBool函数将字符串转换为布尔类型 81
4.6 对话框函数 81
0122 使用InputBox函数显示输入对话框 81
0123 使用MessageDlg函数显示不同风格的对话框 81
0124 使用CreateMessageDialog函数创建消息对话框 82
0125 如何在指定的位置显示信息框 82
0126 使用ShowException函数显示一个异常信息 82
4.7 异常处理函数 83
0127 将错误编号转换为错误信息字符串 83
0128 使用ExceptAddr函数获得异常被抛出的地址 83
0129 格式化异常处理信息 84
4.8 图形图像相关函数 85
0130 将TColor类型的颜色值转换为RGB值 85
0131 使用Bounds函数获得某矩形的TRect 86
0132 从已有的位图上创建位图 86
0133 使用Frame3D过程在画布上创建3D效果 87
4.9 文件操作的相关函数 87
0134 使用CopyFile函数复制文件 87
0135 使用CreateDir函数创建一个目录 88
0136 使用FileCreate函数创建一个图形文件 88
0137 使用GetCurrentDir函数返回当前目录 89
0138 在指定路径中搜索指定的文件 89
0139 使用FileExists函数判断指定文件是否存在 90
0140 使用FileGetAttr函数返回文件的属性 90
0141 使用FileGetDate函数返回文件的修改日期 90
0142 使用FileWrite函数将缓冲区中的内容写入文件 91
4.10 其他函数 91
0143 使用Random函数产生7个随机数 91
0144 使用DiskFree函数返回磁盘驱动器的剩余空间 91
0145 如何使用Printer函数 92
0146 使用SetPriner函数修改打印机信息 93
0147 使用BeginThread函数产生线程 94
0148 使用EndThread过程终止一个线程 95
0149 使用ForegroundTask函数检测线程是否运行 96
第5章 字符与字符串处理技术 99
5.1 ASCII码与编码转换 100
0150 如何获得汉字的区位码 100
0151 通过区位码获取汉字 100
0152 根据ASCII码获得字母 101
0153 获得字母的ASCII码 101
5.2 字符中的转换 101
0154 如何将数字转换成字符串 101
0155 如何将字符串全部大写 102
0156 如何将字符串全部小写 102
0157 如何将字符串中的任意字符转换成大写 103
0158 如何将字符串中的任意字符转换成小写 103
0159 如何将字符串首字母大写 104
5.3 字符串的相关判断 105
0160 判断某一字符是否在字符串中 105
0161 判断字符串是由数字、大写字母或小写字母组成 105
0162 判断字符串中的某一字符是否大写 106
0163 判断字符串中是否有小写字母 107
0164 判断字符串中是否有指定的字符 107
0165 判断字符是否可以转换成整数 108
0166 判断字符中是否有汉字 108
0167 判断字符中是否有双字节 109
0168 判数输入的字符串是否为整数 109
5.4 字符串的个数问题 110
0169 获取文字中英文单词的个数 110
0170 如何统计两个子字符串之间的字符的个数 111
0171 判断字符在字符串中出现的个数 111
0172 在语句中查找汉字的个数 112
0173 如何统计中英文个数 112
5.5 字符串的其他操作 113
0174 返回指定字符串的起始位置 113
0175 获得汉字的拼音简码 113
0176 如何将字符串翻转 114
0177 截取指定位置的字符串 115
0178 清除字符串中指定的字符 115
0179 如何实现文本的加密与解密 116
0180 提取字符串中指定子字符串后的字符串 117
0181 替换指定的字符串 117
0182 在文本中删除指定的汉字或句子 118
0183 指定符号分割字符串 119
0184 如何使用随机密码和字符串 120
第6章 日期和时间 121
0185 获得系统当前时间 122
0186 获得系统当前日期 122
0187 将日期时间格式化为指定格式 122
0188 计算两个日期之间相差的天数 123
0189 根据指定日期返回星期几 123
0190 将日期转换为字符串 124
0191 判断日期是否改变 124
0192 判断字符串是否为日期或时间 125
0193 获得指定月的最后一天 127
0194 在指定的日期上加上3月 127
0195 实现倒计时功能 128
0196 判断指定年份是否为闰年 129
0197 调用系统设置日期对话框 129
0198 将秒数转化成hh:mm:ss格式 129
0199 修改操作系统日期 130
0200 获取全球标准时间 130
第7章 数据处理技术 133
7.1 组件数据处理技术 134
0201 让两个文本框中的内容同时改变 134
0202 格式化DataGrid表格中的数据 134
0203 控制文本框只能录入数字 135
0204 如何在DataGrid中嵌入LookupComboBox 135
0205 在DBGrid中设置不滚动的列 136
0206 如何在DBGrid中实现复制、粘贴功能 137
0207 在DBGrid中将选中的多行删除 137
0208 在DataGrid中如何使标题文字居中 138
0209 如何把ListBox中的内容拖曳到另一个ListBox中 139
0210 把DBGrid中的数据赋给数组 139
0211 如何获取DataGrid单元格中的内容 140
0212 如何锁定文本框中的文本 141
0213 如何设置光标到文本框的末尾 141
0214 如何改变表格列的矩形区域颜色 142
0215 控制在文本框中只能输入两位小数 143
0216 如何把选择的文件图标显示在列表中 143
0217 根据表格中的数据长度自动调整表格宽度 144
7.2 ADO数据处理技术 145
0218 如何把ADO中的数据导入到ListBox中 145
0219 使用SQL语句保存数据 146
0220 使用赋值方式保存数据 147
0221 当ADO循环删除数据时需要注意的问题 147
0222 把Excel中的数据保存到数据库中 147
0223 怎样弹出ConnectionString设置页 148
0224 利用ADO获取DELETE后所影响的记录数 148
7.3 业务实现数据处理技术 149
0225 随机产生中奖号码 149
0226 使用快捷键保存数据 150
0227 密码只允许输入8位或超过8位 150
0228 如何获取汉字拼音简码 151
0229 根据用户输入需求自动调整输入法 152
0230 根据生日自动计算年龄 153
0231 实现找零功能 153
0232 设计带记忆的数据录入窗口 154
0233 在窗体关闭时提示有未保存的数据 155
0234 设置只允许3次密码错误 156
0235 如何读取Word中的文本 156
0236 通过身份证号获取年龄 157
0237 如何实现一个应用程序只能打开一个进程 158
7.4 其他数据处理技术 159
0238 对计算结果四舍五入 159
0239 获取一个字符的ASCII值 159
0240 判断字符串中是否有文字符 160
0241 如何从字符串中提取数字 160
0242 判断内容是否为日期 161
0243 使字符串显示为自定义的格式 161
0244 实现拼音大小写转换 162
0245 怎样实现数据输入为空提示 162
0246 读取Memol中指定行的文本信息 163
0247 自动调节ComboBox列表宽度 164
0248 如何转换数据库表为CSV文件格式 164
0249 删除文本文件中的多余空格 165
0250 创建和使用资源文件 166
第8章 窗体与界面设计 169
8.1 窗体标题栏控制 170
0251 如何实现标题栏闪烁的窗体 170
0252 如何实现不可移动的窗体 170
0253 如何在不使用标题栏的情况下移动窗体 170
0254 使窗体标题栏文字右对齐 170
0255 在窗体标题栏上添加按钮 171
0256 取消窗体标题栏的关闭按钮 172
0257 如何实现闪动的标题栏文字 172
0258 怎样动态修改窗体图标 172
8.2 窗体的动态显示 173
0259 如何实现QQ窗体 173
0260 实现窗体的淡入淡出 173
0261 实现窗体的幻灯片效果 174
0262 实现窗体的伸展效果 174
0263 实现窗体的下拉效果 175
0264 以放大的圆形显示窗体 175
8.3 MDI窗体 176
0265 在MDI中显示动态窗体 176
0266 在MDI中真正关闭子窗体 176
0267 给MDI主窗体添加背景 176
0268 动态显示像MDI的子窗体 177
0269 打开MDI窗体时其他窗体会显示出来的原因 177
8.4 窗体的大小及位置 178
0270 控制窗体的最大化、最小化 178
0271 无标题栏时改变窗体的大小 178
0272 无标题栏最大化时不覆盖任务栏 178
0273 限制窗体的大小 179
0274 重定义去掉标题栏并最大化窗体 179
0275 使窗体一直居中 179
0276 控制窗体不可移动 180
0277 限制窗体的最大化 180
0278 使窗体自动居中 181
8.5 窗体的特殊形状 181
0279 实现窗体颜色渐变 181
0280 如何使窗体透明 182
0281 制作特殊形状的窗体 182
0282 为窗体增加边框 183
0283 显示圆角窗体 183
0284 制作多边形窗体 184
0285 以文字的形式显示窗体 185
0286 如何实现窗体半透明 185
0287 制作立体窗口阴影效果 186
8.6 工具栏、状态栏及下拉列表 187
0288 制作带历史信息的菜单 187
0289 制作可以拉伸的菜单界面 188
0290 制作类似于XP颜色的下拉页 188
0291 在系统菜单中添加菜单项 189
0292 在状态栏中放置其他组件 189
0293 改变下拉列表的文字颜色 190
8.7 窗体的特殊效果 191
0294 如何动态分割窗体 191
0295 如何将应用程序背景与桌面融合 191
0296 如何在屏幕最前面显示滚动字幕 192
0297 制作磁性窗体 193
0298 制作浮动窗口 194
0299 制作另类提示窗口 195
0300 将窗体放入Panel组件中 196
8.8 窗体的快速操作 197
0301 使窗体始终在最上面 197
0302 显示所有的可视化窗体 197
0303 关闭所有窗体 198
0304 关闭多余的窗体 198
8.9 窗体的调用方法 199
0305 在关闭窗体前显示提示对话框 199
0306 创建一个启动闪现窗口 199
0307 动态创建窗体 200
0308 动态创建窗体和释放窗体 200
0309 在显示主窗体前显示登录窗体 201
8.10 窗体相关操作的其他技巧 202
0310 无窗体的半透明控件 202
0311 修改提示字体及颜色 202
0312 在窗口中显示动态画布 202
0313 如何实现中英文切换 203
0314 在一个子窗体中获得另一个子窗体的组件信息 204
第9章 组件技术 205
9.1 优化组件外观 206
0315 利用TXPManifest组件美化程序界面 206
0316 使用Canvas美化列表项 206
0317 利用Canvas在Chart组件中画一幅图片 207
0318 如何为TListBox添加水平滚动条 207
0319 折行显示按钮标题 208
0320 为组件制作立体效果 208
0321 利用ActiveX控件实现Office助手 209
9.2 菜单、工具栏、状态栏 209
0322 在PopupMenu中动态加入新菜单 209
0323 在状态栏中显示进度条组件 210
0324 为工具栏添加背景图片 210
9.3 文本框及列表框的应用技巧 211
0325 使TEdit组件获取焦点后将文本全部选中 211
0326 使TEdit组件获取焦点时改变文本框颜色 211
0327 查找列表框中的选项 212
0328 在ComboBox组件中显示QQ头像 212
0329 为Edit组件添加列表选择框 213
0330 在ListBox中显示位图 214
0331 获取TMemo中的可见行数 214
0332 如何在Memo组件上实现光标定位 215
0333 控制Memo组件中的滚动条 216
9.4 数据感知控件应用技巧 217
0334 如何在DBGrid中显示不同的记录颜色 217
0335 单击DBGrid标题进行排序 218
0336 使DBGrid支持鼠标滚轮 218
0337 在DBGrid中添加静态字段 218
0338 在DBGrid中实现下拉列表 219
0339 改变DBGrid被选中时的颜色 220
0340 用TDBNavigator组件删除数据显示自定义信息 220
0341 使用Excel组件将数据导出为Excel格式 221
9.5 表格组件使用技巧 222
0342 将StringGrid中指定行的数据添加到Memo中 222
0343 使TStringGrid组件自动移动及增加行 223
0344 单击StringGrid列进行排序 224
9.6 TreeView组件使用技巧 225
0345 如何动态创建TreeView节点 225
0346 如何将TreeView中的节点全部选中 226
0347 将菜单项添加到Tree View中 226
0348 使TreeView组件与数据库关联 227
0349 应用TTreeView组件遍历磁盘目录 228
0350 在TreeView组件中实现拖曳操作 229
9.7 ListView组件使用技巧 229
0351 向TListView组件中添加项目 229
0352 删除ListView中的选项 230
0353 实现ListView滚动 230
0354 将数组中的数值遍历到ListView中 231
0355 ListView组件的高级应用 231
0356 使ListView的不同列显示不同颜色 232
0357 对ListView中的项目进行汇总 233
0358 单击列表标题进行排序 233
9.8 应用组件制作导航 234
0359 用ListView制作导航界面 234
0360 利用Panel组件制作QQ导航栏 235
9.9 其他组件使用技巧 237
0361 动态创建组件 237
0362 创建控件数组 237
0363 用组件来移动窗体 238
0364 实现组件的批量访问 238
0365 使同类组件进行同样的操作 239
0366 使用Ttrackbar组件改变画布颜色值 239
0367 设置TopAxis属性在图表上面显示标签 240
0368 动态向ImageList组件中添加图标 240
0369 设置DateTimePicker组件的外观颜色 241
0370 利用Timer组件显示当前系统时间 241
0371 获取用户在Month Calendar组件中选择的日期 242
0372 在Panel上播放视频文件 242
0373 Win3.1组件的综合应用 242
0374 制作一个信息上传控件 243
0375 使用Gauge组件制作启动程序 245
第10章 鼠标和键盘 247
10.1 鼠标和键盘 248
0376 鼠标和键盘在一定时间没有动作时关闭程序 248
0377 如何锁定鼠标和键盘 248
0378 如何实现键盘鼠标动作记录与回放 249
10.2 鼠标的相关操作 250
0379 将鼠标锁定在指定范围内 250
0380 模拟鼠标操作 251
0381 显示或隐藏鼠标 252
0382 获取鼠标按键状态 252
0383 获取窗口标题 253
0384 单击鼠标左键弹出右键菜单 253
0385 改变当前鼠标的样式 254
0386 模拟键盘的复制与粘贴 255
0387 如何定义自己的鼠标事件 255
0388 利用鼠标绘制矩形焦点 256
0389 将鼠标移动到指定控件 257
0390 ANI动画鼠标的制作 257
0391 自制动画鼠标 258
0392 获取鼠标滑轮的消息 258
0393 制作鼠标跟随 259
0394 利用鼠标滑轮查看组件中的数据 259
10.3 键盘的相关操作 260
0395 按回车键移动焦点 260
0396 如何屏蔽Win键 261
0397 如何控制键盘指示灯 261
0398 如何屏蔽Sleep和Wake Up键 262
0399 设置自己的热键 262
0400 用键盘钩子封锁Win dows热键 263
0401 如何用Esc键退出程序 263
0402 在TDBGrid中用回车键移至下一个字段 264
0403 用Esc键停止循环 264
0404 如何判断左右〈Shift〉按键 265
0405 替换一个键盘按钮 265
10.4 鼠标的其他应用技巧 266
0406 实现超级链接效果 266
0407 用鼠标隐藏显示窗口(仿QQ) 267
0408 获取鼠标的桌面坐标 267
0409 用鼠标双击TStatusBar时判断是哪一个Panels 268
0410 使Canvas上直线的一个端点跟着鼠标跑 268
第11章 文件与文件管理 271
11.1 文件及文件夹的创建和移动 272
0411 创建并删除文件 272
0412 如何移动文件 272
0413 将文件放入回收站 273
0414 复制文件夹到其他路径中 273
0415 用API函数进行文件的复制 274
0416 用内存块复制文件 275
0417 用文件流对文件进行复制 275
11.2 文件的打开及读取 276
0418 打开指定格式的文件 276
0419 获取文件中指定符号中的字符串 277
0420 如何输出文本内容 277
0421 根据文件名中的部分名称打开该文件 278
0422 怎样合并文件 280
0423 创建和使用资源文件 281
11.3 文件及文件夹的相关属性 281
0424 如何获取文件的访问时间 281
0425 获取文件的剩余空间 282
0426 获取文件修改时间 283
0427 怎样修改文件属性 283
11.4 文件及文件夹的相关目录 285
0428 得到系统当前目录 285
0429 改变当前目录 285
0430 获取System目录 286
0431 获取Windows目录 286
0432 获取临时文件的目录 287
11.5 文件属性的相关判断 287
0433 判断文件是否被使用 287
0434 判断文件是否存在 288
0435 判断文件是否为文本文件 288
0436 判断文件名是否有效 289
11.6 文件及文件夹的遍历 289
0437 如何查询文件 289
0438 提取文件夹中的文件 291
0439 遍历文件夹下的所有文件(包含子文件夹) 291
11.7 INI文件 292
0440 如何读写INI文件 292
0441 利用INI文件查看工作日志 294
0442 用INI文件创建菜单 295
11.8 文件的其他应用技巧 296
0443 调用帮助文件 296
0444 对文件进行比较 296
0445 更改文件名称 297
0446 字符网格和文本间转换 297
第12章 磁盘管理 299
12.1 获取磁盘的相关信息 300
0447 获取磁盘总空间 300
0448 获取光盘的盘符 300
0449 获取系统盘符 301
0450 获得光盘的卷标 301
0451 获取磁盘卷标 302
0452 获取磁盘编号 302
0453 获取磁盘详细信息 303
0454 获取硬盘序列号 303
0455 获取驱动器类型 304
0456 获取驱动器列表 304
0457 获取磁盘的文件系统名称、长度及系统标记 305
0458 获取移动硬盘 305
12.2 磁盘设置与操作 306
0459 将文件存到磁盘中 306
0460 如何实现盘格式化 307
0461 打开磁盘时先弹出文本文件 308
0462 怎样进行磁盘碎片整理 308
12.3 磁盘监控与分析 308
0463 判断光驱中是否有光盘 308
0464 如何打开和关闭光驱 309
0465 判断软驱中是否有软盘 310
0466 判断磁盘是否存在 311
第13章 图形图像技术 313
13.1 基本操作 314
0467 对窗体进行刷新 314
0468 在TImage组件上显示透明文字 314
0469 清空TImage组件中的图片 314
0470 生成两个颜色的中间色 315
0471 改变文字的背景颜色 315
13.2 绘制图形 316
0472 制作空心文字 316
0473 如何实现十字光标定位 316
0474 制作旋转的文字 317
0475 波形图的绘制 318
0476 制作动画背景的窗体 319
0477 如何涂抹窗体 320
0478 如何万花筒 320
13.3 图片格式转换 321
0479 ICO转换成位图(BMP) 321
0480 JPG转换成位图(BMP) 322
0481 WMF转换成位图(BMP) 323
0482 位图(BMP)转换成JPG 323
0483 位图(BMP)转换成WMF 324
0484 批量转换图像 324
13.4 颜色格式的转换 326
0485 将TColor换算成RGB 326
0486 将TColor换算成HTML 326
0487 将HTML换算成TColor 327
0488 将CMYK换算成RGB 327
0489 将RGB换算成CMYK 328
0490 将RGB换算成TColor 329
13.5 图片的滤镜效果 329
0491 将图片以灰度形式显示 329
0492 提高图像的亮度 330
0493 图像浮雕效果 331
0494 图片的反色效果 332
13.6 翻转与缩放 333
0495 如何放大和缩小图像 333
0496 实现图形反转 333
0497 如何旋转图像 334
0498 将图像局部放大 335
13.7 图片的动态效果 336
0499 制作百叶窗效果 336
0500 垂直交错显示图像 337
0501 水平交错显示图像 338
0502 制作积木效果 338
0503 制作推拉效果 340
0504 如何实现雨滴式的效果 340
0505 图片颜色逐渐加深 341
13.8 获取及调整图片的像素 342
0506 如何实现定点取色 342
0507 获取指定点的RGB值 343
0508 制作红绿眼镜三维立体画 343
0509 调整图片的RGB对比度 344
0510 图片的加密与解密 345
13.9 图片的处理技术 346
0511 复制局部图片 346
0512 在图片中加入文字 347
0513 如何实现图片扭曲 348
0514 图片的网格效果 350
13.10 图片的存储 350
0515 将BMP图片重画到窗体上 350
0516 将JPG图片重画到窗体上 351
0517 使位图图片透明 352
0518 对大图片的操作 352
13.11 图片的其他应用技巧 353
0519 怎样浏览大图片 353
0520 获取图像信息 353
0521 在图片上平滑移动文字 354
0522 制作随鼠标拖动的图像 355
0523 在TMainMenu组件上绘制图片 356
第14章 动画与多媒体 357
14.1 动画播放 358
0524 单帧动画播放 358
0525 多帧动画播放 358
0526 模拟石英钟 360
0527 设计字幕程序 361
0528 设计屏幕保护程序 361
14.2 文字效果 363
0529 文字的立体字效果 363
0530 文字滚动效果 364
0531 文字旋转效果 365
0532 制作空心文字 365
14.3 播放媒体文件 366
0533 播放AVI文件 366
0534 播放Flash动画 367
0535 播放WAV文件 368
0536 播放GIF文件 368
14.4 利用API播放媒体 369
0537 与多媒体相关的API函数 369
0538 利用sndPlaySound函数播放音频文件 370
0539 利用mciSendString函数播放AVI 370
14.5 音频及视频 372
0540 使电脑发出声音 372
0541 显示MP3文件的播放时间 372
0542 显示文件的播放进度 373
0543 循环播放媒体文件 374
0544 显示AVI文件的播放帧数 375
0545 指定视频显示窗口 375
0546 全屏播放视频文件 376
0547 设计一个精美的播放器 377
0548 播放背景音乐 380
0549 利用RealPlayer播放器播放音乐 381
14.6 媒体控制 382
0550 如何实现静音与声道控制 382
0551 调用声音控制对话框 383
0552 使播放的Flash随窗口大小改变 383
0553 打开和关闭光驱 383
第15章 API函数 385
15.1 操作系统 386
0554 关闭显示器 386
0555 获取系统启动模式 386
0556 使程序不出现在任务栏上 387
0557 修改系统时间 387
0558 修改系统颜色 388
0559 使用API函数拨号 389
0560 获取内存使用状态的信息 389
0561 清空回收站 390
0562 设置系统日期 390
0563 如何设定屏幕分辨率设定 391
0564 修改系统的刷新率 391
0565 隐藏桌面图标 392
0566 获取Windows主题文件 392
15.2 窗体 393
0567 利用API创建窗体 393
0568 利用API创建画刷 394
0569 利用API绘制弧形 394
0570 利用API控制窗体显示 395
0571 制作闪动标题的窗体 396
0572 拖动无标题栏窗体 396
0573 获取拖动到窗体中的文件路径 396
0574 在窗口的任意地方弹出主菜单项 397
0575 获取工程中的所有窗体名称 398
15.3 其他相关应用技巧 399
0576 锁定计算机 399
0577 启动控制面板 400
0578 如何实现屏幕抓图 401
0579 计算Windows从启动后所运行的总时间率 401
0580 巧用GetSystemMetrics函数 402
0581 显示密码编辑框中的密码 402
0582 添加、删除系统托盘图标 402
0583 如何在系统菜单中添加新项目 403
0584 监测程序多久未被使用 404
第16章 注册表 405
16.1 注册表基本操作 406
0585 创建注册表项 406
0586 删除注册表项 406
0587 向注册表中写入数据 407
0588 读取注册表中的数据 407
0589 列出指定注册表项下全部键值 408
0590 备份与恢复注册表 409
16.2 桌面 410
0591 设置系统墙纸 410
0592 修改桌面“我的电脑”的提示信息 410
0593 如何在桌面的任意位置显示墙纸 411
0594 在任务栏中添加自定义信息 412
16.3 优化系统性能 413
0595 如何实现自动登录 413
0596 如何快速显示窗口 414
0597 优化二级缓存 414
0598 优化系统关机速度 415
0599 禁止用户对虚拟内存的访问 415
16.4 IE浏览器设置 416
0600 设置IE默认首页 416
0601 清空IE网址中的历史记录 416
0602 设计修改IE标题栏和工具栏背景的程序 418
0603 隐藏IE属性中的选项 419
0604 禁止查看网页中的源文件 421
0605 禁止IE播放多媒体文件 421
0606 禁止对IE浏览器设置默认首页 422
16.5 “开始”菜单的相关设置 422
0607 如何在“开始”菜单中隐藏“关机”菜单项 422
0608 如何在“开始”菜单中隐藏“文档”菜单项 423
0609 如何在“开始”菜单中隐藏“运行”菜单项 423
0610 退出系统时清除“文档”中的历史记录 424
0611 禁止文档子菜单记录最近的工作信息 425
16.6 其他设置 426
0612 设计开机欢迎文字 426
0613 防止应用程序窗口失去焦点 426
0614 隐藏“添加/删除Windows组件”按钮 427
0615 隐藏计算机中的盘符 428
0616 禁止使用控制面板 430
0617 禁止使用注册表编辑器 431
0618 通过注册表获取时区信息 431
0619 通过注册表获取系统信息和用户注册信息 432
第17章 Windows相关开发技术 435
17.1 CPU 436
0620 获取CPU频率 436
0621 获取从开机到现在CPU运行的周期数 436
0622 获取CPU名称 437
0623 判断CPU是否支持MMX 438
17.2 系统控制 438
0624 计算机的关闭、重启和注销 438
0625 开关屏幕保护 439
0626 设计更换屏幕保护的程序 440
0627 设计屏幕保护的程序 441
0628 设置屏幕分辨率 442
0629 设置墙纸 443
0630 显示桌面 444
0631 让InputBox也能使用密码掩码 444
0632 控制系统菜单 445
0633 动态改变屏幕的显示模式 446
0634 在桌面上创建指定网址的快捷方式 446
0635 建立批处理文件的快捷方式 447
0636 Windows菜单字体的设置 448
17.3 系统状态栏的相关操作 448
0637 隐藏和显示任务栏 448
0638 隐藏、显示托盘图标 449
0639 隐藏状态栏中的时间 449
0640 如何设置“开始”按钮不可用 450
17.4 获取系统信息 450
0641 查看当前系统版本 450
0642 更改系统日期及时间 451
0643 获取系统字体的列表 452
0644 获取指定盘符中的路径 452
0645 获取系统内存信息 454
0646 如何使用DOS获取计算机的网络信息 454
17.5 获取Windows的相关文件 455
0647 按文件类型获取其图标 455
0648 监控剪贴板的文字内容 456
0649 输出Shell32.dll的图标 457
0650 从剪贴板中读取图片 458
17.6 Windows消息的相关控制 458
0651 程序最小时在任务栏中显示托盘图标 458
0652 动态最小化到状态栏托盘区 459
0653 屏幕取图(包含鼠标) 459
17.7 其他相关技巧 460
0654 如何让电脑发出滴声 460
0655 打开记事本和计算器 461
0656 对汉字输入法进行操作 461
0657 在组件中执行控制面板 462
0658 在Windows界面上不显示程序 464
0659 清空回收站 464
0660 给桌面加上一层阴影 465
第18章 程序应用控制 467
18.1 程序应用控制 468
0661 如何实现死循环的控制权转让 468
0662 调用外部的EXE文件 468
0663 保存程序的运行状态 469
0664 使窗体在最上面 470
0665 程序间的数据传递 470
0666 窗口最小化时应用程序标题栏闪动 471
0667 窗体失去焦点时标题栏闪动 471
0668 如何用Delphi调用压缩软件 472
18.2 Excel表 473
0669 创建Excel表 473
0670 打开已有的Excel表 473
0671 快速判断是否安装了Excel 474
0672 将Excel表存入到HTML中 474
0673 将数据表导入到Excel表中 475
0674 用回收站向Excel表中存入图片 476
0675 用文件的形式向Excel表中存入图片 477
0676 在Excel中插入图表 477
0677 将TDBGrid导入到Excel表中 478
18.3 Word表 480
0678 打开已有的Word文档 480
0679 无控件创建Word文档 480
0680 获取Word文档中选中的文本并对其进行修改 480
0681 向Word中插入字符 481
0682 统计Word文档的页数 482
0683 向Word中插入表格 482
0684 将Word文档存成txt格式 483
第19章 数据库技术 485
19.1 ADO应用技巧 486
0685 ADO异步执行 486
0686 ADO中的事务处理 487
0687 通过ADO对数据进行排序 488
0688 提高ADO的执行效率 489
0689 在实际开发中如何避免数据库死锁现象 490
0690 如何将Excel作为ADO的数据源 490
0691 通过ADO建立主/从表关系 491
0692 通过ADO的Lookup显示字段 492
0693 在ADO中撤销删除操作 493
0694 把记录集中的结果存到另一个记录集中 493
0695 判断ADO的状态 494
0696 通过ADO判断编辑前后的值是否相等 495
0697 优化ADO中的SQL语句 495
0698 在数据表中调整记录指针的位置 495
0699 如何及时看到其他用户修改过的数据 496
0700 获取ADO中的所有字段名 496
0701 用ADOStoredProc取得存储过程的参数列表 496
0702 如何设计Access语句执行器 497
0703 通过ADOX获取字段属性信息 498
0704 TADOQuery的Open与ExecSQL方法的区别 500
0705 ADO连接设置有密码的Access数据库 500
0706 判断指针记录是否被改变 501
19.2 控件与数据库应用技巧 502
0707 更改DBGrid某一行数据的颜色 502
0708 将字段内容添加到Com boBox控件中 502
0709 实现单击标题头对数据进行排序 503
0710 在DBGrid中实现分页功能 504
0711 在表格中显示行号 506
0712 在ADO中判断字段类型 506
0713 设置DBGrid控件的列宽 507
0714 将ADO中的数据保存为Excel 507
19.3 数据库的其他应用技巧 509
0715 获取记录集中的行数 509
0716 判断一个表在数据库中是否存在 509
0717 判断ADO是否为保存状态 510
0718 数据集过滤技巧 510
0719 判断读取的数据记录值为空 511
0720 在记录集中遍历大量数据时提高遍历速度 511
0721 根据查询条件定位数据集的指针 513
0722 连接SQL Server数据库 513
0723 在开发程序时数据库配置信息的保存位置 514
0724 程序里的图片、文档、音频等数据存储方式 515
0725 利用计算字段显示商品金额 515
0726 实现模糊的复合查询 516
0727 处理“键列信息不足或不正确…”的错误 517
0728 避免程序启动时提示“连接数据库失败” 517
0729 连接端口号已经更改了的SQL数据库 517
19.4 SQL Server数据库的相关技巧 518
0730 SQL Server 2000安装中文件挂起的解决方法-1 519
0731 SQL Server 2000安装中文件挂起的解决方法-2 519
0732 SQL Server 2000安装过程不成功的解决办法 519
0733 sa登录失败 520
0734 SQL Server 2000安装程序配置服务器失败的解决方案-1 520
0735 SQL Server 2000安装程序配置服务器失败的解决方案-2 521
0736 SQL Server 2000安装程序配置服务器失败的解决方案-3 521
0737 SQL Server 2000安装程序配置服务器失败的解决方案-4 522
0738 SQL Server 2000安装程序配置服务器失败的解决方案-5 522
0739 设置SQL Server登录密码 522
第20章 SQL查询相关技术 523
20.1 常用查询 524
0740 利用WHERE条件过滤数据 524
0741 查询数据为指定长度的数据 524
0742 正确使用单引号“’” 524
0743 应用LIKE进行模糊查询 524
0744 LIKE高级应用 525
0745 如何实现SQL中代替LIKE查询的另一种写法 527
0746 利用TOP查询数据 527
0747 查询10天内的登录信息 528
0748 如何自动生成一个序号 529
0749 如何对列进行计算 529
20.2 复杂查询 530
0750 获取第10~第20条的记录 530
0751 将姓名相同并且数据不相同的数据显示成一行 530
0752 如何实现复杂的嵌套查询 531
0753 嵌套查询在查询统计中的应用 532
0754 利用UNION进行联合查询 532
0755 如何实现一对多联合查询 533
20.3 重复记录 533
0756 利用关键字DISTINCT去除重复记录 533
0757 查询数据表中重复的记录 534
20.4 数据排序 535
0758 对查询结果进行排序 535
0759 在SQL查询中实现随机排序 535
0760 将获取的后5条记录进行正序排序的两种方式 536
0761 对联合查询后的结果进行排序 536
20.5 利用通配符查询数据 537
0762 如何在SQL查询中使用通配符 537
0763 利用“_”通配符查询数据 537
0764 利用“%”通配符查询数据 538
0765 利用“[]”通配符查询数据 538
0766 利用“[^]”通配符查询数据 539
20.6 比较、逻辑运算符查询 539
0767 使用比较运算符查询数据 539
0768 利用NOT关键字查询数据 541
0769 使用AND逻辑运算符查询数据 541
0770 使用OR逻辑运算符查询数据 542
0771 逻辑运算符的优先权 543
0772 同时使用AND和OR查询数据 543
0773 如何为一列指定多个查询条件 544
0774 如何为多列指定多个查询条件 544
20.7 谓词和关键字的查询 545
0775 利用IN谓词限定范围 545
0776 利用NOT IN限定范围 545
0777 利用ALL谓词限定范围 546
0778 利用ANY谓词限定范围 546
0779 利用BETWEEN AND子句筛选数据 547
0780 使用NOT BETWEEN进行范围查询 548
0781 利用IS NULL查询记录为空的数据 549
0782 利用IS NOT NULL查询记录不为空的数据 549
0783 利用EXISTS和NOT EXISTS替换IN和NOT IN的使用 549
20.8 批量添加、修改、删除 549
0784 批量添加数据 549
0785 批量修改数据 550
0786 批量删除数据 552
0787 快速清空数据记录 552
20.9 多表查询及联接查询 553
0788 利用from子句进行多表查询 553
0789 从多个表中合并数据 554
0790 利用INNER JOIN ON内联接关联数据表 554
0791 利用FULL OUTER JOIN外联接关联数据表 555
0792 利用LEFT OUTER JOIN左联接关联数据表 556
0793 利用RIGHT OUTER JOIN右联接关联数据表 557
0794 使用交叉联接(笛卡尔积)关联数据表 558
20.10 创建数据表 558
0795 用SQL语句将一个表的数据更新到另一个表 558
0796 建立一个与A表结构相同的新表 558
20.11 常用聚合函数 559
0797 如何应用MAX函数和MIN函数的应用 559
0798 巧用COUNT函数 559
0799 利用SUM函数计算商品销售总数量和总金额 559
0800 应用AVG函数计算操作员的平均年龄 560
20.12 常用数学函数 560
0801 使用ABS(绝对值)函数 560
0802 如何应用CEILING函数与FLOOR函数的应用 561
0803 如何应用LOWER函数与UPPER函数的应用 561
0804 使用ROUND(四舍五入)函数 562
0805 使用SQUARE(平方)函数和SQRT(平方根)函数 563
0806 使用RAND(随机浮点数)函数 563
0807 使用PI(圆周率)函数 564
20.13 常用字符串处理函数 564
0808 LEFT函数与RIGHT函数的应用 564
0809 使用REPLACE函数替换字符串 565
0810 使用SUBSTRING函数取得指定个数的字符串 565
0811 使用CHARINDEX函数返回字符串的起始位置 566
0812 使用REPLICATE函数以指定次数重复输出字符串 567
0813 使用REVERSE函数返回字符表达式的反转 567
0814 使用SPACE函数返回由重复的空格组成的字符串 568
0815 使用STUFF函数删除指定的字符并在指定的位置插入字符 568
20.14 常用日期和时间函数 568
0816 使用DATEADD函数添加日期时间 568
0817 使用DATEDIFF函数返回两个日期之间的时间差 569
0818 使用GETDATE函数返回当前系统的日期时间 570
0819 使用DATEPART函数返回指定日期部分的整数 570
0820 使用GETUTCDATE函数返回当前UTC时间 571
0821 YEAR、MONTH、DAY函数的应用 571
20.15 其他SQL相关 572
0822 如何查询数据表中所有字段的信息 572
0823 如何实现SQL Server中的存储过程加密 572
0824 如何在SQL中控制语句跳转 573
0825 将表中的密码字段进行加密 573
0826 判断一个字符类型的字段里的字符只是数字 573
0827 终止用户的进程 573
0828 如何修改SQL Server登录用户密码 573
0829 使用存储过程的好处 574
0830 实现动态交叉表 574
0831 如何实现事务的保存点 575
0832 获取服务器名称 575
0833 提高SQL性能及执行速度 576
0834 获取指定数据库的详细信息 576
20.16 访问外部数据 577
0835 创建链接服务器 577
0836 删除链接服务器 578
0837 向外部数据表中添加数据 579
0838 修改外部数据表中的数据 579
0839 删除外部数据表中的数据 579
0840 利用OpenQuery函数查询数据 579
0841 利用OpenDataSource函数访问Excel表格 580
0842 访问Access数据库中的数据 581
第21章 打印与报表技术 583
21.1 QuickReport相关报表组件 584
0843 掌握QuickReport组件的属性、方法和事件 584
0844 掌握TQRBand组件的属性、方法和事件 585
0845 掌握TQRExpr组件的属性、方法和事件 586
0846 掌握TQRDBText组件的属性、方法和事件 587
21.2 设计报表 588
0847 使用QuickReport向导创建报表 588
0848 使用QuickReport组件设计一个报表 589
0849 自制一个打印窗口 591
0850 如何设计一个标签式报表 592
0851 制作一个带图片的报表 594
0852 设计一个汇款单样式的报表 595
0853 如何实现快递单据打印 596
0854 在一页中打印指定行数的数据 597
0855 在报表的页脚中显示商品销售总数量 598
0856 在报表中进行页脚求和 599
21.3 打印文件 601
0857 如何打印图形 601
0858 如何打印文本文件 602
0859 如何打印指定路径下的图片 602
0860 如何打印RTF文件 603
0861 如何打印RichEdit组件中被选中的文本 603
0862 如何利用Excel打印报表 604
21.4 打印控制 606
0863 怎样实现横向打印 606
0864 如何进行批量打印 606
0865 如何设置纸张大小 607
0866 如何打印窗口中的数据 608
0867 怎样将报表导出为Word、Excel、.txt文件 609
21.5 其他相关技巧 609
0868 QuickReport报表组件的安装 609
0869 如何获取打印机的分辨率 611
0870 如何调用添加打印机向导窗口 613
0871 利用Rave打印条形码 613
0872 利用Rave设计主从式报表 614
第22章 图表技术 617
22.1 TDBChart图表技术 618
0873 如何将数据添加到图表上 618
0874 怎样打印图表 618
0875 修改图表的字体和颜色 618
0876 如何放大和缩小图表 619
0877 如何动态连接数据源 620
0878 向图表中插入背景图片 620
0879 控制图表是否为3D效果 621
0880 动态设置TDBchart的图表类型 622
0881 改变图表中柱图的颜色 622
0882 使用随机数填充图表 623
22.2 TChart图表技术 623
0883 设置图表渐变色 623
0884 如何在图表右侧添加标签 624
0885 设置图表背景色 625
0886 动态显示/隐藏数据标签 625
0887 动态添加图表 626
0888 如何打印或预览图表 626
0889 对图表打印预览窗口进行汉化 627
0890 将图表保存到图元文件中 627
0891 如何在图表中央绘制文字 628
0892 反转图表坐标 629
0893 如何实现图表缩放 629
0894 如何在图表中添加图形 630
0895 如何在图表中画十字 631
0896 如何实现饼形图表的转动 632
第23章 硬件相关技巧 633
23.1 IC卡 634
0897 如何将数据写入IC卡 634
0898 如何读取IC卡中的数据 635
0899 如何向IC卡中写入考勤信息 635
23.2 语音卡 636
0900 怎样通过语音卡显示来电 636
0901 怎样通过语音卡获取客户信息 638
0902 如何实现语音卡自助服务 638
0903 怎样使用语音卡录音 640
23.3 其他相关应用技巧 640
0904 如何在Delphi中实现短信群发 640
0905 如何测试端口是否有效 641
0906 如何实现视频采集 641
0907 获取内存信息 643
第24章 网络开发技术 645
24.1 计算机设置 646
0908 如何更改计算机名称 646
0909 修改本机IP地址 646
0910 根据本机名称获取本地IP地址 648
0911 根据指定的IP地址获取计算机名 649
0912 获取本机计算机名称 649
0913 获取工作组名称 650
0914 列举指定工作组中的计算机 652
0915 获取本机MAC地址 653
0916 如何更改DNS地址 654
24.2 网络通信 656
0917 使用POPUP发送信息 656
0918 实现Ping操作 657
0919 判断网络是否连接成功 659
0920 获取网络中某台计算机的可用磁盘空间 660
0921 怎样实现进程间通信 661
24.3 远程控制 662
0922 如何使用UDP进行远程控制 662
0923 怎样实现远程屏幕抓取 664
0924 如何用Socket实现远程文件的传递 667
24.4 局域网 672
0925 获取局域网内所有计算机的名称 672
0926 如何利用TTcpClient、TTcpServer组件进行网络连接 674
0927 在局域网中控制其他计算机 675
0928 如何映射网络驱动器 677
24.5 网络聊天室 679
0929 制作一个简单的网络聊天室 679
0930 利用UDP编写网络聊天室 680
24.6 其他相关应用技巧 683
0931 如何实现超级链接 683
0932 网络中的文件复制 684
0933 获得系统打开的端口和状态 685
0934 判断TCP/IP协议是否安装 685
0935 检索一个URL地址是否有效 686
0936 如何取得当前Modem的状态 687
0937 利用组件快速获取本地IP地址 688
第25章 Web相关技巧 689
25.1 XML 690
0938 如何实现XML数据文档的浏览 690
0939 如何向XML中添加数据 690
0940 如何向XML中添加对象 691
0941 如何向XML中添加RTTI信息 692
0942 如何用Tree显示XML信息 692
25.2 网页相关 693
0943 制作自己的网络浏览软件 693
0944 如何定时上Internet 694
0945 监测当前Internet的连接状态 694
0946 如何将网页转换成图片 695
0947 如何将一段HTML文字显示在网页浏览器中 696
0948 清除Internet Explorer临时文件 697
0949 获取IE收藏夹内容 697
0950 如何用TWebBrowser获取网页源代码 698
0951 提取网页中的所有链接 699
25.3 网络信息传输 700
0952 如何实现邮件发送 700
0953 如何实现邮件接收 700
0954 如何实现文件传输 702
0955 如何实现网络聊天(UDP) 703
0956 如何实现网络图像传输 704
第26章 安全技术 707
26.1 数据库安全技术 708
0957 怎样压缩SQL Server数据库 708
0958 怎样修改SQL服务器端口号 708
0959 怎样修改数据库登录密码 709
0960 如何创建数据库登录用户 710
0961 通过程序备份数据库 711
26.2 应用程序安全技术 712
0962 获得局域网内所有SQL Server 2000服务器名称 712
0963 如何生成软件产品序列号 712
0964 如何对数据进行加密 713
0965 通过Delphi为应用程序建立注册机制 713
0966 使应用程序处于锁定状态 714
0967 SQL Server数据库的安全配置 715
第27章 程序调试与错误处理 717
27.1 程序调试技巧 718
0968 如何在程序中设置断点 718
0969 如何在程序调试中获取变量的值 718
0970 对代码进行跟踪调试时Trace Into和Step Over之间的区别 719
0971 开发过程中错误调试的几种技术 719
0972 把调试信息存储在可执行文件中 719
0973 如何跟踪局部变量的值 720
0974 如何快速有效地调试循环语句 721
0975 调试程序语法是否有错误 721
0976 编程过程中常见的几种错误 721
0977 使程序运行时出现错误不弹出错误调试器 722
27.2 错误处理技术 723
0978 避免常见的几种指针错误 723
0979 在程序出错的时候把手工创建的对象释放 723
0980 try...finally...end与try...except...end的区别 723
0981 如何引发自定义异常 724
0982 在存储过程中实现异常处理的方法 724
0983 在SQL查询中返回用户定义的错误信息 724
0984 通过Application对象捕获异常 725
0985 如何处理API异常 725
0986 捕获多重异常 726
0987 常见的异常类 726
第28章 程序打包与安装 727
28.1 程序打包技巧 728
0988 如何对自己开发的软件进行打包 728
0989 如何在Install Shield中设置在安装向导中只显示典型安装 728
0990 如何在Install Shield中指定要打包的文件 729
0991 将Install Shield打包的程序安装在“开始”→“程序”菜单中 730
0992 如何设置在桌面上显示程序快捷方式 731
0993 如何在注册表中写入注册信息 731
0994 如何设置程序安装位置 732
0995 把Access数据库打包到安装程序中 733
0996 如何在Install Shield中创建INI文件 733
0997 如何在程序安装向导中自定义程序安装目录和数据库安装目录 735
28.2 程序安装技巧 735
0998 带有Access数据库的程序在安装时需要注意的问题 735
0999 卸载带有Access数据库的安装程序需要注意的问题 735
1000 使用Install Shield Limited打包的程序中文显示乱码的原因 736
1001 安装程序时需要注意的路径问题 736
第29章 第三方控件 737
29.1 cxGrid5.0应用技巧 738
1002 使用cxGrid实现日历功能 738
1003 如何在cxGrid中进行数据统计 739
1004 使用cxGrid进行父子表查询 740
1005 如何在cxGrid表格中重新定位光标 740
1006 使用cxGrid动态创建列 741
1007 取消cxGrid表头过滤功能 742
1008 设置货币字段格式 742
1009 把cxGrid的数据存为Excel格式 743
1010 把cxGrid的数据存为纯文本 744
1011 使用cxGrid以卡片形式显示数据 745
1012 设置cxGrid表格线的样式 746
1013 使cxGrid父子表展开和收拢 746
1014 判断cxGrid表格是否在filter状态 747
1015 设置cxGrid可以多选 748
1016 使cxGrid合并内容相同的单元 748
29.2 其他控件应用技巧 749
1017 使用cxDBTextEdit进行数据录入 749
1018 使cxLookupComboBox下拉列表中显示多列 750
1019 实现TdxDBTreeView节点拖曳 751
1020 实现TdxDBTreeView节点全部展开或收拢 752
1021 在TdxDBTreeView中单击节点实现展开和收拢 753