搜索
您的当前位置:首页正文

PB(6)

来源:易榕旅网
第六章 菜单

 菜单是用户操作应用程序的主要界面,它由一系列命令组成选项(菜单项构

成);

 用户通过选择菜单项发出命令,指示应用程序完成用户期待的任务;  菜单是一种独立的对象;

 PB中,用Menu画板来建立,修改菜单,然后粘贴到相应的窗口上;  制作菜单的操作很简单,可以很容易掌握;  主要内容:

菜单概述

创建与修改菜单 设置菜单属性 菜单事件及编程 使用继承建立菜单 使用菜单

多文档界面(MDI)

一、 菜单概述

1.关于菜单和菜单对象

 菜单中的每个选项定义为一个菜单对象;

 菜单对象显示在菜单条,下拉式菜单或者级联菜单中;  下拉式菜单是菜单条的菜单对象下面的菜单;  级联式菜单是下拉式菜单的菜单对象旁边的菜单;

2.使用菜单

 有两种方式使用在PB中建立的菜单;

 在窗口中的菜单条中使用,窗口菜单与窗口相关联,只要在窗口打开,窗口

菜单就显示出来;

 作为弹出式菜单(快捷菜单)使用,只有当脚本执行PopMenu函数时,弹出

式菜单才显示出来; 3.设计菜单

 利用PB可以完全自由地进行设计菜单;

 但是为了让应用程序使用起来更简单,应遵循操作环境的一些规定;

 例如:根据约定,菜单对象后面的省略号(„)表示单击该菜单对象会显示

一个对话框;

 把相关的菜单对象组合在一个下拉式菜单中;  较少使用级联菜单并且只级联一级;

4.建立菜单

 通过设置菜单对象的属性来指定其外观和行为;

 编写脚本以决定如何对菜单中的事件进行响应,可以为菜单声明函数,结构

和变量来支持脚本;  建立菜单的方式有两种:

从头开始建立一个新菜单;

继承已有的菜单的风格,函数,结构,变量和脚本建立菜单;

二、建立新菜单

1. 打开Menu 画板 2. Menu 画板的组成

 WYSIWYG视窗:设计时看到的菜单和运行时的菜单是一样的;  Tree Menu 视窗:树状菜单;  代码视窗:  属性视窗:  菜单工具条:

3. 在Menu 画板中,可以指定下面各项:  在菜单条中显示的若干菜单对象;

 在菜单条每个菜单对象下面显示的若干菜单对象;  菜单对象的属性;  加速键和快捷键;  菜单对象的脚本;

4. 建立菜单  在菜单项编辑区,选定要创建下拉菜单的项,单击鼠标右键,弹出快捷菜单;  Insert Menu Item:插入同级菜单

 Insert Menu Item At End:在本级末尾插入菜单项  Insert Submenu Item:插入下一级菜单

5. 修改菜单

 插入同级新菜单项;  删除当前菜单项;  插入分隔线:“-”,分隔线把相同的菜单项分开,使菜单更加易于用户使用;  移动菜单项;  复制菜单项;  为菜单改名字;

 为菜单项设置加速键:在菜单项名称(一个指定的字母)的前面加上“&”

符号;

三、 控件属性的设置

1.定义菜单项的快捷键

 快捷键只能在菜单画笔中定义,而不能在程序中利用代码进行改变;  使用“Shortcut”标签;

 在同一个菜单中,作为快捷键使用的组合键应当唯一;

2.设置菜单对象的一般属性  Name:菜单项名称;

 Lock Name:指定菜单项名称能否被修改;  Text:菜单项在菜单中显示的内容;

 Microhelp:帮助信息,鼠标移到该项上时,所显示的提示信息;  Tag:菜单的说明信息;  Visible:菜单是否可见;  Enabled:菜单是否有效的;

 Checked:菜单是否显示选中符号;

3.设置菜单的工具栏

 设计创建工具栏,这样用户直接点击图标按钮就可以方便的完成相应的功

能;

 使用“Toolbar”标签;

 最简单的设置菜单的工具栏,只需填写“ToolbarItemName”属性即可;

四、 菜单事件及编程

 菜单是要与菜单事件和函数结合,才能发挥作用;

1.菜单事件

 Clicked事件由以下几种操作触发

鼠标单级菜单项; 使用加速键调出菜单; 使用快捷键调处菜单;

 Help事件由以下几种操作触发

在菜单操作中按下键盘的[F1]键; 点击标题栏上的“问号”;  Selected事件;

菜单的某项被选中但没有做任何操作,菜单项被高亮显示时触发该事件; 该事件最常用的是在脚本中利用ParentWindow.SetMicroHelp()方法显示该菜单项的MicroHelp文本; 2.菜单的函数

 Disable:菜单失效,不能被用户选,同时Enabled属性设置为False;  Enable:菜单有效,同时Enabled属性设置为True;

 Checked:菜单的Checked属性设置为True,在菜单项的旁边显示选中的符

号;

 UnChecked:菜单的Checked属性设置为False,在去掉选中符号;  Hide:隐藏菜单项;

 Show:使隐藏的菜单项显示出来;  PopMenu:显示快捷菜单;

 为了更好的使用菜单,可以定义自己的菜单级函数;

3.引用应用程序中的对象  引用窗口

只需简单地使用窗口的名字,w_cust.WindowState=Minimized!;

可以使用保留字ParentWindow来引用运行过程中与菜单相关联的窗口,Close(ParentWindow)

 引用窗口中的控件和用户对象;

window.control.attribute window.userobject.attribute

例:w_cust.cb_print.Enabled=TRUE  引用菜单对象;

menu.menuobject

menu.menuobject.attribute

当引用下拉式菜单或级联式菜单中的菜单对象时,必须指定每个菜单对象到

正在引用的菜单对象的路径;

例如:m_menu.m_text.m_bold.check()

五、 使用继承建立菜单

 当使用继承建立菜单时,祖先菜单中的所有东西都被他的后代继承;  可以在后代菜单中作以下事情:

在菜单最后添加菜单对象; 在菜单中插入菜单对象; 修改已有的菜单对象;

为在祖先菜单中没有脚本的菜单对象建立脚本; 扩展或取代继承来的脚本; 为菜单声明变量,函数和结构  在后代菜单中不可以作以下事情:

改变继承来的菜单对象的顺序; 删除继承来的菜单对象;

六、 使用菜单

 给窗口添加菜单条

在窗口画板中,把菜单条和窗口关联起来;

在窗口的属性窗口中,在Menu Name文本框中输入要关联的菜单; 在窗口的脚本中标识菜单对象:menu.菜单对象

在运行过程中改变窗口的菜单:在脚本中使用ChangeMenu函数  弹出窗口上的菜单

当用户单击某对象或某控件时,把窗口上某菜单标题下的下拉菜单作为弹出式菜单显示;

只需在某对象或某控件的RbuttonDown事件中写下代码 例:m_main.m_title.PopMenu(PointerX(),PointerY())

七、 多文档界面(MDI)

 MDI是一种特殊风格的窗口,在一个MDI窗口中可以打开多个工作窗口  用户可以在一个环境下打开多个窗口,可以完成多个任务; 1. MDI窗口的构成  菜单  工具栏  MDI框架  客户区域  工作窗口  状态栏

2. 创建一个完整的MDI界面的步骤  建立MDI框架窗口

创建一个新窗口; “Window Tyep”:MDI Frame with MicroHelp; 将各个工作表公用的菜单连接到该窗口上;

一般情况下,框架窗口上不放置任何控件,而是把所需控件放置到工作

 

表上;

创建工作表 创建普通窗口;

指定窗口类型:确保不是“MDI”,“Response”类型; 打开工作表的方法:使用OpenSheet()函数 例:OpenSheet(w_person,ParentWindow)

OpenSheet (w_person,w_parent,5,Original!) 建立MDI应用程序中的菜单; 设置微帮助

微帮助是显示在MDI框架窗口底部状态栏上的上下文相关的文字; 微帮助与菜单联系后,当用户选择菜单项时,系统会显示当前菜单的帮助信息;

为菜单项定义为帮助的方法是:在菜单项的“MicroHelp”属性中输入该菜单项的帮助信息;

如果要为菜单之外的对象定义为帮助:

选择某个控件,在它的Tag属性中输入该控件的帮助信息; 在该控件的GetFocus事件中键入代码: w_frame.SetMicroHelp (This.tag) 设置工具栏

MDI风格的应用程序,可以使用工具栏;

菜单中定义的工具栏只对MDI框架窗口何工作表有效,对其他类型窗口来说,菜单定义的工具栏无效;

工具栏上的图标按钮直接对应于菜单中的某个菜单项; 用户能够控制工具栏的显示特性;

因篇幅问题不能全部显示,请点此查看更多更全内容

Top