Power Builder第4讲 窗口
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
出式窗口用途广泛,它可以显示文字信息,
也可以作成图形化的进度提示窗口,还能够
用于输入用户的选择。
2021年5月10日
第11页
弹出式窗体与主窗体不同,它是通过其他窗体打开的。弹 出式窗体在打开后,焦点自动指向弹出窗体并在弹出窗口 上执行相应的操作;只有将弹出窗口关闭后,其祖先窗口 才可能重新获得焦点。弹出式窗体具有以下特点:
窗口可用来显示信息请求用户输入和响应用户的鼠标或键盘动作2014年12月20日42窗口类型多文档微帮助窗体2014年12月20日主窗体一般还可以称为父窗体独立于其它任何窗体通常作为一个应用程序的启动界面可以有菜单工具栏最大化最小化按钮等
第4讲 窗体编程
教学目标 教学重点 教学过程
2021年5月10日
窗口是用户界面的最基本要素,是应用程序 的界面,应用程序通过窗口显示运行状态和 执行结果。
窗口由4部分组成:属性、事件、函数和控件。 窗口的属性决定了窗口的外观和行为(比如 窗口类型、初始位置、是否有边框等),它 的事件说明了应用程序能够响应用户的操作 类型,它的函数为程序控制窗口提供了简洁 而安全的手段。
首先创建一个Workspace,然后再创建一个 Application,在工具栏上单击 新建按钮,打开 New对话框,选择PB Object选项卡,单击 Window选中图标,然后单击OK按钮,在 Properties窗口中,可以设置窗体类型,最后保 存即可。
2021年5月10日
第8页
主窗口(Main Window)主窗口 是独立的窗口,它不依赖于其它 任何窗口而独立存在,这种类型 的窗口既能够覆盖其它窗口,也 能够被其它窗口覆盖。对功能单 一的应用,通常选用主窗口作界 面基础。
2021年5月10日
第10页
弹出式窗体
弹出式窗口(Popup Window) 弹出式窗
口通常由另一个窗口打开,该窗口一般情况
下成为弹出式窗口的父窗口。弹出式窗口显
示在父窗口前面,它既可以移出父窗口,也
能够覆盖父窗口,但不能被父窗口覆盖,当
父窗口最小化时,弹出式窗口随之隐藏,父
窗口被关闭时,弹出式窗口也随之关闭。弹
end if
2021年5月10日
第23页
七、窗口右击时的RButtonDown事件
当用户在窗口客户区中任何未被有效控件 占用的部分按下鼠标右键时发生。
2021年5月10日
第24页
4.4 窗口函数
打开窗口函数 在应用程序中使用窗口的第一步工作是通过Open( )
函数打开窗口,打开之后才能对窗口进行各种操 作。Open( )函数有两种语法格式: 第一种语法格式为:
窗口被关闭时发生。触发该事件后,没有办 法能够阻止窗口关闭操作。
2021年5月10日
第19页
五、关闭窗口时的件
在开始关闭窗口时,发生该事件,该事件返回一个0或1的 返回值。
执行该事件的事件处理程序后,系统检查返回值,如果返 回值为1,则窗口不被关闭,通常情况下紧随其后发生的 Close事件不被产生;如果返回值为0,则窗口被关闭。
return 1 else Return 0 end if
2021年5月10日
第22页
。
六、按键时的Key事件 当用户在键盘上按下一个键且插入点不在
编辑区域(如单行编辑框、超文本框等)中 时发生。
按任意键关闭窗口
close(parent) 思考:
只有按下某一键的时候触发事件,应如何写语 句?
if keydown(key0!) then messagebox(“dds”,“按下的是0键")
子窗体是从属于主窗体或一个弹出式窗体的窗体,它是依赖与其祖先 窗口而存在的,会跟随其祖先窗口移动,子窗体有以下特点:
– 必须拥有一个主窗体。 – 可以有标题栏。 – 不能有菜单栏。 – 不能超出父窗体的范围。
子窗体的创建同主窗体创建方法一样,只是将Properties窗口中 WindowType下拉列表框的窗体类型设置为Child!选项即可。为前 边创建的myform主窗体创建一个子窗体,命名为chform,并设置子 窗体的TitleBar属性为真,BackColor属性为Sky,运行主窗体,并 打开子窗体。
2021年5月10日
第15页
多文档窗体可以在一个主窗体中可以打开 多个子文档窗体,例如word程序。多文档 窗体创建方法和主窗体相同,只需要将 Properties窗口中的WindowType下拉列 表框选择Mdi!选项即可。
创建多文档窗体时,必须要为它指定一个 菜单,否则系统会弹出一个错误提示框。
打开的窗口不再使用时,应该及时将其关闭, 以释放系统资源。关闭窗口的工作由函数 Close( )实现,其语法格式为: Close
( windowname )
其中:windowname是要关闭窗口的名称。该 函数返回整型值1表示关闭窗口成功,否则 返回值为-1。
针对前面小节示例中打开的窗口w_main,需要 关闭时,在事件处理程序中写上语句: Close (w_main) 即可。
利用该事件的这种特性,程序能够根据当前状态 提醒用户保存数据、询问用户是否真要关闭窗口。 窗口被关闭时,同时关闭任何与之相关的子窗口 和弹出窗口
2021年5月10日
第20页
问:一般用鼠标单击窗口右上角的“X”时, 窗口立即关闭,但有的程序在退出时会弹 出一个确认窗口供用户确认,这是如何实 现的?
例如:关闭w_main窗口
2021年5月10日
第27页
Close(w_main) 例如:关闭父窗口 Close(parent)
2021年5月10日
第28页
4.5 创建窗口
一、创建新窗口 单击“File|New”菜单,在出现的“New”窗口中选
择“PB Object”选项页中的Window对象图标,在 PowerBuilder中将显示一个窗口画板,其中有一个 表示新建窗口的网点状矩形。 二、窗口画笔概述
2021年5月10日
第9页
子窗体
子窗口(Child Window)子窗口从属于另一个窗口,它总是在主窗口 或弹出式窗口中打开,该窗口成为子窗口的父窗口。子窗口可以在父 窗口内部移动,但不能移出父窗口。当子窗口的一部分移出父窗口时, 系统剪裁子窗口,使得只有父窗口内的部分可见。移动父窗口时,子 窗口随之移动,关闭父窗口时,子窗口也随之被关闭。
答:可以利用窗口的CloseQuery事件 在用户关闭窗口时进行确认。在 CloseQuery事件中加入脚本
2021年5月10日
第21页
long ll_return ll_return=MessageBox("提示信息","确认
退出吗?", Question! , YesNo! ,1) if ll_return = 2 then
在窗口画板上端的工具栏中有一些常用的图标,下 面简要的介绍它们的意义。
PainterBar1工具栏
2021年5月10日
第29页
:控件列表图标。单击该图标右边的箭头,在下拉式窗口中 显示出控件图标列表,列表中是能够放置到窗口上的所有控 件。选择某个控件图标,然后在窗口工作区上单击,就把所 选图案所代表的控件放置到窗口上。
型值-1表示打开失败。
2021年5月10日
第25页
例如,我们用窗口画笔定义了一个窗口 w_main,那么在应用对象的Open事件 中写上代码:Open(w_main)则程序运 行后,窗口w_main就会出现在屏幕上。
例如: 打开w_main窗口
Open(w_main)
2021年5月10日
第26页
关闭窗口函数
应答式窗体
响应窗口(Response Window)响应窗口 向用户请求信息,它总是在另一个窗口 (父窗口)中打开。响应窗口被显示时, 用户必须关闭了该窗口后才能操作同一个 应用程序的其它窗口。响应窗口不能被最 大化、最小化,但可以带有控制菜单。
2021年5月10日
第13页
应答式窗体主要用来提示用户输入信息,不能对 其进行最大化、最小化或改变窗体大小的操作。 当用户打开一个应答窗体后就不能在对其他窗体 进行操作,只有在关闭应答窗体后才能继续对其 他窗体进行操作。
除此以外窗口是用户同应用程序之间的交互界面。 窗口可用来显示信息、请求、用户输入和响应用户 的鼠标或键盘动作
2021年5月10日
第6页
4.2 窗口类型
主窗体 子窗体 弹出式窗体 应答窗体 多文档窗体 多文档微帮助窗体
2021年5月10日
第7页
主窗体
主窗体一般还可以称为父窗体,独立于其它任何 窗体,通常作为一个应用程序的启动界面,可以 有菜单、工具栏、最大化、最小化按钮等。
:代码编写图标。单击该图标后,打开代码(脚本)编写窗 口,在该窗口中对需要响应的事件编写事件处理程序。
:设置与查看窗口以及窗口中对象的属性,窗口的多种属性 均可通过单击该按钮后在打开的属性对话框中设置。
:设置控件的跳转(Tab)次序。 :预览窗口图标。在窗口设计过程中,随时都可以单击该图
标查看窗口运行时的效果。。
Open ( windowvar {, parent } ) 其中:①参数windowvar是要显示窗口的名称,我们
可以直接使用窗口画笔中定义的窗口名;
②参数parent可以省略,未省略时,由该参数指定父 窗口的名称,此时,被打开窗口作为子窗口形式 出现。
Open( )函数返回整型值1表示打开窗口成功,返回整
2021年5月10日
第16页
多文档微帮助窗体
多文档微帮助窗体和多文档窗体非常相似, 创建方法同样是将“Properties”窗口中的 “WindowType”下拉列表框选择 “Mdihelp!”选项即可。关于多文档微帮 助窗体的创建可以参照多文档窗体的创建 方法。
2021年5月10日
第17页
4.3 窗口事件及事件处理程序
– 附属于其它窗体。 – 显示在父窗体的上面。 – 当父窗体最小化或关闭时,弹出窗体也会随之最小化或关闭。
可以同时对父窗体和弹出式窗体进行操作。
创建弹出式窗体和创建主窗体方法相同,只需要将 Properties属性窗口中的WindowType属性设置为Popup! 选项。
2021年5月10日
第12页
第1页
教学目标
了解创建窗体的基本步骤 了解如何添加窗体控件 了解窗体属性的设置 窗体的控件调整按钮的使用
2021年5月10日
第2页
教学重点
窗体的属性设置 窗体的方法和事件
2021年5月10日
第3页
教学过程
创建窗体 设置窗体属性 窗体方法 窗口事件
2021年5月10日
第4页
4.1 窗口概述
窗口中第一个跳转次序号最小的对象首先得到焦 点。如果窗口中没有这样的对象,则窗口本身得 到焦点。 三、单击窗口的Clicked事件
2021年5月10日
第18页
用户单击窗口中空白区域时发生,窗口的空 白区域指窗口内未被有效控件占据的区域, 即窗口中没有可见、有效控件的地方。
四、关闭窗口的Close事件
2021年5月10日
第5页
窗口是应用程序图形界面的基础,它由属性、事件、 函数、控件组成,用户通过窗口及窗口上的控件和 菜单表达自己的操作意图。
窗口还是其他PowerBuilder控件(比如按钮、编辑 框、数据窗口控件等)的物理载体,PowerBuilder 中的各种控件均需要放置到窗口才能发挥作用。
窗口对象中最常用的事件是Open、Close、 CloseQuery、DragDrop、Resize
一、打开窗口的Open事件 在窗口打开之后、显示之前发生,此时系统已经
构造好了窗口的所有属性以及其上的所有控件。 二、激活窗口的Active事件 在激活(Active)窗口前发生,该事件发生后,
创建应答窗体和创建主窗体方法相同,只需要将 Properties窗口中的WindowType类型选择设置 为Response!选项即可。创建一个应答式窗体, 命名为rsform,运行主窗体,并打开应答式窗体。
2021年5月10日
第14页
多文档窗体
MDI框架窗口(MDI Frame )和带微帮助的MDI框 架窗口(MDI Frame WithMicrohelp)MDI框架窗口及 其子窗口构成了应用程序的多文档界面风格,它有两 种形式:普通的MDI框架窗口和带微帮助的MDI框架窗 口,两者的区别在于,后一种框架窗口在底部多了个 状态栏,用于显示应用程序简短的当前信息,我们将 其称做微帮助(Microhelp)。典型的MDI框架窗口由 标题、菜单、工具栏、客户区、状态栏组成。 PowerBuilder 开发环境使用的就是带微帮助的MDI框 架窗口。