VFP连编后不能继续,一闪就没?
VFP连编后,能打开总的FORM,但是继续按进入的COMMOND,一闪就没了,为什么?帮忙指点。。。急!!!看看我的MAIN的代码有没有什么问题?setsafetyoff...
VFP连编后,能打开总的FORM,但是继续按进入的COMMOND,一闪就没了,为什么?帮忙指点。。。急!!!
看看我的MAIN的代码有没有什么问题?
set safety off
set talk off
do form 主欢迎界面
_screen.visible=.f.
read events
set talk on
set safety on
close events
clear all
quit
但是我进入VFP程序后,运行,就可以进入各种表。 展开
看看我的MAIN的代码有没有什么问题?
set safety off
set talk off
do form 主欢迎界面
_screen.visible=.f.
read events
set talk on
set safety on
close events
clear all
quit
但是我进入VFP程序后,运行,就可以进入各种表。 展开
1个回答
展开全部
为达到在显示启动封面之前不显示VFP主窗口的目的,在Config.fpw中已写Screen=off,当程序执行到Do Form myScreen这一句时,如果表单myScreen的ShowWindows属性被设为"在屏幕中",则不管是在开发环境还是在编译环境下,程序都将停下来,表单被显示在_Screen中,而_Screen被隐藏了,因此表单跟着也被隐藏了,所以在屏幕上什么也看不见。这就是第二种情况的产生原因。为了避免这种错误的出现,必须将myScreen表单的ShowWindow的属性设为"做为顶层表单",这样就可使在_Screen被隐藏的情况下,myScreen仍然可以被显示出来。但请注意,在此情况下,Do Form myScreen这句话执行后,程序并不能停下来,而是顺序地执行下去,一直到执行到RETURN后程序退出,这也就是著名的"一闪而过"现象了。为此必须在程序中包含事件处理命令Read Events使程序停下来,如下:
*环境设置
Do Form myScreen &&启动封面表单
Read Events &&开始事件处理:使启动封面停下来
_ Screen.Show &&显示VFP主窗口
Do myMenu.mpr &&安装菜单系统
Read Events &&开始事件处理
RETURN
程序执行Do Form myScreen后,将启动封面显示在屏幕上,然后向下执行到Read Events开始事件处理,此时启动封面表单必须由用户关闭或由表单事件关闭,否则程序将一直停在Read Events这一句上。不管myScreen表单由谁关闭,在关闭代码中必须包含一句Clear Events的停止事件处理命令,以便开始执行Read Events的下一句指令,顺序执行完成_Screen.Show及Do myMenu.mpr后,用户的主界面就建立完成,同理,此处还需要一个事件处理命令让程序再次停下来,开始菜单系统的命令处理,一般情况,菜单系统中将包含的"退出"项,其中有"Clear Events"清除事件处理代码,从而停止第二条"Read Events"事件处理命令,退出整个系统。
附:连编主程序设计:
[转帖]vfP连编主程序设计
--------------------------------------------------------------------------------
set talk off 对于主程序设计具有一定的通用性,一是对系统
set esca off 环境的设置;二是对自定义菜单和工具栏的设计,
set exact off 以及启动画面或登录画面的设计。在左边列出的
set excl Off *设定表为共享方式 这段程序是我编制的建设银行计算机台帐的主称
SET REPROCESS TO AUTOMATIC *设定数据加锁 序,希望能对您有所帮助。
set help to comp_help.chm *设定帮助文件
set cons on *激活从程序中向 Visual FoxPro 主窗口或活动的用户自定义窗口的输出。
set date ansi *设置日期格式
set score off *设定Num Lock、 Caps Lock 和 Insert 键状态
set safe off *关闭对话框
set stat bar on *打开状态栏
set cent on *设定日期格式年为4位数
set color to *设定配色方案
set sysmenu off *关闭系统主菜单
clea *刷新屏幕
clear all *清理变量
ON ERROR DO err.PRG *设定出错处理程序
on shutdown do qUIT1.prg *指定当试图退出FoxPro时,要执行的命令,否则提示不能退出FoxPro
with _screen *设定FoxPro主窗口属性
.visible=.f. *设定主窗口不可见
endwith
do form begin *执行启动画面(包括版权、版本、使用者等)
read event *占用进程,启动事件处理
do form login *执行登录表单,对用户进行身份验证
read event *占用进程
with _screen *对主窗口进行再次设定
.visible=.t.
.closable=.t.
.controlbox=.t.
.maxbutton=.t.
.minbutton=.t.
.movable=.t.
.top=0
.left=0
.windowstate=2 *将主窗口最大化
.caption='中国建设银行计算机台帐管理'
.icon='screen2.ico' *设定图标
endwith
*---------------------
*下面进行的是定义全局变量,设定自定义菜单
public tz_lr,tz_gj,tz_tjb,tz_dy,tz_date,tz_bf,tz_hf,tz_sc,tz_js,tz_hm,tz_zl,tz_zl2
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD _s4r0mpm7v OF _MSYSMENU PROMPT "台帐基础管理(\<E)" COLOR SCHEME 3 ;
KEY ALT+E, ""
DEFINE PAD _s4r0mpm7w OF _MSYSMENU PROMPT "系统参数设置(\<S)" COLOR SCHEME 3 ;
KEY ALT+S, ""
DEFINE PAD _s4r0mpm7x OF _MSYSMENU PROMPT "帮助(\<H)" COLOR SCHEME 3 ;
KEY ALT+H, ""
ON PAD _s4r0mpm7v OF _MSYSMENU ACTIVATE POPUP 台帐基础管
ON PAD _s4r0mpm7w OF _MSYSMENU ACTIVATE POPUP 系统参数设
ON PAD _s4r0mpm7x OF _MSYSMENU ACTIVATE POPUP 帮助h
DEFINE POPUP 台帐基础管 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF 台帐基础管 PROMPT "台帐手工录入(\<J)" ;
MESSAGE '设备台帐的手工录入'
DEFINE BAR 2 OF 台帐基础管 PROMPT "台帐报表生成(\<S)" ;
MESSAGE '设备台帐报表数据的生成'
DEFINE BAR 3 OF 台帐基础管 PROMPT "台帐报表打印(\<)" ;
MESSAGE '打印设备台帐报表'
DEFINE BAR 4 OF 台帐基础管 PROMPT "\-"
DEFINE BAR 5 OF 台帐基础管 PROMPT "报表日期(\<D)" ;
MESSAGE '报表日期录入'
DEFINE BAR 6 OF 台帐基础管 PROMPT "\-"
DEFINE BAR 7 OF 台帐基础管 PROMPT "数据备份(\<C)" ;
MESSAGE '备份台帐数据'
DEFINE BAR 8 OF 台帐基础管 PROMPT "数据恢复(\<R)" ;
MESSAGE '恢复台帐数据'
DEFINE BAR 9 OF 台帐基础管 PROMPT "\-"
DEFINE BAR 10 OF 台帐基础管 PROMPT "数据上传(\<M)" ;
MESSAGE '形成上报台帐数据'
DEFINE BAR 11 OF 台帐基础管 PROMPT "数据接收(\<G)" ;
MESSAGE '接受下级行台帐数据'
DEFINE BAR 12 OF 台帐基础管 PROMPT "\-"
DEFINE BAR 13 OF 台帐基础管 PROMPT "退出系统(\<Q)" ;
MESSAGE '退出台帐管理系统'
ON SELECTION BAR 1 OF 台帐基础管 DO form TZ_lr name tz_lr
ON SELECTION BAR 2 OF 台帐基础管 DO FORM TZ_tjb name tz_tjb
ON SELECTION BAR 3 OF 台帐基础管 DO FORM TZ_DY name tz_dy
ON SELECTION BAR 5 OF 台帐基础管 DO FORM TZ_date name tz_date
ON SELECTION BAR 7 OF 台帐基础管 DO FORM TZ_BF name tz_bf
ON SELECTION BAR 8 OF 台帐基础管 DO FORM TZ_HF name tz_hf
ON SELECTION BAR 10 OF 台帐基础管 DO FORM TZ_SC name tz_sc
ON SELECTION BAR 11 OF 台帐基础管 DO FORM TZ_JS name tz_js
ON SELECTION BAR 13 OF 台帐基础管 do quit1
DEFINE POPUP 系统参数设 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF 系统参数设 PROMPT "行名管理(\<N)" ;
MESSAGE '本行名称、下级行名称、设备使用部门管理'
DEFINE BAR 2 OF 系统参数设 PROMPT "\-"
DEFINE BAR 3 OF 系统参数设 PROMPT "设备种类型号字典管理(\<Z)" ;
MESSAGE '设备的种类、型号等'
DEFINE BAR 4 OF 系统参数设 PROMPT "\-"
DEFINE BAR 5 OF 系统参数设 PROMPT "更改密码(\<)" ;
MESSAGE '更改系统密码'
ON SELECTION BAR 1 OF 系统参数设 DO FORM TZ_HM name tz_hm
ON BAR 3 OF 系统参数设 ACTIVATE POPUP 设备种类型
DEFINE POPUP 设备种类型 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF 设备种类型 PROMPT "手工删改设备字典" message'手工修改设备字典中的数据'
DEFINE BAR 2 OF 设备种类型 PROMPT "磁盘导入/导出设备字典" message'将已经存在的字典文件导入/导出'
ON SELECTION BAR 1 OF 设备种类型 do form tz_zl name tz_zl
ON SELECTION BAR 2 OF 设备种类型 do form tz_zl2 name tz_zl2
******
ON SELECTION BAR 5 OF 系统参数设 DO FORM TZ_passwd name tz_passwd
DEFINE POPUP 帮助h MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF 帮助h PROMPT "系统使用说明(\<H)" ;
MESSAGE '系统使用帮助说明'
DEFINE BAR 2 OF 帮助h PROMPT "\-"
DEFINE BAR 3 OF 帮助h PROMPT "关于(\<A)" ;
MESSAGE '系统著作版权及版本号'
ON SELECTION BAR 1 OF 帮助h help
ON SELECTION BAR 3 OF 帮助h DO FORM ABOUT
acti menu _msysmenu nowait *击活菜单继续执行下面的程序
do form tz_gj name tz_gj *打开自定义工具栏
_screen.addobject("imge1","quit1") *在主窗口中加入图画,是程序画面漂亮
read event
define class quit1 as image
top=-10
left=0
picture='main_bmp.bmp'
backstyle=0
visible=.t.
enddefine
*环境设置
Do Form myScreen &&启动封面表单
Read Events &&开始事件处理:使启动封面停下来
_ Screen.Show &&显示VFP主窗口
Do myMenu.mpr &&安装菜单系统
Read Events &&开始事件处理
RETURN
程序执行Do Form myScreen后,将启动封面显示在屏幕上,然后向下执行到Read Events开始事件处理,此时启动封面表单必须由用户关闭或由表单事件关闭,否则程序将一直停在Read Events这一句上。不管myScreen表单由谁关闭,在关闭代码中必须包含一句Clear Events的停止事件处理命令,以便开始执行Read Events的下一句指令,顺序执行完成_Screen.Show及Do myMenu.mpr后,用户的主界面就建立完成,同理,此处还需要一个事件处理命令让程序再次停下来,开始菜单系统的命令处理,一般情况,菜单系统中将包含的"退出"项,其中有"Clear Events"清除事件处理代码,从而停止第二条"Read Events"事件处理命令,退出整个系统。
附:连编主程序设计:
[转帖]vfP连编主程序设计
--------------------------------------------------------------------------------
set talk off 对于主程序设计具有一定的通用性,一是对系统
set esca off 环境的设置;二是对自定义菜单和工具栏的设计,
set exact off 以及启动画面或登录画面的设计。在左边列出的
set excl Off *设定表为共享方式 这段程序是我编制的建设银行计算机台帐的主称
SET REPROCESS TO AUTOMATIC *设定数据加锁 序,希望能对您有所帮助。
set help to comp_help.chm *设定帮助文件
set cons on *激活从程序中向 Visual FoxPro 主窗口或活动的用户自定义窗口的输出。
set date ansi *设置日期格式
set score off *设定Num Lock、 Caps Lock 和 Insert 键状态
set safe off *关闭对话框
set stat bar on *打开状态栏
set cent on *设定日期格式年为4位数
set color to *设定配色方案
set sysmenu off *关闭系统主菜单
clea *刷新屏幕
clear all *清理变量
ON ERROR DO err.PRG *设定出错处理程序
on shutdown do qUIT1.prg *指定当试图退出FoxPro时,要执行的命令,否则提示不能退出FoxPro
with _screen *设定FoxPro主窗口属性
.visible=.f. *设定主窗口不可见
endwith
do form begin *执行启动画面(包括版权、版本、使用者等)
read event *占用进程,启动事件处理
do form login *执行登录表单,对用户进行身份验证
read event *占用进程
with _screen *对主窗口进行再次设定
.visible=.t.
.closable=.t.
.controlbox=.t.
.maxbutton=.t.
.minbutton=.t.
.movable=.t.
.top=0
.left=0
.windowstate=2 *将主窗口最大化
.caption='中国建设银行计算机台帐管理'
.icon='screen2.ico' *设定图标
endwith
*---------------------
*下面进行的是定义全局变量,设定自定义菜单
public tz_lr,tz_gj,tz_tjb,tz_dy,tz_date,tz_bf,tz_hf,tz_sc,tz_js,tz_hm,tz_zl,tz_zl2
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD _s4r0mpm7v OF _MSYSMENU PROMPT "台帐基础管理(\<E)" COLOR SCHEME 3 ;
KEY ALT+E, ""
DEFINE PAD _s4r0mpm7w OF _MSYSMENU PROMPT "系统参数设置(\<S)" COLOR SCHEME 3 ;
KEY ALT+S, ""
DEFINE PAD _s4r0mpm7x OF _MSYSMENU PROMPT "帮助(\<H)" COLOR SCHEME 3 ;
KEY ALT+H, ""
ON PAD _s4r0mpm7v OF _MSYSMENU ACTIVATE POPUP 台帐基础管
ON PAD _s4r0mpm7w OF _MSYSMENU ACTIVATE POPUP 系统参数设
ON PAD _s4r0mpm7x OF _MSYSMENU ACTIVATE POPUP 帮助h
DEFINE POPUP 台帐基础管 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF 台帐基础管 PROMPT "台帐手工录入(\<J)" ;
MESSAGE '设备台帐的手工录入'
DEFINE BAR 2 OF 台帐基础管 PROMPT "台帐报表生成(\<S)" ;
MESSAGE '设备台帐报表数据的生成'
DEFINE BAR 3 OF 台帐基础管 PROMPT "台帐报表打印(\<)" ;
MESSAGE '打印设备台帐报表'
DEFINE BAR 4 OF 台帐基础管 PROMPT "\-"
DEFINE BAR 5 OF 台帐基础管 PROMPT "报表日期(\<D)" ;
MESSAGE '报表日期录入'
DEFINE BAR 6 OF 台帐基础管 PROMPT "\-"
DEFINE BAR 7 OF 台帐基础管 PROMPT "数据备份(\<C)" ;
MESSAGE '备份台帐数据'
DEFINE BAR 8 OF 台帐基础管 PROMPT "数据恢复(\<R)" ;
MESSAGE '恢复台帐数据'
DEFINE BAR 9 OF 台帐基础管 PROMPT "\-"
DEFINE BAR 10 OF 台帐基础管 PROMPT "数据上传(\<M)" ;
MESSAGE '形成上报台帐数据'
DEFINE BAR 11 OF 台帐基础管 PROMPT "数据接收(\<G)" ;
MESSAGE '接受下级行台帐数据'
DEFINE BAR 12 OF 台帐基础管 PROMPT "\-"
DEFINE BAR 13 OF 台帐基础管 PROMPT "退出系统(\<Q)" ;
MESSAGE '退出台帐管理系统'
ON SELECTION BAR 1 OF 台帐基础管 DO form TZ_lr name tz_lr
ON SELECTION BAR 2 OF 台帐基础管 DO FORM TZ_tjb name tz_tjb
ON SELECTION BAR 3 OF 台帐基础管 DO FORM TZ_DY name tz_dy
ON SELECTION BAR 5 OF 台帐基础管 DO FORM TZ_date name tz_date
ON SELECTION BAR 7 OF 台帐基础管 DO FORM TZ_BF name tz_bf
ON SELECTION BAR 8 OF 台帐基础管 DO FORM TZ_HF name tz_hf
ON SELECTION BAR 10 OF 台帐基础管 DO FORM TZ_SC name tz_sc
ON SELECTION BAR 11 OF 台帐基础管 DO FORM TZ_JS name tz_js
ON SELECTION BAR 13 OF 台帐基础管 do quit1
DEFINE POPUP 系统参数设 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF 系统参数设 PROMPT "行名管理(\<N)" ;
MESSAGE '本行名称、下级行名称、设备使用部门管理'
DEFINE BAR 2 OF 系统参数设 PROMPT "\-"
DEFINE BAR 3 OF 系统参数设 PROMPT "设备种类型号字典管理(\<Z)" ;
MESSAGE '设备的种类、型号等'
DEFINE BAR 4 OF 系统参数设 PROMPT "\-"
DEFINE BAR 5 OF 系统参数设 PROMPT "更改密码(\<)" ;
MESSAGE '更改系统密码'
ON SELECTION BAR 1 OF 系统参数设 DO FORM TZ_HM name tz_hm
ON BAR 3 OF 系统参数设 ACTIVATE POPUP 设备种类型
DEFINE POPUP 设备种类型 MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF 设备种类型 PROMPT "手工删改设备字典" message'手工修改设备字典中的数据'
DEFINE BAR 2 OF 设备种类型 PROMPT "磁盘导入/导出设备字典" message'将已经存在的字典文件导入/导出'
ON SELECTION BAR 1 OF 设备种类型 do form tz_zl name tz_zl
ON SELECTION BAR 2 OF 设备种类型 do form tz_zl2 name tz_zl2
******
ON SELECTION BAR 5 OF 系统参数设 DO FORM TZ_passwd name tz_passwd
DEFINE POPUP 帮助h MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR 1 OF 帮助h PROMPT "系统使用说明(\<H)" ;
MESSAGE '系统使用帮助说明'
DEFINE BAR 2 OF 帮助h PROMPT "\-"
DEFINE BAR 3 OF 帮助h PROMPT "关于(\<A)" ;
MESSAGE '系统著作版权及版本号'
ON SELECTION BAR 1 OF 帮助h help
ON SELECTION BAR 3 OF 帮助h DO FORM ABOUT
acti menu _msysmenu nowait *击活菜单继续执行下面的程序
do form tz_gj name tz_gj *打开自定义工具栏
_screen.addobject("imge1","quit1") *在主窗口中加入图画,是程序画面漂亮
read event
define class quit1 as image
top=-10
left=0
picture='main_bmp.bmp'
backstyle=0
visible=.t.
enddefine
参考资料: http://zhidao.baidu.com/question/19465824.html?si=10
启帆信息
2024-11-19 广告
2024-11-19 广告
启帆信息是英伟达中国区代理商,原厂授权代理,提供全面的软件技术解决方案以及NVIDIA以太网产品、交换机等产品,欢迎前来咨询!...
点击进入详情页
本回答由启帆信息提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询