请教各位,答对必得50分

bicesky 2004-11-02 04:47:32
请教:小弟有一程序,开始运行后当从菜单中点击一个表单后,如何让表单后面的菜单处于无法选中即不可用状态?如何实现这一功能 ,帮忙回答的具体些
...全文
135 23 打赏 收藏 举报
写回复
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
LAIYANGPJ 2004-11-03
  • 打赏
  • 举报
回复
??????????????
bicesky 2004-11-03
  • 打赏
  • 举报
回复
我按13说的相信做了一下,发现子表单弹出后,主表单是不可用了,但菜单仍然是可选的,恐怕是要设置菜单条件看看了,可惜又不太懂,愁
xclzteb 2004-11-03
  • 打赏
  • 举报
回复
楼上已经讲得很清楚了,有菜单的跳过设置条件就可以了。
十豆三 2004-11-03
  • 打赏
  • 举报
回复
属于菜单在vfp的screen中的情况
LAIYANGPJ 2004-11-03
  • 打赏
  • 举报
回复
SET SKIP OF PAD _1dc0wkjh1 OF _MSYSMENU .T.
SET SKIP OF PAD _1dc0wkjh2 OF _MSYSMENU .T.
记住了:这样在每次生成菜单后这_1dc0wkjh1. _1dc0wkjh2都会自动产生一个不同的也就是说你每运行一次所有的表单及主文件都要改的.
要想不改的话还是试一下我刚才给你发的那个吧!!!!!1
bicesky 2004-11-03
  • 打赏
  • 举报
回复
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD _1dc0wkjh1 OF _MSYSMENU PROMPT "设备录入(\<L)" COLOR SCHEME 3 ;
KEY ALT+L, ""
DEFINE PAD _1dc0wkjh2 OF _MSYSMENU PROMPT "设备调换(\<D)" COLOR SCHEME 3 ;
KEY ALT+D, ""
这是我菜单.mpr中的前几行代码,请真对它,告诉我我的set skip....该如何写呢?
bicesky 2004-11-03
  • 打赏
  • 举报
回复
我现在觉得set skip...的方法应该是最简单易行的,可看了帮助文件,试验多次均不见效果啊
请教这东西到底怎么用啊,能否给几个详细的例子
LAIYANGPJ 2004-11-03
  • 打赏
  • 举报
回复
to:楼主
你的表单在按以上十豆三的方法生成以后加上以下几个代码可达到你的要求(设定你的菜单项为3):
1.在主程序开始加上:
PUBLIC A(1),A(2),A(3)
STOR .F. TO A(1),A(2),A(3)
2.在你的每一个表单的LOAD事件里加上:
STOR .T. TO A(1),A(2),A(3)
3.在你的每一个表单的UNLOAD事件里加上:
STOR .F. TO A(1),A(2),A(3)
以上如果你想在运行表单时或在退出表单后,你的菜单项为可选或不可选完全由STOR .T.(或.F.) TO .....决定.
4.文件--->打开--->修改---->(菜单设计器)
选项栏有一个灰色的小框,点第一个让他加上一个"对号"--->提示选项中的跳过中输入A(1),依次把A(2),A(3)分别加到上面说的另外两个菜单选项中.
OK。。。。。。。。。

十豆三 2004-11-03
  • 打赏
  • 举报
回复
你是这样的吗?

建一个顶层表单作为主表单,在此表单的Init事件中:do 菜单名.mpr with this,.t
bicesky 2004-11-03
  • 打赏
  • 举报
回复
我是用菜单设计器建立的菜单,并用do menu ....调用的
bicesky 2004-11-03
  • 打赏
  • 举报
回复
13兄我就是按您所说先做了一个主表单,并让scree不可显示了,那么应该不是属于vfp的screen中的情况吧
至于设置跳过我也试了(在screen的情况下)由于没有用过,我是这样用的在一个表单的init里(甚至activate里)写如下语句:SET SKIP OF MENU menu .T.(menu就是我的菜单名)但这个表单打开后,菜单仍然可用啊?不懂,set skip到底如何使用呢?
十豆三 2004-11-03
  • 打赏
  • 举报
回复
我上面的方法是在顶层表单中加入一个菜单,然后其它表单设为模式表单,并且在顶层表单中。

如果你不是这样的菜单,就通过菜单的跳过来实现。
十豆三 2004-11-03
  • 打赏
  • 举报
回复
菜单不活动,不是移动!不活动,菜单项都是灰的,你什么也做不了呀!!!
另外,你的菜单是在顶层表单还是属于vfp的screen中的情况
bicesky 2004-11-03
  • 打赏
  • 举报
回复
请教:小弟有一程序,开始运行后当从菜单中点击一个表单后,如何让表单后面的菜单处于无法选中即不可用状态?如何实现这一功能 ,帮忙回答的具体些
****************************
以上是我最初的问题,那么显然:
13兄,我的意思是要菜单不可选,这是重点,菜单能否移动我不在乎啊,您的回答好像偏了,另外我是VFP8.0 SP1,请问如何使菜单不可用啊?????
十豆三 2004-11-03
  • 打赏
  • 举报
回复
菜单是可选,但不活动。如果是VFP8的话!
十豆三 2004-11-03
  • 打赏
  • 举报
回复
我按13说的相信做了一下,发现子表单弹出后,主表单是不可用了,但菜单仍然是可选的
------------------------------
菜单是可选,但不活动。如果不VFP8的话!
LAIYANGPJ 2004-11-02
  • 打赏
  • 举报
回复
再问一下,我的菜单就是在主程序中do menu.mpr产生的,这属于菜单在vfp的screen中的情况还是属于在顶层表单中的菜单???
是你的设定问题了.在SCREEN中也可,在顶层表单中也可(不过要像以上十豆三所说的设定.).
********************
你要是想把菜单设定为不可选项:
1.用SET SKIP OF
2.在菜单编缉器里设定菜单的跳过项为.T.,调用时则返加.F.
bicesky 2004-11-02
  • 打赏
  • 举报
回复
再问一下,我的菜单就是在主程序中do menu.mpr产生的,这属于菜单在vfp的screen中的情况还是属于在顶层表单中的菜单???
十豆三 2004-11-02
  • 打赏
  • 举报
回复
VFP6不能通过此方法来让菜单为不活动,VFP6可以设置菜单中“跳过”再结合变量即可实现
十豆三 2004-11-02
  • 打赏
  • 举报
回复
1、建一个顶层表单作为主表单,在此表单的Init事件中:do 菜单名.mpr with this,.t.(此表单即为菜单所在的表单)
2、建一个菜单,要把菜单的<常规选项>中<顶层表单>和<替换>选中。操作如下:
打开你的菜单,点击VFP菜单的“显示”(View)->“常规选项”(General Options)->选中“顶层表单”(Top-Level Form),位置(Location)设置成“替换”(Replace)
击VFP菜单中的“菜单”(Menu)->“生成”(Generate)->出现窗口后,点击“生成”(Generate)。

3、其它子表单的ShowWindow为“在顶层表单中”,并且WindowsType的值为1(即模式表单)。

4、建一个程序(prg)为项目的主文件。在这个程序中调用一个主表单,Prg的内容参考如下:
CLOSE DATA
_screen.visible=.f.
set date to YMD
SET CENTURY ON
SET HOURS TO 24
set safe off
set talk off
set sysmenu to
set exclusive on
set event on
...........
do form 表单A &&表单A为你的主表单名
Read Events
...........

5、这样当执行程序时,菜单和主表单为活动的,当执行一个子表单时,菜单为不可选,即不活动(只有VFP8以上可以)。
加载更多回复(3)
发帖
VFP

2576

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
帖子事件
创建了帖子
2004-11-02 04:47
社区公告
暂无公告