CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  VFP

为何屏幕会一闪而过?

楼主superyangxp(yangshuyi)2003-12-02 20:34:15 在 其他数据库开发 / VFP 提问

我在用foxpro做一个图书管理系统时,在编译打包时发现了一个问题,就是exe文件打开时,屏幕会一闪而过.我在主函数中设置了read   events但还是没效果,该如何处理这个问题?向大家请教.谢谢!  
  记得以前好象是在主函数中添加了一句话就解决问题的  
  主函数为  
  set   path   to   c:\  
  set   view   to   database.vue  
  do   form   main  
  read   event  
  问题点数:0、回复次数:10Top

1 楼luwq168(后备甜心)回复于 2003-12-02 20:50:21 得分 0

主文件很麻烦的,你看我的:  
  #include   [..\XXX_APP.H]  
   
  If   Type([APP_GLOBAL.Class])   =   "C"   And   ;  
  UPPER(app_global.Class)   ==   Upper(app_classname)  
  Messagebox(app_already_running_loc,48,   ;  
  app_global.ccaption   )  
  If   Vartype(app_global.oframe)   =   "O"  
  app_global.oframe.Show()  
  Endif  
  Return  
   
  Endif  
   
  Release   app_global  
  Public     app_global  
   
  Local   lclastsettalk,   llappran,   lnseconds,   losplash  
  Local   Array   lacheck[1]  
   
  lclastsettalk=Set("TALK")  
  losplash   =   .Null.  
  Set   Talk   Off  
   
  #Ifdef   app_splashclass  
   
  If   Not   Empty(app_splashclass)  
  losplash   =   Newobject(app_splashclass,   app_splashclasslib)  
  If   Vartype(losplash)   =   "O"  
  lnseconds   =   Seconds()  
  losplash.Show()  
  Endif  
  Endif  
   
  #Endif  
  If   setpath()  
  *--   Set   the   SET   and   ON   commands  
  Set   Safety   Off  
  Set   Procedure   To   utility.prg  
  Set   Memowidth   To   120  
  Set   Multilocks   On                               &&   For   table   buffering  
  Set   Deleted   On  
  Set   Exclusive   On  
  Set   Notify   Off  
  Set   Bell   On  
  Set   Near   Off  
  Set   Intensity   Off  
  Set   Confirm   Off  
  Set   Compatible   Off  
  Set   Escape   Off  
  Set   Status   Bar   Off  
  Public   lw,lu,lq,lwq   &&lw标签题名,lu场所分类,lq菜单分类,lwq操作数据表  
  lu=0  
  Set   Classlib   To   XKZ_APP  
  Endif  
   
   
  app_global   =   Newobject(app_classname,   app_classlib)  
   
  If   Vartype(app_global)   =   "O"   ;  
  AND   Aclass(lacheck,app_global)   >   0   And   ;  
  ASCAN(lacheck,Upper(app_superclass))   >   0  
   
  app_global.creference   =[APP_GLOBAL]  
  app_global.cformmediatorname   =   app_mediator_name  
   
  #Ifdef   app_cd  
  app_cd  
  #Endif  
   
  #Ifdef   app_path  
  app_path  
  #Endif  
   
  #Ifdef   app_initialize  
  app_initialize  
  #Endif  
   
  If   Vartype(losplash)   =   "O"  
   
  If   Seconds()   <   lnseconds   +   app_splashdelay  
  =Inkey(app_splashdelay-(Seconds()-lnseconds),"MH")  
  Endif  
   
  losplash.Release()  
  losplash   =   .Null.  
   
  Endif  
   
  Release   lacheck,   losplash,   lnseconds  
   
  If   Not   app_global.Show()  
   
  If   Type([APP_GLOBAL.Name])   =   "C"  
  Messagebox(app_cannot_run_loc,16,   ;  
  app_global.ccaption   )  
  app_global.Release()  
  Else  
  Messagebox(app_cannot_run_loc,16)  
  Endif  
   
  Else  
  llappran   =   .T.  
  Endif  
   
   
  If   Type([APP_GLOBAL.lReadEvents])   =   "L"  
   
  If   app_global.lreadevents  
  *   the   Release()   method   was   not   used  
  *   but   we've   somehow   gotten   out   of   READ   EVENTS...  
  app_global.Release()  
  Endif  
  Else  
  Release   app_global  
  Endif  
   
  Else  
   
  Messagebox(app_wrong_superclass_loc,16)  
  Release   app_global  
   
  Endif  
   
  If   lclastsettalk=="ON"  
  Set   Talk   On  
  Else  
  Set   Talk   Off  
  Endif  
   
  On   Shutdown   Do   onshutdown  
   
  If   Type([APP_GLOBAL])   =   "O"  
  *   non-read   events   app  
  Return   app_global  
  Else  
  Return   llappran  
  Endif  
   
  *!******************************************************************************  
  *!  
  *!   Procedure   SETPATH  
  *!  
  *!     Calls  
  *!             lacheck  
  *!             setpath  
  *!  
  *!******************************************************************************  
  Function   setpath()  
  Local   lcsys16,   ;  
  lcprogram  
   
  lcsys16   =   Sys(16)  
  lcprogram   =   Substr(lcsys16,   At(":",   lcsys16)   -   1)  
   
  Cd   Left(lcprogram,   Rat("\",   lcprogram))  
  *--   If   we   are   running   MAIN.PRG   directly,   then  
  *--   CD   up   to   the   parent   directory  
  If   Right(lcprogram,   3)   =   "FXP"  
  Cd   ..  
  Endif  
  Set   Path   To   progs,   Forms,   libs,   ;  
  MENUS,   Data,graphics,;  
  reports,   Include,   Help,   ;  
  SET   Date   To   ymd  
  Set   Date   To   Long  
  EndfuncTop

2 楼ZhuJiaWei(逍遥童子)回复于 2003-12-02 21:30:47 得分 0

呵呵,不要吓唬人嘛。  
  不过主函数确实很重要的。  
   
  你可以试试看在下面再加上几句  
  clear   event  
  close   all  
  RELEASE   ALL  
  CLEAR   ALL  
  CLEAR   MEMO  
  结束程序的地方也加这么几句  
  试试看。Top

3 楼yang505412(杨过)回复于 2003-12-02 21:48:13 得分 0

upTop

4 楼truehan(真男人)回复于 2003-12-03 14:13:54 得分 0

set   path   to   c:\  
  set   view   to   database.vue  
  read   event  
  do   form   main  
   
  这样试试  
  Top

5 楼yestoyes(枫)回复于 2003-12-03 14:15:28 得分 0

你的main表单是不是顶层表单?  
  我的主程序基本与你的类似,但可以正常运行的呀!Top

6 楼eduljx()回复于 2003-12-03 16:53:51 得分 0

用shutdown,然后用close   all试试Top

7 楼longhui1(龙龙)回复于 2003-12-03 17:59:46 得分 0

将你的主程序在项目管理器中设置为主文件后再编译,就没有问题了!Top

8 楼superyangxp(yangshuyi)回复于 2003-12-06 14:17:01 得分 0

我找到答案了,是表单的window   state应设为   模式状态  
  谢谢各位Top

9 楼yunshiwo(白云)回复于 2003-12-06 15:59:08 得分 0

表单的window   state在哪儿设啊?Top

10 楼liujianjun_(流星尔)回复于 2003-12-06 17:06:40 得分 0

http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=78093Top

相关问题

  • 我用system()调用dos命令,为什么屏幕总会一闪而过,有不闪的方法吗
  • 为何我用dev-c++编译一个单元的时候结果一闪而过?
  • 一闪而过的API编程问题?
  • FlashWindow为什么一闪而过 ~
  • 为什么会一闪而过?
  • 为什么控制台程序一闪而过?
  • 为什么窗口会一闪而过?????(我是初学者)
  • C++的问题.为什么程序一闪而过
  • 为什么打开access会一闪而过
  • VC里Execute的结果一闪而过,该怎么看到?

关键词

  • 函数
  • losplash
  • app
  • 主函数
  • global
  • 问题
  • set

得分解答快速导航

  • 帖主:superyangxp

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo