1.1.1 需要哪些东西 3
1.1.2 安装PowerBuilder 3
目录 3
第一部分 PowerBuilder环境 3
第一章 PowerBuilder的安装和启动 3
1.1 安装和启动PowerBuilder 3
1.1.3 启动PowerBuilder 4
1.1.4 从命令行上启动PowerBuilder 5
1.2 使用联机Help 6
1.3 使用样本应用程序 7
1.4.1 示教文件 8
1.4 管理文件 8
1.4.4 PowerBuilder文件 9
1.4.3 样本应用程序的WATCOM SQL数据库文件 9
1.4.2 样本应用程序文件 9
1.4.7 建议 10
1.4.6 版本控制系统接口 10
1.4.5 数据库接口文件 10
2.1.1 关于绘制器 11
2.1 什么是PowerBuilder 11
第二章 PowerBuilder的世界 11
2.2 PowerBar的使用 12
2.1.6 PowerBuilder环境 12
2.1.2 关于事件和脚本 12
2.1.3 关于PowerScript函数 12
2.1.4 关于库 12
2.1.5 生成可执行文件 12
2.3 绘制器的使用 13
2.3.2 所有绘制器中的成分 14
2.3.1 打开一个绘制器或工具 14
2.3.3 使用浏览器 17
2.4.1 关于工具条 19
2.4 使用工具条 19
2.4.2 控制工具条的显示 20
2.4.4 定制工具条 21
2.4.3 用鼠标移动工具条 21
2.6.2 激活一个窗口 26
2.6.1 打开多个窗口 26
2.5 弹出式菜单的使用 26
2.6 在PowerBuilder窗口下工作 26
2.7 DOS文件编辑器的使用 27
2.6.5 叠置窗口 27
2.6.3 平铺窗口 27
2.6.4 层次排列窗口 27
2.8.1 获得上下文相关的帮助 28
2.8 联机帮助的使用 28
2.9 建立一个应用程序 29
2.8.2 了解新的功能 29
3.1 关于应用程序对象 30
第三章 应用程序的处理 30
3.2 生成一个新的应用程序对象 31
3.4 观察一个应用程序的结构 33
3.3 处理其他的应用程序对象 33
3.4.1 在工作区中进行处理 34
3.4.2 显示哪些对象 35
3.5.1 指定缺省的文本属性 37
3.5 指定应用程序的特征 37
3.5.2 指定一个图标 38
3.6 编写应用程序级的脚本 39
3.5.3 指定库搜索路径 39
3.6.2 应用程序事件 40
3.6.1 设置应用程序属性 40
4.1.1 引用对象和控制器 43
4.1 PowerScript基础 43
第二部分 编码基础 43
第四章 编写脚本 43
4.1.3 使用内部函数 45
4.1.2 使用变量 45
4.1.6 关于PowerScript的更详细信息 46
4.1.5 使用PowerScript语句 46
4.1.4 定义用户自己的函数 46
4.3 打开PowerScript绘制器 47
4.2 编写脚本的过程 47
4.4 在绘制器中进行处理 48
4.3.2 找出哪些事件已有脚本 48
4.3.1 改变当前事件 48
4.4.2 操纵文本 49
4.4.1 使用PainterBar 49
4.4.5 获得上下文相关的帮助 50
4.4.4 改变字型 50
4.4.3 打印脚本 50
4.5.1 使用Paste列表框 51
4.5 粘贴信息 51
4.5.2 使用Object浏览器 52
4.5.3 粘贴语句 56
4.5.4 粘贴SQL 57
4.5.6 粘贴文件的内容 58
4.5.5 粘贴函数 58
4.6 编译脚本 59
4.7 退出PowerScritp绘制器 60
5.1 两种类型的函数 62
第五章 用户自定义函数的处理 62
5.2.1 打开函数绘制器 63
5.2 定义用户定义函数 63
5.2.2 命名函数 64
5.2.3 定义返回类型 65
5.2.5 定义参数 66
5.2.4 定义访问级 66
5.2.6 为函数编码 67
5.2.7 编译和保存函数 69
5.2.8 改正编译错误 70
5.3.2 重编译其它的脚本 71
5.3.1 修改参数 71
5.3 修改用户定义的函数 71
5.4 用户定义函数的使用方式 72
5.3.3 查看函数的引用位置 72
5.4.2 粘贴用户定义函数 73
5.4.1 函数的调用 73
6.2.1 打开结构绘制器 75
6.2 定义结构 75
第六章 结构的处理 75
6.1 两种类型的结构 75
6.2.3 保存结构 77
6.2.2 定义变量 77
6.3 修改结构 78
6.4.1 引用结构 79
6.4 使用结构 79
6.4.3 在函数中使用结构 80
6.4.2 拷贝结构 80
6.4.4 显示及粘粘结构信息 81
7.1 窗口概述 85
第七章 定义窗口 85
第三部分 窗口的处理 85
7.2.1 主窗口 86
7.2 窗口的类型 86
7.1.1 窗口的设计 86
7.1.2 建立窗口 86
7.2.2 弹出式窗口 87
7.2.3 子窗口 88
7.3.1 打开窗口绘制器 89
7.3 建立一个新窗口 89
7.2.4 响应窗口 89
7.2.5 MDI主窗口 89
7.3.2 关于绘制器 90
7.3.3 在窗口绘制器中的处理 92
7.3.4 定义窗口的风格 93
7.3.5 指定窗口的类型 94
7.3.8 选择窗口的颜色 95
7.3.7 将一个菜单与窗口相连 95
7.3.6 指定其他的基本窗口特征 95
7.3.10 指定窗口滚动 96
7.3.9 选择窗口的大小和位置 96
7.3.11 选择窗口的指针 97
7.3.14 保存窗口 98
7.3.13 增加控制器 98
7.3.12 选择窗口的图标 98
7.4.1 预观察窗口 99
7.4 观察自己所做的工作 99
7.5.1 关于窗口和控制器事件 100
7.5 在窗口中编写脚本 100
7.4.2 打印窗口 100
7.5.4 声明实例变量 101
7.5.3 关于窗口和控制器的属性 101
7.5.2 关于窗口和控制器函数 101
7.6 运行窗口 102
7.5.5 语句的示例 102
7.7 利用继承性建立窗口 103
7.8 生成窗口实例 105
7.8.2 说明窗口的实例 106
7.8.1 PowerBuilder怎样保存窗口定义 106
7.8.3 使用窗口数组 107
7.8.5 引用子孙对象中的实体 109
7.8.4 使用引用变量或数组 109
8.1.1 带有事件的控制器 111
8.1 控制器概述 111
第八章 控制器的处理 111
8.2 在窗口中设置控制器 112
8.1.2 作图对象 112
8.4 定义控制器的属性 113
8.3 选择控制器 113
8.5.1 关于缺省前缀 114
8.5 为控制器命名 114
8.5.2 改名 115
8.6 改变文本 116
8.7.2 使用网格 117
8.7.1 显示关于所选控制器的信息 117
8.7 移动控制器和改变控制器的大小 117
8.7.3 控制器的对齐 118
8.8.1 建立缺省的切换顺序 119
8.8 定义切换顺序 119
8.7.4 使控制器间的距离相等 119
8.7.5 使控制器大小相等 119
8.9 定义加速键 120
8.8.2 改变窗口的切换顺序 120
8.10 指定控制器的可访问性 121
8.11 选择颜色 122
8.10.2 使用Enabled属性 122
8.10.1 使用Visible属性 122
8.11.2 定义用户自己的颜色 123
8.11.1 选择颜色 123
8.12 使用3D外观 124
8.13.1 使用命令按钮 125
8.13 具体的控制器使用 125
8.13.2 使用图形钮 126
8.13.4 使用复选框 127
8.13.3 使用单选钮 127
8.13.6 使用单行编辑和多行编辑控制器 128
8.13.5 使用静态文本 128
8.13.7 使用编辑掩码 129
8.13.8 使用列表框 131
8.13.9 使用下落列表框 132
8.13.11 使用作图对象 133
8.13.10 使用图画 133
8.13.12 使用水平滚动条和垂直滚动条 134
9.1 继承层次 135
第九章 继承性的理解 135
9.2 使用继承对象时的考虑 136
9.3.1 观察继承的脚本 137
9.3 使用继承的脚本 137
9.3.2 覆盖一个脚本 138
9.3.4 调用祖先脚本 139
9.3.3 扩展脚本 139
9.3.5 调用祖先函数 140
10.1.1 关于菜单和菜单项 142
10.1 菜单概述 142
第十章 菜单的处理 142
10.2 建立一个新菜单 143
10.1.4 建立菜单 143
10.1.2 使用菜单 143
10.1.3 设计菜单 143
10.2.3 在Menu绘制器中的处理 144
10.2.2 关于Menu绘制器 144
10.2.1 打开Menu绘制器 144
10.2.4 增加菜单项 145
10.2.5 怎样命名菜单项 147
10.2.7 移动菜单项 148
10.2.6 插入菜单项 148
10.2.10 指定加速器与便捷键 149
10.2.9 定义菜单项的外观 149
10.2.8 删除菜单项 149
10.2.12 定义MicroHelp文本和工具条项 150
10.2.11 在菜单中生成分隔线 150
10.2.13 储存菜单 151
10.4 编写菜单项的脚本 152
10.3.2 打印菜单 152
10.3 观察所做的工作 152
10.3.1 预观察菜单 152
10.4.2 使用函数和变量 153
10.4.1 菜单项事件 153
10.4.3 引用应用程序中的对象 154
10.5 利用继承性建立菜单 155
10.6.1 在窗口中增加菜单条 157
10.6 使用菜单 157
10.6.2 显示弹出式菜单 158
11.1.1 用户对象的类型 159
11.1 用户对象概述 159
第十一章 用户对象的处理 159
11.1.2 建立用户对象 160
11.2.1 打开用户对象绘制器 161
11.2 建立新的用户对象 161
11.2.2 建立标准的用户对象 162
11.2.4 建立外部用户对象 163
11.2.3 建立定制的用户对象 163
11.2.6 建立VBX用户对象 165
11.2.5 建立不可见的用户对象 165
11.2.7 编写用户对象的脚本 166
11.2.8 保存用户对象 168
11.3 利用继承性建立用户对象 169
11.4 使用用户对象 171
11.5.1 使用函数 173
11.5 在窗口和用户对象之间通信 173
11.5.2 使用用户事件 175
12.1 定义用户事件 179
第十二章 用户事件的处理 179
12.2.2 触发事件 181
12.2.1 编写脚本 181
12.2 使用用户事件 181
13.1.1 有关DBMS 185
13.1 综述 185
第四部分 数据库的处理 185
第十三章 数据库的管理 185
13.2 Database绘制器的使用 186
13.1.2 如何处理数据库 186
13.3 将所做工作记录在日志中 188
13.4.2 使用数据库档案文件 189
13.4.1 在被提示时输入连接参数 189
13.4 切换DBMS或数据库 189
13.5 创建和删除数据库 192
13.6.1 表的打开 193
13.6 表的操纵 193
13.6.2 表的创建 195
13.6.3 表的修改 196
13.6.5 指定扩展的列属性 197
13.6.4 指定表的字型 197
13.6.6 索引的操纵 201
13.6.7 主关键码和外部关键码的操纵 202
13.7 视图的操纵 207
13.6.8 放弃一个表 207
13.7.2 建立视图 208
13.7.1 打开视图 208
13.7.4 选择视图中的各个列 209
13.7.3 显示一个视图的SQL语句 209
13.7.6 指定WHERE,GROUP BY和HAVING标准 211
13.7.5 表的联接 211
13.9.1 Data Manipulation绘制器的打开 214
13.9 数据的操纵 214
13.7.7 放弃视图 214
13.8 移出表或视图语法 214
13.9.3 修改数据 215
13.9.2 检索数据 215
13.9.4 排序和过滤数据 216
13.9.5 观察行信息 217
13.9.7 打印数据 218
13.9.6 移入数据 218
13.10 数据库的管理 219
13.9.9 返回Database绘制器工作区 219
13.9.8 保存数据 219
13.10.3 执行SQL 220
13.10.2 控制对数据库的访问 220
13.10.1 打开Database Administration绘制器 220
14.1 DataWindow对象综述 223
第十四章 DataWindow对象的定义 223
14.2.2 修改一个现有的DataWindow对象 225
14.2.1 与一个数据库连结 225
14.2 构造DataWindow对象 225
14.3 选择展示风格 226
14.2.3 创建一个新的DataWindow对象 226
14.3.1 使用表形风格 227
14.3.3 使用网格风格 228
14.3.2 使用自由格式风格 228
14.3.5 使用多栏风格 229
14.3.4 使用标签风格 229
14.4 选择Data Window选项 230
14.3.7 使用图形和交叉表展示风格 230
14.3.6 使用分组展示风格 230
14.5.1 如何选择数据源 232
14.5 定义数据源 232
14.5.2 使用Quick Select 233
14.5.3 使用SQL Select 238
14.5.5 使用External 248
14.5.4 使用Query 248
14.6 生成和保存Data Window对象 249
14.5.6 使用Stored Procedure 249
14.7 定义查询 251
14.7.2 保存查询 252
14.7.1 预观察查询 252
14.7.3 命名查询 253
第十五章 增强Data Window对象 254
15.1.1 理解工作区 255
15.1 在工作区中工作 255
15.1.2 使用工具条 257
15.1.3 使用弹出菜单 257
15.1.4 键盘便捷键 258
15.1.5 选择对象 259
15.2 预观察Data Window对象 260
15.1.7 使用缩放特性 260
15.1.6 改变条的尺寸 260
15.2.2 修改数据 261
15.2.1 检索数据 261
15.2.3 排序和过滤数据 262
15.2.4 观察行信息 263
15.2.6 打印数据 264
15.2.5 移入数据 264
15.2.8 在一个网格Data Window中操作 265
15.2.7 保存数据 265
15.3.3 删除对象 267
15.3.2 使用网格和标尺 267
15.3 重新组织对象 267
15.3.1 显示对象的边界 267
15.3.6 对齐对象 268
15.3.5 调整对象的尺寸 268
15.3.4 移动对象 268
15.4 修改一般属性 269
15.3.8 使对象的尺寸相等 269
15.3.7 使对象间等间距 269
15.4.2 设置颜色 270
15.4.1 改变DataWindow对象风格 270
15.4.4 指定指示符 271
15.4.3 指定网格线的显示 271
15.4.5 修改文本 272
15.4.8 使用边框 273
15.4.7 命名对象 273
15.4.6 定义tab顺序 273
15.4.9 指定可变高度的细节条 274
15.4.10 修改数据源 275
15.5 检索标准的提示 277
15.6.1 有关层次属性 278
15.6 增加对象 278
15.6.4 增加绘画对象 279
15.6.3 增加文本 279
15.6.2 增加列 279
15.6.5 增加图像 280
15.6.6 增加计算的域 281
15.7 将数据存储在一个DataWindow对象中 285
15.9 控制更新 286
15.8 根据需要检索数据行 286
15.9.2 指定要更新的表 287
15.9.1 用户可以做什么 287
15.9.4 指定可更新的列 288
15.9.3 指定唯一的关键码列 288
15.9.5 为UPDATE/DELETE语句指定WHERE子句 289
15.9.6 指定当关键码被修改时更新 291
16.1 显示格式的处理 292
第十六章 显示和验证数据 292
16.1.1 使用显示格式 293
16.1.2 定义显示格式 296
16.2.1 使用编辑风格 302
16.2 编辑风格的处理 302
16.2.2 定义编辑风格 305
16.2.3 定义代码表 312
16.3.2 处理验证规则 315
16.3.1 理解验证规则 315
16.3 验证规则的处理 315
16.3.3 在Database绘制器中操作 316
16.3.4 在DataWindow绘制器中操作 319
16.4 实体的维护 320
17.1 过滤行 322
第十七章 行的过滤、排序和分组 322
17.2 排序行 323
17.3 分组行 325
17.3.1 指定分组列 326
17.3.3 重新安排DataWindow 328
17.3.2 排序行 328
17.3.4 加上总结性统计数据 330
17.3.5 分组展示风格的使用 331
18.1.1 图表的组成部分 334
18.1 图表概述 334
第十八章 图表的使用和处理 334
18.1.2 图表的种类 335
18.1.3 在应用程序中使用图表 339
18.2.1 在DataWindow中放置图表 340
18.2 在DataWindow对象中使用图表 340
18.2.2 使用弹出式菜单 341
18.2.3 改变图表的位置 342
18.2.4 将数据与图表相联系 343
18.2.5 使用覆盖 350
18.2.6 使用图表表示方式 351
18.3 定义图表的属性 353
18.3.4 使用图例 354
18.3.3 指定图表的类型 354
18.3.1 为图表命名 354
18.3.2 定义图表的标题 354
18.3.5 指定标题、图例、轴的文本属性 355
18.3.6 指定重叠及间距 356
18.3.7 指定轴的特征 357
18.3.8 指定边界 359
18.3.10 指定3D图表的视点 360
18.3.9 指定光标 360
18.4.2 使用弹出式菜单 361
18.4.1 在窗口中放置图表 361
18.4 在窗口中使用图表 361
18.4.4 为图表取得数据 362
18.4.3 基本控制器属性 362
18.5 在执行期间访问图表 364
18.5.1 修改图表属性 365
18.5.2 访问数据属性 366
18.5.3 使用指点和按取操作 369
19.1 交叉表概述 372
第十九章 交叉表的使用和处理 372
19.2 生成交叉表 374
19.3 为交叉表提供数据 375
19.3.3 指定值 376
19.3.2 指定行 376
19.3.1 指定列 376
19.3.4 例子的总结 377
19.3.6 指定多于一个的行或列 378
19.3.5 使用表达式 378
19.4 预观察交叉表 379
19.5.1 定义汇总统计 380
19.5 增强交叉表 380
19.5.2 修改与交叉表相关的数据 382
19.6 使用交叉表 383
19.5.3 在执行时动态生成新的列 383
20.1 将DataWindow对象与它的控制器相关 384
第二十章 DataWindow对象的使用 384
20.1.1 改变控制器的属性 386
20.1.3 在执行期间改变相关的DataWindow对象 387
20.1.2 修改DataWindow对象 387
20.3.1 使用事务对象 388
20.3 与数据库通信 388
20.2 显示数据 388
20.3.2 与数据库连接 390
20.3.5 将事务对象指定给DataWindow控制器 391
20.3.4 在SQL语句之后的错误处理 391
20.3.3 断开与数据库的连接 391
20.3.6 检索并修改数据 393
20.4.1 DataWindow控制器怎样存储数据 395
20.4 在DataWindow控制器中处理数据 395
20.4.3 处理编辑控制器中的内容 396
20.4.2 访问当前文本或某个指定的项 396
20.4.4 PowerBuilder如何处理项 397
20.4.5 使用DataWindow函数 398
20.5.2 定义打印需求 399
20.5.1 准备DataWindow对象 399
20.4.6 使用DataWindow属性和事件 399
20.5 生成报表 399
20.5.4 增强报表选项 401
20.5.3 打印报表 401
21.1.1 打开Debug窗口 405
21.1 调试应用程序 405
第五部分 运行应用程序 405
第二十一章 调试和运行应用程序 405
21.1.2 增加断点 406
21.1.3 编辑断点 407
21.1.4 在调试模式下运行 408
21.1.6 显示变量的当前值 409
21.1.5 在停止时观察信息 409
21.1.7 使用观察表 410
21.1.10 修改代码 412
21.1.9 打印变量的值 412
21.1.8 改变变量值 412
21.2.2 在执行时处理错误 413
21.2.1 运行应用程序 413
21.2 运行应用程序 413
22.1.2 什么是PBD文件 416
22.1.1 什么是EXE文件 416
第二十二章 交付可执行程序 416
22.1 概述 416
22.1.4 各种方案的小结 417
22.1.3 什么是资源 417
22.2 生成应用程序 418
22.4 使用PowerBuilder资源文件 422
22.3 单独交付资源 422
22.4.1 生成PBR文件 423
22.5.2 指定动态库 424
22.5.1 生成资源库 424
22.4.2 执行期间发生的情况 424
22.5 使用动态库 424
22.5.4 包括其他的资源 425
22.5.3 生成动态库 425
22.6 运行应用程序 426
22.5.6 例子 426
22.5.5 执行时发生的情况 426
23.1.1 使用库 431
23.1 库的概述 431
第六部分 管理环境 431
第二十三章 库的管理 431
23.2 处理库 432
23.1.2 组织库 432
23.2.1 观察树 433
23.2.3 限制库目录的显示 434
23.2.2 使用弹出式菜单 434
23.2.5 使用注释 435
23.2.4 选择多个库目录 435
23.3 生成及删除库 436
23.4 拷贝,移动及删除项 437
23.5 浏览库中的项 438
23.6 转至一个绘制器中 439
23.8 使用录出和录入 440
23.7 浏览类层次 440
23.8.2 将项录出 441
23.8.1 整个过程的概述 441
23.8.4 将项录入 442
23.8.3 观察被录出的项 442
23.10 重新生成库 443
23.9 库的优化 443
23.8.5 消除项录出状态 443
23.11 移出和移入库入口项 444
23.12 生成动态库 446
23.13.2 生成库目录报表 447
23.13.1 生成库项目的报表 447
23.13 生成库内容的报表 447
24.1 指定自己的偏好 449
第二十四章 定制PowerBuilder 449
24.2 列出偏好设置变量 451
25.1 为开发者提供联机帮助 455
第二十五章 提供联机帮助 455
第七部分 PowerBuilder的高级使用技巧 455
25.2 为最终用户提供联机帮助 456
26.2.1 DragAuto属性 457
26.2 拖放属性 457
第二十六章 使用拖放技术 457
26.1 概述 457
26.4 拖放函数 458
26.3 拖放事件 458
26.2.2 DragICon属性 458
26.5 标识被拖动的控制器 459
27.1.1 关于MDI主窗口 460
27.1 概述 460
第二十七章 建立MDI应用程序 460
27.1.2 关于主窗口 461
27.2 建立MDI主窗口 462
27.1.4 关于MDI子窗口 462
27.1.3 关于客户区 462
27.3 使用菜单 463
27.4.2 列出打开的子窗口 464
27.4.1 打开子窗口 464
27.4 使用子窗口 464
27.5 提供MicroHelp 465
27.4.5 关闭子窗口 465
27.4.3 安排子窗口 465
27.4.4 将子窗口极大化 465
27.5.2 为控制器提供MicroHelp 466
27.5.1 为菜单项提供MicroHelp 466
27.6 提供工具条 467
27.6.1 在Menu绘制器中操作 468
27.6.3 在Application绘制器中操作 469
27.6.2 在Window绘制器中操作 469
27.7 设定客户区的大小 470
27.6.4 执行期间发生的情况 470
27.8.1 箭头键 471
27.8 MDI应用程序的键盘支持 471
27.8.2 便捷键 472
28.1.1 使用dwModify 473
28.1 修改DataWindow对象 473
第二十八章 使用动态DataWindow对象 473
28.1.2 修改的类型 474
28.2.2 指定DataWindow对象的语法 476
28.2.1 使用dwCreate 476
28.2 生成DataWindow对象 476
28.3.1 查询模式的工作机理 478
28.3 向最终用户提供查询功能 478
28.3.2 使用查询模式 479
28.5 重用DataWindow对象 480
28.4 提供帮助按钮 480
29.1 生成OLE列 482
第二十九章 使用OLE列 482
29.2 预观察OLE列 485
29.3 在应用程序中使用OLE 486
30.1 创建新数据库和表 488
第三十章 PowerBuilder应用程序构造实例 488
30.1.3 创建表 489
30.1.2 创建新的数据库 489
30.1.1 打开Database绘制器 489
30.2.1 加入扩充属性信息 492
30.2 加入扩充属性信息和数据 492
30.2.2 向表中添加数据 493
30.3 创建实例应用程序对象 494
30.3.3 为刚创建的应用程序指定一个图标 495
30.3.2 创建并存储应用程序对象 495
30.3.1 打开Application绘制器 495
30.4.1 创建新的窗口 496
30.4 创建实例窗口 496
30.4.3 给命令按钮添加脚本并进行编译 497
30.4.2 添加命令钮控制器 497
30.4.5 给应用程序添加脚本 498
30.4.4 保存窗口 498
30.5.2 定义窗口的打开位置 499
30.5.1 定义窗口的风格 499
30.4.6 运行应用程序 499
30.5 增强窗口 499
30.6.1 建立第一个DataWindow对象 500
30.6 建立DataWindow对象 500
30.5.3 再次运行应用程序 500
30.6.2 按户号创建组 501
30.7 建立第二个DataWindow对象 502
30.8 改进DataWindow对象 504
30.9.1 在窗口中添加第一个DataWindow 506
30.9 将DataWindow加入窗口中 506
30.9.2 在窗口中添加第二个DataWindow 507
30.9.3 给SQLCA赋值 509
30.10.1 添加按钮并编写脚本 510
30.10 添加数据库维护功能 510
30.10.2 测试应用程序 511
30.11 建立菜单并添加到窗口上 512
30.11.1 建立菜单 512
30.11.2 将菜单放入窗口中 514
30.11.3 测试菜单 515
30.12 创建并使用继承窗口 515
30.12.1 创建继承的窗口 516
30.12.2 测试应用程序 517
30.13 创建实例应用程序的EXE文件 518
30.13.1 创建EXE文件 518
30.13.2 测试EXE文件 519