回 帖 发 新 帖 刷新版面

主题:我的VF*EXE连编不成,为什么?

我做的VF,有密码表单,数据表,报表,菜单。为什么连编后是VF的窗口和密码表单,没我的菜单呢?我的做法是在一个程序里建DO FORM 密码表单.scx ,  do *报表.mpr.。在密码表单设顶层表单并为主文件。请老师们指教。谢谢

回复列表 (共8个回复)

沙发

在init里:
do 菜单程序名.mpr with this, .t.

在菜单生成器中选择“显示”下拉式菜单的“常规选项”菜单项,在对话框中选择“顶层表单”复选框,生成菜单。

板凳

不行啊,我按你说的做了,不行,是不是重新做菜单呢?我只在程序里把这两个命令加进去,出来的还是VF主菜单和密码表单,没有我的菜单,我做菜单时已将系统菜单关闭。谢谢

3 楼

“...密码表单设顶层表单...”,如果没有VFP窗口,就要有一个“全程”都“存在”的作为
“总控制”作用的“总表单”为顶层表单,也就是说你的“密码表单”要一直运行,只有退出
整个系统时才能释放,主程序(即主文件)一般用prg文件比较好些,设置灵活些。“我做菜
单时已将系统菜单关闭...”你关闭系统菜单的代码放在哪儿了?你“密码表单”设为“主文
件”时,编译成EXE文件时,[u][color=FF0000]程序是从主文件开始运行的[/color][/u],其它的(如prg文件)不是被调用的话
是不起作用的。你的主文件应是含有 DO FORM 密码表单.scx , do *报表.mpr的程式序文
件,不是“密码表单”。你是按以下代码关闭主菜单的吗?

SET SYSMENU OFF  &&使主菜单条不能被访问
SET SYSMENU TO     &&关闭主菜单条

4 楼

lwh1188老师好
我关闭系统菜单的代码是在做菜单时,有前两句需要删除,系统菜单关了,就能做出自己的菜单。你说的set、、、我加在程序里了,但没有设他为主文件,我再按你教的再做一下看看,谢谢你

5 楼

老师
 我加了你说的代码,我的菜单没有出来,出来的是VF边框但没有他的菜单和我的密码表单,退不出去。
我设了程序prg为主文件,代码是
set date to ansi
set sysmenu off
SET SYSMENU OFF  &&使主菜单条不能被访问
SET SYSMENU TO     &&关闭主菜单条
DO FORM MM.SCX
Do FORM 合作医疗.mpr  
Read Events 
Clear Events
把密码表单设1-顶层表单,菜单设顶层表单。

请老师说的详细点,我想点EXE后,先密码表单,后出来我自己的菜单。谢谢

6 楼

set date to ansi
set sysmenu off
SET SYSMENU OFF  &&使主菜单条不能被访问
SET SYSMENU TO     &&关闭主菜单条
DO FORM MM.SCX
Do FORM 合作医疗.mpr  
Read Events        这是“事件扫描”的开始,使“程序”处于“一种等待”状态。

*****  Clear Events  &&这是“事件扫描”的结束,要放在“退出”按钮中或“菜单”的“退出”项,一般后面还加上quit。

7 楼

“...想点EXE后,先密码表单,后出来我自己的菜单...”如果关闭了VFP主窗口,你的“密码表单”“通过”之后还要运行一个“作为顶层表单”的表单,你自己的菜单就放在这个表单中,不是放在“密码表单中”,就是说:Do FORM 合作医疗.mpr with this, .t.是放在这个表单的init里的。且这个表单要一直“保持”到“退出系统”才能释放,其它的表单只能是“在顶层表单中”或“作为顶层表单”,不能有“在屏幕中”的表单,“在屏幕中”就是在VFP主窗口中的意思,VFP主窗口都关闭了,“在屏幕中”的表单就不能显示了!

另:调试时,先在命令窗口:clear all 然后选定主文件,再点击“运行”。顶层表单会在windows任务栏显示的,非顶层表单则不会在windows任务栏显示的!

8 楼

谢谢老师
我再试试,我要把文件重新做一次,编了几次,文件都编坏了,我的菜单也用不了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册