5.1 掌握Power Scrip语言 5.2 使用控件 实训五 控件应用 第五章 程序设计 5.1 掌握Power Scrip语言 5.2 使用控件 实训五 控件应用
5.1 掌握PowerScrip语言 5.1.1 语言基础 5.1.2 数据类型 5.1.3 运算符与表达式 5.1.4 基本语句 5.1.1 语言基础 5.1.2 数据类型 5.1.3 运算符与表达式 5.1.4 基本语句 5.1.5 实例 5.1.6 嵌入式SQL语句
5.1.1 语言基础 1.语言规则 PowerScript是PowerBuilder 9.0的编程语言。PowerScript语言是一种自由格式的语言,可以随意安排语句行的位置,同时可以在语句行中任意添加空格、缩进等格式编排信息。
2. 分割符与续行符 (1)分割符 PowerScript语句行是以回车符作为结束标志的,如果想在一行中写多条独立的语句,可以在各条语句间用分号“;”隔开。 (2)续行符 通常情况下,PowerScript一行写一条语句,如果一条语句很长,超过了正常编辑窗口的宽度,为了便于阅读,可以使用续行符号“&”。续行符必须是一行的最后一个非空格字符,否则编辑器将把它看做是语句的一部分而产生错误。
3.标识符 标识符用于命名程序中使用的变量、标号、函数、窗口、控件、菜单和其他所有应用的对象的名称。标识符的命名规则如下。 (1)以字母或下划线开头。 (2)只允许使用字母、数字及特殊字符(-、_、$、#、%),长度为40个字符。 (3)不区分大小写,且不能使用保留字。
4.空值(NULL) 空值是PowerBuilder 9.0与数据库交换数据时使用的一种特殊值,代表“不确定”,与空字符串、数值零的意义完全不同。 空值的取得有两种情况,从数据库中读到空值或使用SetNull()函数赋值。 判断空值应该使用函数IsNull()。 如果任一变量为空值则表达式的值就是空值。对于绝大多数函数来说,如果它的某个参数的值为空值,则函数的返回值为空值。
例5-1 执行以下程序 : 执行结果: string person //person值为“” SetNull(person) //person值为NULL,不能使用person=NULL IF IsNull(person) THEN //判断person值是否为NULL,不能使用IF person=NULL THEN MessageBox("提示","person为NULL") ELSE MessageBox("提示","person不为NULL") END IF 执行结果:
5.代词 PowerScript提供了四个代词用于指代特定的对象,可以避免硬编码,增强程序的通用性。 (1)This 例5-2 对“学生选课系统版本3”登 录窗口“w_login”“Clicked”事件 脚本中,函数“close”要关闭的 实际是窗口“w_login”本身,即w_login可以用This代替。
(2) Parent (3) ParentWindow Parent代表当前控件所在的窗口。 例5-3 对“学生选课系统版本3”主菜单“m_main”“退出”菜单项“Clicked”事件脚本中,函数“close”要关闭的实际是捆绑该菜单的窗口,可以用ParentWindow代替。
(4) Super 在编写控件或对象的子对象时,子对象中可以调用父对象的事件处理程序,程序中既可直接利用父对象的名称调用它们,也可以使用Super代词来引用。
6.对象属性、函数和事件的引用 访问对象属性、事件函数以及函数的格式为: <对象名>.<属性>|<事件>|<函数>
5.1.2 数据类型 PowerScript语言有标准数据类型、Any数据类型、系统对象数据类型和枚举数据类型等四种数据类型。 1.标准数据类型 (1)数值型 ①Long 长整型,占4字节的存储空间,存储数据范围为-231~231-1。
②Int(或Integer) 整型,占2字节的存储空间,存储数据范围为-215~215-1。 ③Dec(或Decimal) 小数类型,最大18位有效数字,小数点可以在任何位置。 ④Real 浮点类型,最大6位精度,存储数据范围为1.175495E-38 ~3.402822E+38。 。 ⑤Double 浮点类型,最大15位精度,存储数据范围为2.2E-308~ 1.7E+308。
⑥ULong(或UnsignedLong) 无符号长整型,占4字节的存储空间,存储数据 范围为0~232-1。 ⑦ UInt(或UnsignedInt) 无符号整型,占2字节的存储空间,存储数据范 围为0~216-1。 (2)字符型 ①Char(或character) 字符类型,长度为1。 ②String 字符串类型,长度为0~263-1。
(3)日期时间型 ①Date 日期型,范围为1000-01-01~3000-12-31。 ②Time 时间型,范围为00:00:00~23:59:59:999999。 ③ Datetime 时间日期型,为日期型和时间型的组合形式,仅用于从数据库中读取日期时间数据。 (4)Boolean 布尔型,ture或false。 (5)Blob 二进制大对象型,用于存储大量数据,如长文本、Word文档、图像等。
2. Any数据类型 Any数据类型是PowerScrip特有的一种数据类型,可以存储任何数据类型的数据。Any数据类型在编译时类型是不确定的,只有在运行赋值时才能确定。在脚本运行时,不管是标准类型、系统对象类型、结构、数组,给它赋什么类型就是什么类型,非常方便。
3.系统对象数据类型 系统对象数据类型也是PowerScrip特有的一种数据类型,PowerBuilder 9.0中的系统对象都被认为是系统对象数据类型,如窗口(Window)、菜单(Menu)、命令按钮(CommandButton)、图像(Graph)等。 一般情况下,不需要使用系统对象数据类型,只是简单地认为在PowerBuilder 9.0的开发环境中设计、定义这些对象,然后再使用就可以了。只有在一些需要比较灵活地控制或者较高编程技巧的地方才用到系统对象类型的变量。 创建系统对象类型的变量的具体实例参见例4-3窗口对象“w_pop”“RButtonDown”事件脚本。
4.枚举类型 枚举类型也是PowerScrip特有的一种数据类型,只能由脚本读取而不能修改,一般用做函数的参数或者系统对象的属性。 在PowerBuilder 9.0中,有些函数的参数、系统对象的属性是枚举类型,其值是由系统定义的固定值,用户只能使用不能修改。枚举类型的值总是用感叹号(!)结尾。 查看系统中所有的枚举类型及其取值的操作方法为: (1)单击PowerBar工具栏“Browser”图标,打开“Browser”对话框。
(2)单击“Enumerated”选项卡,在左侧窗口选中要查看的枚举类型,在右侧窗口中双击“Properties”,将显示左侧窗口中所选中的枚举类型的所有的可能取值。 使用枚举类型的好处是直观、准确,脚本的可读性好,便于编译器进行数据类型检查。
5.1.3 运算符与表达式 1.常量 在编写脚本时,对应用程序保持不变的数据可以说明为常量,一来提高程序的可读性和可维护能力,二来避免了不经意的修改,降低了编码出错的概率。 说明常量的基本语法格式为: CONSTANT <数据类型> <常量名>=<值> 声明三个常量的实例如下。 CONSTANT string address=‘西安’ CONSTANT int score=95 CONSTANT date birthday=1964-06-17
2.变量 (1)变量的类型 ①局部变量(Local Variable) 局部变量在声明变量的脚本中有效,脚本执行完毕则销毁。 ②实例变量(Instance Variable) 实例变量属于一个对象,和对象相关联。实例变量在对象打开时创建,关闭时销毁。在对象内部可以访问,也可以在定义时指定访问权限。同时,只有应用对象、窗口对象、菜单对象、用户对象可以拥有实例变量。
③共享变量(Shared Variable) 共享变量属于对象的定义,不属于对象的实例。每个对象实例对变量的修改都会影响该变量在其他对象实例中的值。共享变量是一种静态变量,这不仅意味着它所在的对象关闭后再次打开时,共享变量依然保持对象关闭时的值,而且还意味着同一对象多个实例中的同名共享变量保持相同的值。 ④全局变量(Global Variable) 全局变量属于应用对象,在整个应用程序中都可访问,作用域是整个应用程序。 在PowerBuilder 9.0中,使用最频繁的是局部变量,最不常使用的是共享变量。
(2)变量的定义 变量必须先定义后使用。 定义变量的基本语法格式为: <数据类型> <变量名>[,…] 定义位置: 对于局部变量,通常在脚本的最前部定义。其他类型的变量,选择变量声明选项卡, “Global Variables”、“Shared Variables”、“lnstance Variables” 分别定义全局变量和属于该对象的共享变量、实例变量。 为区分各种变量,可以采用变量加前缀的方法。如全局变量:g_<变量名>,共享变量:s_<变量名>,实例变量:i_<变量名>,局部变量不加前缀。
3.运算符 (1)算术运算符 算术运算符可以对数值类型数据进行运算。包括基本的算术运算符和扩充的算术运算符。 基本算术运算符包括: -(一元减)、+(加)、-(二元减)、*(乘)、/(除)、^(幂)。 扩充算术运算符包括: ++(加1)、--(减1)、+=(加等)、-=(减等)、*=(乘等)、/=(除等)、^=(幂等)。
(2)字符串运算符 +。 (3)关系运算符 =(等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、<>(不等于)。 (4)逻辑运算符 not(非)、and(与)、or(或)。 (5)赋值运算符 =。
4.系统函数 PowerScrip函数分为三类:系统函数、对象函数和数据窗口画笔函数。 系统函数在应用程序的任何地方都可以使用,且函数名无须限定。 对象函数只能在对象生存空间使用,且函数名通常采用“对象名.函数名”格式。 数据窗口画笔函数只能在数据窗口画笔中使用,通常用于生成计算列、有效性检查规则、检索条件和例外处理等。
(1)数值函数 Sin(n)(正弦)、Pi()(圆周率)、Abs(n)(绝对值)、Exp(n)(指数)、Fact(n)(阶乘)、Log(n)(自然对数)、Round(n,m)(四舍五入)、Truncate(x,n)(截断数值到指定小数位)、Mod(n,m)(模)、Sign(n)(符号)、Sqrt(n)(平方根)、Rand(n)(1~n间随机数)、Randomize(n)(初始化随机数发生器)等。 (2)字符串函数 Len(s)(求串长)、Left(s,n)(左取子串)、Right(s,n)(右取子串)、Mid(s,n1,n2)(取子串)、Lower(s)(转小写)、Upper(s)(转大写)、LeftTrim(s)(删除左空格)、RightTrim(s)(删除右空格)、Trim(s)(删除左右空格)、Space(n)(产生空格)、Reverse (s)(反转字符串)、Pos(s1,s2)(字符串s1在字符串s2中的起始位置)、Replace(s1,n1,n2,s2)(将s1指定位置的字符替换为s2)等。
(3)时间日期函数 Today()(系统当前日期)、Year(d)(年)、Month(d)(月)、Day(d)(日)、DayNumber(d)(星期)、Now()(系统当前时间)、DaysAfter(d1,d2) (日期减,即相差的天数) 、RelativeDate(d,n) (日期加,即几天后的日期)等。 (4)类型转换函数 Integer(s)(转换为int型)、Long(s)(转换为long型)、Dec(c)(转换为dec型)、String(any[,format])(转换string型)、Date(any)(转换date型)、Date(year,month,day)(转换date型)、DateTime(d,t)(转换datetime型)。
(5)消息函数 格式:MessageBox("<窗口标题>","<窗口中文本>" [,Icon[,Button[,Default]]]) 功能:打开一个响应窗口,显示出错、警告及其他重要信息。 说明:Icon指定显示在窗口中的图标,Icon取值与对应图标如下,默认值为“Information!”。
Button指定在窗口中显示的按钮,Button取值与 对应按钮如下,默认值为“OK!”。 OK! “确定”按钮 OKCancel! “确定”、“取消”按钮 YesNo! “是”、“否”按钮 YesNoCancel! “是”、“否”、“取消”按钮 RetryCancel! “重试”、“取消”按钮 AbortRetrylgnore! “终止”、“重试”、“忽略”按钮 Default指定默认按钮,用数字1、2、3表示第几 个按钮,默认值为“1”。 返回值:单击按钮的序号,数据类型为int型。
例5-4 执行以下程序 int rc rc=MessageBox(“提示”,“数据已修改,是否保存?",Question!,YesNoCancel!,1) 执行结果:
5.表达式 由操作符和操作对象组成的、符合PowerScrip语法规则的式子,称为PowerScrip表达式。操作对象包括PowerScrip语言中的各种数据类型。 表达式中各种运算符的优先级为:一元加减、幂、乘除、加减及连接、关系运算、非、与、或。
5.1.4 基本语句 1.注释语句 注释语句是对程序代码的说明或暂时禁用,是 程序代码中不编译执行的语句。 注释语句的基本语法格式为: 5.1.4 基本语句 1.注释语句 注释语句是对程序代码的说明或暂时禁用,是 程序代码中不编译执行的语句。 注释语句的基本语法格式为: //<注释文本> 或 /* <注释文本> … */
2.赋值语句 使用赋值语句可以将表达式的值赋给一个变量。 赋值语句的基本语法格式为: <变量名>=<表达式>
3. 创建和删除对象实例语句 (1)创建对象实例 CREATE语句根据指定对象类型创建一个对象实例。 <对象变量名>=CREATE USING <对象类型> 其中,对象变量可以是全局、实例或局部对象变量。 创建对象实例的具体实例参见例4-3窗口对象“w_pop”“RButtonDown”事件脚本。
(2)删除对象实例 DESTORY语句用于删除CREATE语句创建的 象实例。 DESTORY的基本语法格式为: DESTORY <对象变量名> 用CREATE语句创建的对象实例在使用完毕后 应该及时地释放,以使对象实例占用的内存资源 得到重用。一个实例对象被释放之后,该对象实 例不能再被引用。
4.选择语句 当需要对一个条件进行测试并根据测试结果来执行不同的操作时,可以使用选择结构。选择结构由选择语句实现。 (1)基本IF语句 选择语句的基本语法格式为: IF <逻辑表达式> THEN <语句序列1> [ELSE <语句序列2>] END IF
(2)多行IF语句 多行选择语句的基本语法格式为: IF <逻辑表达式1> <语句序列1> ELSEIF <逻辑表达式2> <语句序列2> … ELSE <语句序列n> END IF
(3)多路分支语句 多路分支语句的基本语法格式为: CHOOSE CASE <表达式> CASE <值列表1> <语句序列1> CASE <值列表2> <语句序列2> … CASE ELSE <语句序列n> END CHOOSE 其中,“值列表”用来指定表达式的值,其形式可以是:一个单值、一列以逗号分割的值、一个TO子句(如1TO 5)、一个IS表达式(IS为保留字,代表表达式本身)和以上内容的任意组合。
5.循环语句 当需要重复执行一个SQL语句时,可以使用循环结构。 (1)DO/LOOP语句 DO/LOOP语句的基本语法格式一: DO WHILE <逻辑表达式> <语句序列> LOOP DO/LOOP语句的基本语法格式二: DO LOOP WHILE <逻辑表达式> (2) FOR/NEXT语句 FOR <循环变量>=<初值> TO <终值> [STEP <步长>] NEXT
6.流程控制语句 (1)退出循环语句 (2)循环短路语句 可以使用中断语句提前结束循环。 中断语句的基本语法格式为: EXIT 可以使用短路语句提前结束本次循环。 短路语句的基本语法格式为: CONTINUE
(3)返回语句 返回语句立即终止事件处理程序或函数的执行,把控制 返回到调用程序。 返回语句的基本语法格式为: RETURN [<表达式>] 其中,表达式的值作为返回值返回。 (4)终止语句 终止语句用于终止应用程序的运行。 终止语句的基本语法格式为: HALT [CLOSE] 其中,省略CLOSE时,立即终止应用程序的执行。带CLOSE选项时,先执行应用对象的Close事件,再终止应用程序的执行。
5.1.5 实例 例5-5 求100~200之间的全部素数。 设计:所谓素数,就是除1和自身外不能被其他任何整数整除的整数。按数论理论,若一个整数m不能被2~sqrt(m)整除,则m为素数。 本程序由双重循环构成,外循环m从101取到199,内循环判 断m是否为素数。由于偶数不可能是素数,所以m每次加2。 内循环i从2取到sqrt(m),判断如果m能被i整除即m不是素数, 结束循环,否则i加1后继续判断。内循环结束后,判断i值如 果大于sqrt(m)则循环为正常结束,意味着m不能被所有的2到 sqrt(m)整除,即m为素数。
脚本: 执行结果:
5.1.6 嵌入式SQL语句 在PowerBuilder 9.0开发的应用程序中,绝大多数情况下与数据库的交互操作都是通过数据窗口完成的,原因在于数据窗口以大量丰富的功能为应用程序的开发提供了十分便利的手段。然而数据窗口也不是万能的,有时候需要在程序中直接使用SQL语句操作数据库。
1.规则 在程序中书写SQL语句的格式为: <SQL语句>; 其中,整个SQL语句可以写在一行,也可以写 以使用PowerScript定义的变量(称为共享变量), 但应在变量前加“:”。
2. 建立和断开与数据库的连接 (1)建立与数据库的连接 建立与数据库连接语句的基本语法格式为: CONNECT [USING <事务对象名>]; 其中,默认的事务对象为SQLCA。在执行该句 前,必须正确设置事务对象的数据库连接属性。
(2)断开与数据库的连接 断开与数据库连接语句的基本语法格式为: DISCONNECT [USING <事务对象名>]; 其中,事务对象为CONNECT语句连接的事务对象。 在执行该语句时,首先执行COMMIT语句,完成事务提交,然后解除与数据库的连接。 通常运行应用程序的第一步是设置事务对象,然后建立与数据库的连接。应用程序结束时,断开与数据库的连接。
3.提交和回滚事务 事务是一项完整工作的逻辑单位,要么被完整执行(提交),要么被彻底取(回滚)。 (1)提交事务 COMMIT [USING <事务对象名>]; (2)回滚事务 ROLLBACK [USING <事务对象名>];
4.数据操纵 (1)插入语句 插入语句用于向数据库中插入一条或多条记录。 插入一条记录的插入语句的基本语法格式为: INSERT INTO <表名>[(<列名表>)] VALUES(<值列表>) [USING <事务对象名>]; 插入多条记录的插入语句的基本语法格式为: INSERT INTO <目标表名>[(<列名表>)] SELECT <列名表> FROM <源表名> WHERE <条件> [USING <事务对象名>];
(2)删除语句 (3)修改语句 删除语句用于删除数据库中一条或多条记录。 DELETE [FROM] <表名> [USING <事务对象名>] [WHERE <条件>]; (3)修改语句 修改语句用于修改数据库中的数据。 UPDATE <目标表名> SET <列名>=<表达式>[,…] [FROM <源表名>] [WHERE <条件>] [USING <事务对象名>];
(4)单行检索语句 单行检索语句用于检索数据库中的一条记录。 SELECT <表达式表> INTO <变量表> FROM <源表名> [WHERE <条件>][USING <事务对象名>]; SELECT语句只能检索一条记录,如果检索到多条记 录,将产生错误。
5.2 使用控件 5.2.1 控件概述 5.2.2 操作控件 5.2.3 控件属性 5.2.4 实例:学生选课系统版本4 5.2 使用控件 5.2.1 控件概述 5.2.2 操作控件 5.2.3 控件属性 5.2.4 实例:学生选课系统版本4 5.2.5 实例:学生选课系统版本5 5.2.6 实例:学生选课系统版本6
5.2.1 控件概述 1.控件是系统预先定义好的图形对象,不同的控件完成不同的功能。 5.2.1 控件概述 1.控件是系统预先定义好的图形对象,不同的控件完成不同的功能。 2.控件应有一个惟一的控件名,系统为每种控件提供了一个默认的名称前缀。
3.常用控件 (1)命令按钮(CommandButton) 默认前缀为“cb_”,用于单击时触发—个操作。 (2)图片按钮 默认前缀为“pb_”,在控件图标列表中的图标为,与命 令按钮不同的是该按钮上显示的是图像。 (3)静态文本(StaticText) 默认前缀为“st_”,用于显示提示信息。 (4)单行编辑框(SingleLineEdit) 默认前缀为“sle_”,用于输入一行文本。
(5)掩码文本框 默认前缀为“em_”,与单行编辑框不同的是掩码文本框可以通过“MaskDataType”属性,指定输入或修改的文本的格式。 (6)多行编辑框(MultiLineEdit) 默认前缀为“mle_”,用于输入多行文本。 (7)单选框(或称单选按钮)(RadioButton) 默认前缀为“rb_”,把多个单选框放在一个窗口中,当选中其中一个单选框时,其余单选框自动解除选中状态。 (8)复选框CheckBox) 默认前缀为“cb_”,可以把多个复选框放在一个窗口中,与单选框不同的是,可以一次选中多个复选框。
(9)组框(GroupBox) 默认前缀为“gb_”,用于一个窗口包含多组单选框时对单选框分组,或者对其它控件进行修饰。 (10)下拉列表框(DropDownListBox) 默认前缀为“ddlb_”,用于从一系列值中选择其中一个值。 (11)图片框(Picture) 默认前缀为“p_”,用于显示多种格式(bmp、jpg、gif、wmf以及rle)的图像文件。 (12)水平进度条(HProgressBar)、垂直进度条(VProgressBar) 水平进度条默认前缀为“hpb_”,垂直进度条默认前缀为“vpb_”,用于指示任务的完成情况。
(13) OLE 对象链接与嵌入(OLE)的默认前缀为“ole_”,通常用于在应用程序中嵌入或链接OLE 2.0服务器程序,也可以定制控件(OCX)。 (14)静态超链接 静态超链接(StaticHyperLink)的默认前缀为“shl_”,通常用于在应用程序中访问Internet页面的超链接。 (15)图形超链接 图形超链接(PictureHyperLink)的默认前缀为“phl_”,与静态超链接不同的是该按钮上显示的是图像。
5.2.2 操作控件 1.放置控件 打开控件图标列表→单击控件→单击欲放置控件位置。 2.选中控件 5.2.2 操作控件 1.放置控件 打开控件图标列表→单击控件→单击欲放置控件位置。 2.选中控件 单击控件选中一个,按住Ctrl单击控件选中多个。 3.移动控件 选中控件→拖动。 4.改变控件大小 选中控件→指向边界→拖动。 5.对齐控件 选中控件→单击对齐方式下拉列表→选择对齐方式。 6.删除控件 选中控件→单击右键→选择“Delete”。
5.2.3 控件属性 1.设置控件标题 选中控件→单击标题编辑框→输入标题。 2.设置控件的可视性 5.2.3 控件属性 1.设置控件标题 选中控件→单击标题编辑框→输入标题。 2.设置控件的可视性 将控件的“Visible ”属性设置为TURE或FALSE。 3.设置控件的可访问性 将控件的“Enabled”属性设置为TURE或FALSE。 4.设置控件Tab次序 单击“Tab Order”图标→修改值。
5.2.4 实例:学生选课系统版本4 例5-6 设计“学生选课系统”的“用户登录”窗口。 设计:在用户登录窗口中将一张图片作为界面,并显示软件的名称、版本等信息。同时,输入用户名、密码(以“*”方式显示)并校验(通过用户表),且允许3次输入。 脚本:
操作步骤: (1)制作图片student.bmp,并选择存储位置为 “d:\example”。
(2)在SQL Server 2000的SQL-EM中创建用户表u。
(3)双击左侧系统树窗口中的登录窗口“w_login”,打开登录窗口“w_login”。 (4)单击工具栏图片框控件放置图片框控件“p_1”,并在属性“PictureName”中指定图片为“d:\example\student.bmp”,并将控件大小调整为整个窗口。
(5)单击工具栏静态文本控件放置静态文本控件“st_1”,并命名为“用户名”;单击工具栏静态文本控件放置静态文本控件“st_2”,并命名为“口令”。调整控件大小、位置。
(6)单击工具栏单行编辑器控件放置单行编辑器控件“sle_1”以及“sle_2”,并选中“sle_2”的“Password”属性。调整控件大小、位置。
(7)单击工具栏命令按钮控件放置命令按钮控件“cb_1”,并命名为“确定”;单击工具栏命令按钮控件放置命令控件“cb_2”,并命名为“关闭”。调整控件大小、位置。
(8)设置全局变量:单击“Declare Instance Variables”选项卡,在上部变量选择框中选择“Global Variables”选项。 (9)设置实例变量:单击“Declare Global Variables”选项卡,在上部变量选择框中选择“Instance Variables”选项。 (10)选择“Clicked”事件,删除原脚本。 (11)单击“Layout”选项卡,指向“确定”按钮,单击右键,打开快捷菜单,选择“Scrip”命令,输入脚本。 (12)单击“Layout”选项卡,指向“退出”按钮,单击右键,打开快捷菜单,选择“Scrip”命令,输入脚本。 (13)单击“关闭”按钮,保存修改。 (14)单击PowerBar工具栏“Run”图标,运行应用程序,打开登录窗口。 (15)单击“退出”按钮,退出系统。单击“确定”按钮,验证用户名、密码,如果正确打开主菜单。
5.2.5 实例:学生选课系统版本5 例5-7 设计“学生选课系统”的“帮助”窗口。 设计:帮助窗口的设计有多种方式,为说明控件的使用方法,本例采用OLE控件设计帮助窗口。
操作步骤: (1)制作帮助文件的Word文档,并存储为“d:\example\help.doc”。 (2)选择“File”→“New”命令,将打开“New”对话框,选择“PB Object”选项卡→“Window”,单击“OK”按钮,进入窗口设计界面。 (3)设置窗口属性:在“Title”输入框中输入“帮助”,在“WindowType”框中选择“main!”,在“WindowState”框中选择“normal!”。 (4)单击工具栏OLE控件,打开“Insert Object”对话框。
(5)在“Object Type”下拉列表中选择“Microsoft Word”选项,单击“Create From File”选项卡。
(6)单击“Browse”按钮选择文件“d:\example\help.doc”,单击“OK”按钮,返回窗口设计界面。 (7)击窗口任意位置放置OLE控件,并将控件大小调整为整个窗口。
(8)单击关闭按钮,输入窗口名“w_help”。 (9)打开菜单“m_main”,双击“系统维护”菜单标题“帮助”菜单项,在下部脚本窗口中编写脚本: Open(w_help) (10)单击PowerBar工具栏“Run”图标,运行应用程序。选择“系统维护”→“帮助”命令,打开“帮助”窗口。
5.2.6 实例:学生选课系统版本6 例5-8 设计“学生选课系统”的“修改密码”窗口。 设计:在密码修改窗口中,输入旧密码、新密码及确认密码,按登录用户核对旧密码,并比较新密码与确认密码是否相同。 脚本:
操作步骤: (1)选择“File”→“New”命令,将打开“New”对话框,选择“PB Object”选项卡→“Window”,单击“OK”按钮,进入窗口设计界面。 (2)设置窗口属性:在“Title”输入框中输入“修改密码”,在“WindowType”框中选择“main!”,在“WindowState”框中选择“normal!”。 (3)单击工具栏静态文本控件放置静态文本控件“st_1”,并命名为“旧密码”;单击工具栏静态文本控件放置静态文本控件“st_2”,并命名为“新密码”;单击工具栏静态文本控件放置静态文本控件“st_3”,并命名为“确认密码”。调整控件大小、位置。
(4)单击工具栏单行编辑器控件放置单行编辑器控件“sle_1”、“sle_2”以及“sle_3”,并同时选中“sle_1”、“sle_2”以及“sle_3”的“Password”属性。调整控件大小、位置。
(5)单击工具栏命令按钮控件放置命令按钮控件“cb_1”,并命名为“确定”;单击工具栏命令按钮控件放置命令按钮控件“cb_2”,并命名为“关闭”。调整控件大小、位置。
(6) 选择“确定”按钮“Clicked”事件,编写脚本。 (8) 单击工具栏“保存”图标,输入窗口名“w_password”。 (9) 打开菜单“m_main”,双击“系统维护”菜单标题“修改 密码”菜单项,在下部脚本窗口中编写脚本: Open(w_password) (10)单击PowerBar工具栏“Run”图标,运行应用程序。选择“系统维护”→“修改密码”命令,打开“修改密码”窗口。
实训五 控件应用 实验名称:设计系统登录窗口、帮助窗口和修改密码窗口 目的要求:掌握嵌入式SQL语句和静态文本、单行编辑器、图片框、命令按钮等控件的使用方法 操作步骤: (1) 制作图片。 (2) 将图片放置到登录窗口中。 (3) 设置全局变量以及实例变量。 (4) 放置静态文本、单行编辑器、命令按钮控件,并编写脚本。 (5) 运行应用程序。
结束 放映 (6) 制作Word文档。 (7) 设计“帮助”窗口。 (8) 设置OLE控件与Word文档关连。 (9) 放置OLE控件。 (7) 设计“帮助”窗口。 (8) 设置OLE控件与Word文档关连。 (9) 放置OLE控件。 (10)在系统主菜单中挂接“帮助”窗口。 (11)运行应用程序。 (12)设计“修改密码”窗口。 (13)放置其他相应控件,并编写脚本。 (14)在系统主菜单中挂接“修改密码”窗口。 (15)运行应用程序。 结束 放映