首页 百科知识 使用菜单设计器创建普通菜单系统

使用菜单设计器创建普通菜单系统

时间:2022-10-21 百科知识 版权反馈
【摘要】:这里我们首先学习使用菜单设计器创建普通菜单,其他菜单以后再讲解。关闭“菜单设计器”。除了为含有子菜单的菜单或菜单项指定过程外,还可以创建一个全局过程,使其应用于整个菜单系统。而用3.的方法建立的过程,使用于菜单系统中的所有的菜单项,即选中菜单系统中的任何一项,都执行该过程。

11.1.2 使用菜单设计器创建普通菜单系统

用户在VFP中可以创建两种形式的菜单,一种是普通菜单,另一种是快捷菜单。因此,在用户使用菜单设计器创建菜单时,系统首先显示如图11-1所示的“新建菜单”对话框来让用户选择菜单类型。这里我们首先学习使用菜单设计器创建普通菜单,其他菜单以后再讲解。

一、创建步骤

创建普通菜单的操作步骤如下:

(1)在“新建菜单”对话框中选择“菜单”。

(2)在“菜单设计器”中,输入第一个菜单项,“菜单名称”为“文件”。

(3)在“结果”框中输入“子菜单”。

(4)单击旁边的“编辑”按钮,进入新的菜单设计器窗口进行子菜单的设计。

(5)在“菜单设计器”中,输入第一个子菜单项,“菜单名称”为“数据导入”,在“结果”框中输入“命令”;输入第二个子菜单项,“菜单名称”为“录入名单”,在“结果”框中输入“命令”;输入第三个子菜单项,“菜单名称”为“录入成绩”,在“结果”框中输入“命令”;输入第四个子菜单项,“菜单名称”为“退出”,在“结果”框中输入“过程”。

注意:如果要移动菜单项的位置,只要把鼠标放在“菜单名称”前的移动按钮(双箭头)上,拖动到相应的位置即可。

(6)在“菜单设计器”中,单击“菜单级”列表中选择“菜单栏”。此时系统进入主菜单的设计界面。

(7)在“菜单设计器”中,输入第二个菜单项,“菜单名称”为“查询”,在“结果”框中输入“子菜单”,单击旁边的“编辑”按钮,进入新的菜单设计器窗口进行子菜单的设计。

(8)在“菜单设计器”中,输入第一个子菜单项,“菜单名称”为“经费查询”,在“结果”框中输入“命令”。单击“菜单级”列表中选择“菜单栏”。此时系统返回主菜单的设计界面。

(9)在“菜单设计器”中,输入第三个菜单项,“菜单名称”为“经费”,在“结果”框中输入“子菜单”,单击旁边的“编辑”按钮,进入新的菜单设计器窗口进行子菜单的设计。

(10)在“菜单设计器”中,输入第一个子菜单项,“菜单名称”为“输入数据”,在“结果”框中输入“命令”。单击“菜单级”列表中选择“菜单栏”。此时系统返回主菜单的设计界面。

最后:在“菜单”菜单中选择“生成”,然后在出现的对话框中选择“是”,再在生成菜单对话框中选择输出文件的路径“a:\mainmenu”,按“产生”按钮即可。关闭“菜单设计器”。

用户在设计菜单时可随时使用“预览”按钮来查看自己设计的菜单和子菜单,只是此时的命令不能执行命令。

二、给菜单项分组

为了增强菜单的可读性,根据功能的需要,有时需要将菜单项进行分组。例如VFP系统菜单的“文件”菜单中,用线将“新建”、“打开”、“关闭”与“保存”等分隔。如图11-4。

img369

图11-4 “文件”菜单

可以按下列步骤对菜单项进行分组:

(1)在需要分隔的两个菜单项之间插入一个新菜单项。

(2)在该菜单项的“菜单名称”栏中输入“\-”即可。

也可以先插入菜单项,在该菜单项的“菜单名称”栏中输入“\-”,然后再将此菜单项即分隔线拖到相应的位置。

对菜单项分组以后,其他的操作和上面讲解的一样。

三、给菜单项指定任务

当用户选择一个菜单的时候,将执行菜单所对应的任务,它可以是显示一个表单或者激活另一个菜单系统。上述的菜单系统还不具备此功能。因此,创建菜单系统时,必须为菜单项指定所需要执行的任务。

菜单或菜单项所要执行的任务,可以是一个命令语句,也可以是对过程的调用。如果同一组命令可能在多个地方调用,则应将这组命令编写成过程。

1.使用命令完成任务

要执行任务,可以为菜单或菜单项指定一个命令,它可以VFP中任何有效的命令语句,包括对过程或程序的调用。被调用的程序或过程要给出路径名。

为菜单或菜单项指定命令的步骤如下:

(1)在“菜单名称”栏中选择相应的菜单标题或菜单项。

(2)在“结果”框中,选择“命令”。

(3)在“结果”框右侧的框中,输入命令,如图所示,如果命令中使用程序或过程调用,则用Do命令执行。

例如,要为上述的菜单中“文件”菜单下的“数据导入”菜单项指定命令,则在“结果”框中,选择“命令”,在其右侧的框中输入“Do Form a:\sjdl”

2.使用过程完成任务

可以为菜单或菜单项指定一个过程。指定过程的方式取决于菜单或菜单项是否有子菜单。

(1)为不含有子菜单的菜单或菜单项指定过程

操作如下:

①在“菜单名称”栏中,选择相应的菜单标题或菜单项。

②在“结果”框中,选择“过程”,若在此前没有定义过程,则在“结果”右侧出现“创建”按钮,否则出现“编辑”按钮。

③选择“创建”或“编辑”按钮,弹出过程编辑窗口,如图11-5所示。

④在窗口中键入正确的过程代码,然后关闭此窗口即可。

例如,在上述菜单中,为“文件”菜单下的菜单项“退出”指定过程:

Thisform.Release

quit

img370

图11-5 过程编辑框

(2)为含有子菜单的菜单或菜单项指定过程

当用户在打开“菜单设计器”的时候,在VFP系统菜单上不仅会出现“菜单”菜单,而且在“显示”菜单中增加了两个选项,即“常规选项”和“菜单选项”。选择菜单选项后,会出现“菜单选项”对话框,如图11-6所示。该对话框为菜单栏(即顶层菜单)或各子菜单项输入代码,它包括以下几个选项:

img371

图11-6 “菜单选项”对话框

①名称

在这里显示的是菜单的名称,如果用户当前正在编辑主菜单,则此处的文件名是不可改变的(其名称为“菜单栏”),即所有的主菜单共享一个过程。如果用户当前正在编辑子菜单,则此处的文件名可以改变。缺省时这里的文件与用户在菜单设计窗口中菜单级弹出列表窗口的内容一样,在使用汉字提示的情况下最好在这里改一下。

②过程

这个编辑框用于输入或显示菜单的过程代码。如果代码很多超出编辑框的大小,右侧的滚动条将激活。

③编辑按钮

单击这个按钮将打开一个文本编辑窗口,这样用户就不必在“菜单选项”对话框中输入代码了。

要进入打开的代码编辑窗口,单击“确定”按钮关闭菜单选项对话框。

讲解了“菜单选项”对话框功能后,我们再来为含有子菜单的菜单或菜单项指定过程,其操作如下:

①在“菜单设计器”窗口中的“菜单级”框中,选择包含相应菜单或菜单项的菜单级。

②从VFP系统菜单中选择“显示”菜单项的下拉菜单中的“菜单选项”菜单项。

③在“菜单选项”对话框中输入相应代码。

3.为菜单系统创建默认过程

除了为含有子菜单的菜单或菜单项指定过程外,还可以创建一个全局过程,使其应用于整个菜单系统。执行菜单系统时,若选定了一个没有指定过程的菜单项,将执行这个过程。

例如,对于一个正在开发中的应用程序,其中有的菜单还没有设计好菜单或过程,这时可以为这些菜单创建一个临时的过程,当选定这些菜单时,执行此过程。

为菜单系统创建默认过程,要在常规选项中进行设置。当用户在打开“菜单设计器”的时候,在VFP系统菜单中“显示”菜单中有“常规选项”。选择常规选项后,会出现“常规选项”对话框,如图11-7所示。该对话框为整个菜单系统输入代码,它主要由以下几个部分组成:

img372

图11-7 “常规选项”对话框

(1)“过程”编辑框:在再输入菜单过程的代码。如果代码过多超出了编辑框的大小,右侧的滚动条将激活。

(2)“编辑”按钮:单击这个按钮将打开一个编辑窗口来输入菜单过程代码,这样用户就不用在小的编辑框中输入代码了。要进入编辑窗口编写程序单击“确定”关闭“常规选项”对话框就可以了。

(3)“位置‘区′”,它包括4个按钮:

①替换:将现有的菜单系统替换成新的(用户定义的)菜单系统。

②追加:将用户定义的菜单附加到现有菜单的后面。

③在……之前:将用户定义的菜单插入到指定的菜单的前面。选中这一选项时将出现一个弹出列表,在弹出列中列出了当前菜单系统的菜单名。在此弹出列表中选定一个菜单名,用户定义的菜单就会在该菜单的前面出现。

④在……之后:将用户定义的菜单插入到指定的菜单的后面。选中这一选项时将出现一个弹出列表,在弹出列中列出了当前菜单系统的菜单名。在此弹出列表中选定一个菜单名,用户定义的菜单就会在该菜单的后面出现。

(4)菜单代码,它包括如下两个复选框:

①设置:选取这一项将打开一个编辑窗口,在此窗口中可以为菜单系统输入一段初始化代码。若要进入打开的初始化代码编辑窗口,单击“确定”按钮关闭“常规选项”对话框。

②清理:选取这一项将打开一个编辑窗口,在此窗口中可以为菜单系统输入一段结束代码。若要进入打开的结束代码编辑窗口,单击“确定”按钮,关闭“常规选项”对话框。

(5)顶层表单

如果选定该复选框,将允许该菜单在顶层表单(SDI)中使用。如果未选定,只允许该菜单在VFP页框中使用。

为菜单系统创建默认过程的步骤如下:

①打开正在设计或编辑的菜单系统。

②从VFP主菜单的“显示”中,选择“常规选项”菜单项。

③在弹出的“常规选项”对话框中编写或调用过程,或选取“编辑”,再选择“确定”,打开独立的编辑窗口,编写调用过程。

这里要注意的是:

a.上述两种建立的过程,其作用范围不同。在2.中创建的过程,只有在菜单中选定对应的菜单项后才执行其过程。而用3.的方法建立的过程,使用于菜单系统中的所有的菜单项,即选中菜单系统中的任何一项,都执行该过程。

b.在菜单系统中,若某一个菜单项指定了对应的过程,而且菜单系统具有默认过程,则在选中该菜单项时,执行的菜单项对应的过程,而不是全局过程。

四、给菜单项设置快速访问热键

菜单可以具有快速访问热键,从而方便用户的操作。

对菜单设置快速访问热键的操作步骤如下:

(1)打开上述菜单,在菜单设计器中“文件”菜单项,然后将它改为“文件(\<F)”。

(2)在菜单设计器中“查询”菜单项,然后将它改为“查询(\<S)”。

(3)在菜单设计器中“经费”菜单项,然后将它改为“文件(\<O)”。

(4)从“菜单”菜单项中选择“生成”。

五、给菜单项设置快捷键

另一种快速访问菜单的方法是建立菜单的键盘快捷键,从而提供了一种不需要访问菜单便执行菜单命令的方法。通常快捷键是Ctrl和一个键盘字母的组合。

img373

图11-8 “提示选项”对话框

创建键盘快捷键的操作步骤如下:

(1)打开要设置键盘快捷键的菜单,例如上述菜单文件a:\menu1.mpr。

(2)选择设置键盘快捷键的菜单项,如“客户”,单击“选项”栏中按钮。

(3)出现“提示选项”对话框后,按下“Ctrl+D”键,此时“键标签”框中和“键说明”自动出项快捷键的对应的文本,通常“键标签”和“键说明”是一致的。如图11-8。

(4)按“确定”按钮。

(5)从“菜单”菜单项选择“生成”,然后退出菜单设计器。

六、设定菜单项的启用状态

用户可以按照对菜单系统使用的不同要求,对应于当前操作的不同状态,根据给定的逻辑条件启用或废止菜单或菜单项。例如,VFP系统中,“文件”菜单下的“保存”菜单,在没有选中任何文件或没有任何文件被打开时,该菜单是不激活的,而当用户打开某个文件时,该菜单项被激活。

设定菜单项的状态的操作步骤如下:

(1)打开要设置菜单项状态的菜单,例如上述菜单文件a:\menu1.mpr。

(2)选择要设置的菜单项,如“客户”,单击“选项”栏中按钮。

(3)在出现的“提示选项”对话框中,选择“跳过”框后的……来激活表达式生成器。

(4)在“表达式生成器”中构造逻辑表达式,它的值决定了该菜单项的启用状态。

说明:当逻辑表达式的值为“真”(.T.)时,则菜单或菜单项处于废止状态。当逻辑表达式的值为“假”(.F.)时,则菜单或菜单项处于启用状态。

(5)关闭“表达式生成器”,关闭“菜单设计器”

七、在状态栏中显示提示信息

当用户选择一个菜单或菜单项时,在状态栏中可以显示当前所选择的菜单项的提示信息,从而帮助用户对菜单项进行选择。

为菜单项设置提示信息的操作步骤如下:

(1)打开已经建立的菜单。

(2)在“菜单设计器”中选择需要设定提示信息的菜单项,单击“选项”栏中按钮。

(3)在出现的“提示选项”对话框中的“信息”框中输入要显示的提示信息,单击后面…按钮,可以进入“表达式生成器” 构造提示信息的表达式。

注意:提示信息应该用双引号将字符串括起来。

(4)关闭“表达式生成器”,关闭“菜单设计器”。

八、设置菜单标题出现的位置

应用程序中可以设置菜单标题出现的位置。

(1)设置菜单标题的相对位置

步骤如下:

①打开已经建立的菜单。

②在“菜单设计器”中选择需要设定的菜单项。

③选择“显示”菜单,选择“常规选项”。

④在“常规选项”对话框的“位置”选项组选择“替换、追加、在……之前、在……之后”,如图11-7。

⑤关闭“常规选项”对话框,设定完成后,将重新排列标题的位置。

此外,用户也可当应用程序编辑对象时,显示并设置菜单标题的位置,如果用户的应用程序包含了一个对象并激活了它,用户所加入的菜单标题将不显示出来,除非用户想让它们显示出来。

(2)对对象可视化编辑时设置菜单标题的位置

步骤如下:

①打开已经建立的菜单。

②在“菜单设计器”中选择需要设定的菜单项。

③单击“选项”栏中按钮,激活“提示选项”对话框。

④在“提示选项”对话框的“位置——容器”选项组选择“无、左、中、右”,如图11-10。

⑤关闭“提示选项”对话框。

九、使用菜单设计器创建快速菜单系统

对于普通菜单,如果我们希望以VFP菜单为模板来创建自己的菜单,可从“菜单”菜单中选择“快速菜单”选项,此时出现的画面如图11-9所示。其实快速菜单就是基于VFP的主菜单栏,添加用户所需的菜单项而建立的菜单。

建立快速菜单的步骤:

(1)选择“新建”,在“新菜单”对话框中选择“菜单”。

(2)从VFP主菜单栏的“菜单”中选择“快速菜单”,此时“菜单设计器”中出现已经定制好的菜单系统,如图11-9。

img374

图11-9 创建“快速菜单”的菜单设计器界面

(3)在“菜单项”按钮组框中单击“插入”按钮。

(4)在“菜单名称”中输入“客户”;在“结果”框中选择“命令”,在其右侧的栏中输入命令:Do Form kh。

(5)在“菜单”菜单中选择“生成”,并在出现的对话框中选择“是”。

(6)选择输出文件的路径a:\menu1.mpr,然后按“生成”,如图11-10。

(7)关闭“菜单设计器”。

“快速菜单设计器”和“菜单设计器”基本相同。主要不同之处是“快速菜单设计器”窗口中将VFP系统主菜单项置于新建菜单中。因此,快速菜单的建立,实质上是用快捷方式将用户的菜单项加载到VFP主菜单系统中。

img375

图11-10 “生成菜单”对话框

十、增加初始化和清理代码

通常通过向菜单系统添加初始化的代码实现如下的功能:创建环境、定义变量、打开文件以及保存和恢复菜单系统的操作。同样为了减少菜单系统的大小,可以使用清理代码,从而在菜单初始化时启用或废止菜单中的菜单项。清理代码放在初始化代码和菜单的定义之后,而位于过程代码之前。

增加初始化和清理代码的操作步骤如下:

(1)打开已经建立的菜单“kjmenu”。

(2)从“显示”菜单中选择“常规选项”,出现“常规选项”对话框。

(3)在“常规选项”对话框中,从“菜单代码”区域选择“设置”复选框,出现一个独立的代码窗口,按“确定”,在代码窗口中输入初始化代码。

(4)关闭“设置”代码窗口。

(5)从“显示”菜单中选择“常规选项”,出现“常规选项”对话框。

(6)在“常规选项”对话框中,从“菜单代码”区域选择“清理”复选框,出现一个独立的代码窗口,按“确定”,在代码窗口中输入清理代码。

说明:如果设计的应用程序的主菜单,则在清理代码中需要加入Read Events命令,并且给退出菜单系统的命令指定Clear Events。

(7)关闭“清理”代码窗口。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈