第7章 pb窗口
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、普通方式创建
(1)在工具条上单击New图标,弹出“New”对话框。 (2)在弹出的对话框中选择“PB Object”标签页,如图7-1所示。
下 午 10:09:34
图7-1
新建对话框
PowerBuilder
3/18
(3)单击选中Window图标,单击“OK”按钮,打开窗口画板,如图7-2所示。
下 午 10:09:34
PowerBuilder
4/18
2、继承方式创建
(1)单击工具条上的Inhert图标 ,打开“Inherit from Object”对话框,如 图7-7所示。在该对话框的“Target”下拉框中选择在哪个目标中打开对象, “Libraries” 列表框中选择当前路径中的库文件(即后缀名为.PBL的文件),在对 象类型下拉框(Objects of Type)中选择对象类型Windows,在中间的对象列表框 中选择从哪个对象继承。
下 午 10:09:34
PowerBuilder
15/18
(4)带参数关闭窗口(CloseWithReturn)
在响应窗口(Response Window)中,使用CloseWithReturn()函数 在关闭窗口的同时向打开该窗口的程序返回一个值。与OpenWithParm() 函数相似,CloseWithReturn()函数同样借用全局对象Message保存返回 的值。CloseWithReturn()函数的语法格式为: CloseWithReturn(windowname, returnvalue) 其中,windowname是要关闭的窗口;returnvalue是返回值,该值 保存在消息对象Message的属性中。
下 午 10:09:34
PowerBuilder
7.2
窗口的类型
6/18
PowerBuilder提供了六种窗口类型,它们的表现风格和使用环境各不相同。 在窗口对象的属性视图区中的“General”标签下,可以看到“WindowType”下拉 列表中显示的六种窗口类型,如图7-9所示。 1.主窗口(main!) 主窗口是独立于其他窗口的单独窗口,能覆盖其他的窗口,同时也能被其他 的窗口所覆盖。 2.弹出式窗口(popup!) 弹出式窗口通常由另一窗口打开(该窗口就成为弹出式窗口的父窗口)。弹 出式窗口常用来显示不需用户做出响应的信息。 3.子窗口(child!) 子窗口从属于另一个窗口,总是在主窗口或弹出式窗口中打开(该窗口成为 子窗口的父窗口)。子窗口没有菜单,也不能被当作活动窗口。 子窗口可被用作窗口插件和ActiveX控制,这在开发互联网应用时非常有用。 4.响应窗口(response!) 响应窗口用于向用户显示信息,通常从另一个窗口中打开。应用程序中常用 的MessageBox对话框就是响应窗口应用的具体实例。 5.多文档界面窗口(mdi!)和带微帮助的多文档界面窗口(mdihelp!) MDI窗口是一个可在其中显示其他窗口的主窗口。典型的MDI框架窗口由标 题、菜单、工具栏、客户区、状态栏组成。 图7-9 窗口类型下拉列表 PowerBuilder开发环境本身就是带微帮助的MDI框架窗口。
7、Timer
事件参数:无 发生时机:调用Timer函数启动定时器,在设定时间到后发生。
下 午 10:09:34
PowerBuilder
12/18
7.5
窗口的函数
1、系统级操作窗口的函数
(1)打开窗口函数(Open)
在应用程序中使用窗口的第一步工作是通过Open()函数打开窗口,打开 之后才能对窗口进行各种操作。Open()函数有两种语法格式,第一种语法格 式为: Open(windowvar[,parent]) 其中,参数windowvar是要打开的窗口名称(即保存窗口时所起的名字); 参数parent指定父窗口的名称,被打开窗口作为子窗口出现。Open()函数返 回整型值,1表示打开窗口成功,-1表示打开失败。 Open()函数的第二种语法格式为: Open(windowvar,windowtype[,parent]) 其中参数windowvar、parent的意义与第一种格式相同。参数 windowtype是个字符串,是希望打开的窗口的类名,需要注意的是, windowtype必须与参数windowvar的类继承链中某个类相同。
标签页 作用
General
Scroll Toolbar Other
设置窗口的名称,类型,风格,颜色,关联菜单, 以及窗口最小化时,代表窗口的图标
设置垂直和水平滚动条 设置工具条 设置窗口运行时显示的位置和大小、光标移进窗口 中所显示的鼠标指针类型
表7-1
下 午 10:09:34
窗口属性设置可选页列表
下 午 10:09:34
PowerBuilder
14/18
(3)关闭窗口函数(Close) 打开的窗口不再使用时,应该及时将其关闭,以释放系统资源。关闭 窗口的工作可由函数Close()实现,其语法格式为: Close(windowname) 其中,windowname是要关闭窗口的名称。该函数返回整型值,1表示关 闭窗口成功,否则返回值为-1。针对前面示例中打开的窗口w_main,需要 关闭时,若已经在窗口上放置一个按钮close,则可在该按钮的“Clicked” 事件处理程序中写上以下语句: Close (w_main) 或 Close(Parent) 注意:后一种方式中的Parent参数说明要关闭的窗口是该按钮的父对 象,这种方式与具体的窗口名称无关,具有通用性,因此,在开发过程中, 应尽量利用这种方式。
6、Resize
事件参数:ULong sizetype、Integer newwidth、Integer newheight 发生时机:当窗口大小发生变化时产生,窗口被打开时也产生此事件。 参数sizetype指明改变窗口大小的类型(最小化、最大化、恢复等); newwidth指明窗口的新宽度;newheight指明窗口的新高度。
34powerbuilder7187373设置窗口属性设置窗口属性表71窗口属性设置可选页列表标签页作用general设置窗口的名称类型风格颜色关联菜单以及窗口最小化时代表窗口的图标scroll设置垂直和水平滚动条toolbar设置工具条other设置窗口运行时显示的位置和大小光标移进窗口中所显示的鼠标指针类型11在窗口画板中设置窗口属性在窗口画板中设置窗口属性在窗口画板中设置窗口属性的步骤如下
2、窗口对象级函数
除了系统级的函数外,PowerBuilder为窗口本身也提供了许多对象级 的函数,如show、hide、move等。
4、Show
事件参数:Boolean show、Long status 发生时机:窗口显示之前发生。窗口的Show函数将触发该事件。参 数show的值总为TRUE;status指明窗口的状态。
下 午 10:09:34
PowerBuilder
11/18
5、Hide
事件参数:无 发生时机:在窗口被隐藏前的瞬间发生。
下 午 10:09:34
PowerBuilder
10/18
3、CloseQuery
事件参数:无 发生时机:在开始关闭窗口时,发生该事件,该事件的返回值为0或1 的值。执行该事件的处理程序后,系统检查返回值,如果返回值为1,则窗 口不被关闭,通常情况下紧随其后发生的“Close”事件不被产生;如果返回 值为0,则窗口被关闭。利用该事件的这种特性,程序能够根据当前状态提 醒用户保存数据、询问用户是否真要关闭窗口。窗口被关闭时,同时关闭 任何与之相关的子窗口和弹出窗口。
对象列表框
图7-7
继承方式创建窗口对话框
下 午 10:09:34
PowerBuilder
5/18
(2)单击“OK”按钮,在打开的窗口画板中出现继承的新对象。用户可以从窗 口画板的标题栏上了解继承关系,如图7-8所示。
图7-8 继承方式创建窗口的继承关系
(3)单击保存图标保存窗口。 对继承方式创建的对象也有一些限制,如: 1)在没有删除后代对象的情况下,不能删除祖先对象。 2)不能删除继承来的控件,但可将其Enabled和Visible属性值 设置为False,使其不可用和不可视。 如果应用程序规模不是很大,在大多数情况下,可以不使用继承方式 创建,以普通方式创建窗口。这样,用户可以完全根据需要进行修改,而 不用顾忌窗口之间的继承关系。
PowerBuilder
8/18
2、在代码中设置窗口属性
窗口的属性除了在属性对话框中设置外,某些属性还可以用代码设置, 这样可以实现动态设置窗口属性。属性对话框中使用的名称往往不是真正 的属性名,但两者很相似,通过对比可以找出两者的关系。编写代码中需 要使用属性时,必须使用真正的属性名,而不是属性对话框中的名称。 例如,在MDI框架窗口中,当工具栏处于浮动状态时,可使用下面的 语句来设置工具栏的宽度: This.ToolbarWidth = 500 利用下面的代码,使得窗口w_mine打开时居中: w_mine.Center = TRUE
1、Open
事件参数:无 发生时机:在窗口打开之后、显示之前发生,此时系统已经构造好了 窗口的所有属性以及其上的所有控件。下述函数触发窗口的“Open”事件: Open、OpenWithParm、OpenSheet、OpenSheetWithParm。
2、Close
事件参数:无 发生时机:窗口被关闭时发生。触发该事件后,没有办法能够阻止窗口 关闭操作。
下 午 10:09:34
PowerBuilder
13/18
(2)带参数打开窗口函数(OpenWithParm) 有些窗口可能要反复使用,每次使用时都向窗口提供不同的参数,此时, 利用带参数打开窗口函数OpenWithParm()既方便又简单。第一种语法格式为: OpenWithParm(windowvar,parameter[,parent]) 其中,windowvar是要打开的窗口名称;parameter是希望传递的参数, 该参数将被放置到系统缺省的全局对象Message中 parent指定父窗口的名称, 被打开窗口作为子窗口出现。OpenWithParm()函数返回整型值,1表示打开 窗口成功,-1表示打开失败。 OpenWithParm()函数的第二种语法格式为: OpenWithParm(windowvar,parameter,windowtype[,parent]) 各参数的意义与Open函数的第二种格式相同。由于不常用,在此不作详 细叙述。 由于打开窗口时,可向窗口传递用户定义结构变量类型,因此需要同时 向窗口传递多个参数时,可以首先定义一个覆盖各参数的结构,为结构中的 各个变量赋值后,将整个结构作为一个变量用OpenWithParm()函数传递,从 而达到传递多个参数的目的。
图7-2 窗口画板
(4)在窗口上放置所需的控件,并进行了相应的编程后,单击工具栏上的 保存图标,保存新创建的窗口(在保存窗口以前,可以先预览一下,检查窗 口是否满足要求)。 注意:如果新建的窗口中未作任何改变,例如:在窗口中放置控件或修 改窗口属性,那么工具栏中的保存图标是不可用的,该窗口无法保存。
下 午 10:09:34
PowerBuilder
9/18
7.4
窗口的事件
作为应用程序的对象之一,窗口不仅有属性,而且有丰富的预定义事件。 对窗口的编程过程,实质上就是对这些事件编写事件处理程序的过程。窗口的 事件有很多,但并不需要对每个事件都编写事件处理程序,而只要对需要响应、 需要处理的事件编写事件处理程序。不同事件发生的时机不同,有些事件相互 间有先后次序之分,充分了解事件的发生时机,才能得心应手地开发 PowerBuilder的应用程序。
下 午 10:09:34
PowerBuilder
7.3
设置窗口属性
7/18
1、在窗口画板中设置窗口属性
在窗口画板中设置窗口属性的步骤如下: (1)新建或打开已经存在的窗口,在布局视图中的窗口空白处单击 鼠标右键,或者在控件列表(Control List)视图中,在窗口名上单击鼠 标右键,在弹出窗口中选择“Properties”菜单项,则在窗口画板中显示 窗口的属性视图。 (2)在属性视图中,选择要设置的标签页。
PowerBuilder
1/18
第七章 窗口
7.1 7.2 7.3 7.4 7.5 7.6
下 午 10:09:34
创建窗口 窗口的类型 设置窗口属性 窗口的事件 窗口的函数 多文档界面(MDI)
PowerBuilder
2/18
7.1
创建窗口
窗口的创建方式有两种:普通方式和继承方式。普通方式就是不以已存在的窗口 为祖先,而直接以系统提供的方式创建;继承方式是以一个已经存在的窗口为祖先窗 口,在它的基础上生成新窗口。