Foxpro 优化菜单

发表于:2007-07-02来源:作者:点击数: 标签:
一、跳过 我们在使用WINxx软件时,经常可以看到它们的某些菜单项在某种情况下被屏蔽掉(字成为灰色),这时这些菜单项就不可用,这也叫跳过。 这是一个非常有用的功能,比如当一个数据表没有打开时,就不能执行查询的功能,这时如能将“查询”菜单项屏蔽岂不

一、跳过

我们在使用WINxx软件时,经常可以看到它们的某些菜单项在某种情况下被屏蔽掉(字成为灰色),这时这些菜单项就不可用,这也叫跳过。

这是一个非常有用的功能,比如当一个数据表没有打开时,就不能执行查询的功能,这时如能将“查询”菜单项屏蔽岂不很酷,那么VFP能否做到这一点呢?能!而且很容易,方法是:

  1. 进入菜单设计器;
  2. 找到需要屏蔽的菜单项;
  3. 按该项后的选项按钮,参见 ;
  4. 按后出现 ,在“跳过”文本框中输入一个表达式,其值以后会是逻辑值,当此值为“真”时该菜单项就被屏蔽,比如 ;
  5. 输入完后,确定,会看到选项按钮中有一个钩,表示选项中有内容,如 ;
  6. 将所有菜单项的跳过逻辑表达式设好,重新生成新的菜单程序,关闭菜单设计器就行了。

当程序运行时,在启动菜单之前必须先为所有的跳过变量赋值,否则菜单启动后会发生变量找不到的错误,因为菜单程序会根据这些变量值的“真”、“假”来确定这些菜单项是否可用。

如果您希望菜单一启动某个菜单项就不可用,那么在菜单启动前就给相应的变量赋值“.T.”,否则为“.F.”。

在程序中什么时候要想让这个菜单项不可用,只需要将变量设为“真”即可,又想让它可用,再设为“假”。

比如我们可以给前面的人事档案程序的查询等菜单项设一跳过表达式:

.not. dkda

这里为什么要加个“.not.”呢?因为在菜单的初始化代码中,该变量是设为“假”的,因为这时档案还没有打开,菜单一启动,查询功能应该不可以用,我们前面说过,当跳过表达式为“真”时不可用,这时dkda变量为“假”,我们又想“查询”不可用,于是就取其反面,加上一个“.not.”,整个表达式的值就为真了,反之,当dkda为“真”时,即档案已打开,这时表达式就为假,因此“查询”就可以用了。

初学者看上面这段话,可能会有点晕,多看两遍。

二、给菜单加说明

在许多的软件中我们都会看,当鼠标指到某个菜单项时,在下面的状态栏上可看到该菜单项的详细说明,这个功能是怎么实现的呢,方法如下:

  1. 进入菜单设计器;
  2. 找到要加说明的菜单项;
  3. 按选项按钮;
  4. 在“信息”一栏输入相应的说明,注意,字符要加引号,如 ;
  5. 确定;
  6. 重新生成。

三、给菜单加分隔线

为了使菜单易于查看和调用,常常需要在菜单中加入分隔线,如 ,下面讲做分隔线的方法:

  1. 进入菜单设计器;
  2. 找到要做分隔线的地方,在菜单名称中输入“\-”,其它都不用变,如 。如果需要做分隔线的地方已经有菜单项了,那么就按“插入”插入一空栏再输入;
  3. 重新生成即可。

四、增加热键

如果要给某个菜单项增加热键,方法如下:

  1. 进入菜单设计器;
  2. 找到要加说明的菜单项;
  3. 按选项按钮;
  4. 用鼠标点一下“快捷方式”的“键标签”;
  5. 按下您所需要的键,比如“F2”或者“Ctrl+A”,按了之后出现如 ;
  6. 这时在键说明中也会出现与键标签中一样的内容,键说明是用于显示在菜单上以提示菜单项的热键是什么,如 。当然您也可以不要隐含的这个说明,而输入自己的说明,比如“^A”
  7. 确定及重新生成,再去看看菜单有什么变化,是不是更酷了。

五、插入栏

很多朋友一定想在自己的软件中做出象VFP中的菜单中的一些功能,比如剪切、复制、粘贴等,这些功能如果自己编可就太麻烦,如能直接调用VFP的相应功能那就太好了,完全可以做到,方法是:

  1. 进入菜单设计器;
  2. 进入一个子菜单,注意这些功能是不能加在主菜单上的;
  3. 将光标放在适当位置,按“插入栏”按钮,如 ;
  4. 这时会弹出一个插入栏选择框,如 ,找到您所要插入的功能,然后按“插入”按钮;
  5. 插入后的效果如 ;
  6. 剩下的事情不用我再说了吧。

这样您的菜单也就有了VFP的相应功能了,而且还可以使用它的快捷键,如ctrl+x、ctrl+c等等。

注 意

原文转自:http://www.ltesting.net