关于vfp主程序

上传人:简****9 文档编号:96073209 上传时间:2019-08-23 格式:DOC 页数:16 大小:147KB
返回 下载 相关 举报
关于vfp主程序_第1页
第1页 / 共16页
关于vfp主程序_第2页
第2页 / 共16页
关于vfp主程序_第3页
第3页 / 共16页
关于vfp主程序_第4页
第4页 / 共16页
关于vfp主程序_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《关于vfp主程序》由会员分享,可在线阅读,更多相关《关于vfp主程序(16页珍藏版)》请在金锄头文库上搜索。

1、关于主程序和主窗口1.VFP主程序的一般写法*-main.prgset 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 主窗口或活

2、动的用户自定义窗口的输出。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时,要执行的命令,否则提示不能

3、退出FoxProwith _screen *设定FoxPro主窗口属性.visible=.f. *设定主窗口不可见endwithdo 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 *将主窗口

4、最大化.caption=中国建设银行计算机台帐管理.icon=screen2.ico *设定图标endwith软件使用期限(1).超过规定时间不运行if date()=2009.01.01quitendif到2009.01.01该软件运行后就会退出!(2).如要限定次数,可以做一个累加器,将结果存入一表的字段中来实现!可以每次打开主程序时执行lnCisu=lnCisu+1if lnCisu=50clear evenquitendif每次退出时保存lnCisu每次开始时读取主程序怎么建立的 在哪建?在项目里方法:1.建立项目2.建立数据库3.建立菜单,表单,报表.4.建立.PRG(主程序)5.连

5、编 编程所设初始环境的设置,供参考.clea allclose allSET TALK OFFset hours to 24SET DATE TO ANSISET CENTURY ONSET ESCAPE OFFSET DELETED ONset status offset safe offset optimize onset status bar offSET UNIQUE ON_SCREEN.CAPTION = 学生收费管理系统_screen.fontname=楷体_SCREEN.AUTOCENTER = .T._SCREEN.CLOSABLE = .t._SCREEN.WINDOWSTA

6、TE = 2_SCREEN.SHOW_SCREEN.ICON = note14.ico_SCREEN.picture = win.jpg如何让程序延时N秒后继续执行?不是用wait timeout 也不用时钟控件?有什么办法吗?不要太精确的话可用时间函数,选取当前分和秒值、到变量,然后取实时时间分、秒值,循环判断它是否大于设定的值即可!YANSHI=datetime() &将系统现在的时间赋给变量YANSHIDo While datetime()=YANSHI+2 &这里的2为两秒,两秒内执行do while.enddo 的空循环,暂停往下执行程序Enddo为什么程序编译后一闪而过?了解VFP

7、表单窗口属性笔者在两年多的新闻组生活中,曾数十次遇到过初学者对VFP的表单窗口属性所提出的问题,特别是“为何系统编译后运行时一闪而过”的问题,更是被频繁地提出。现根据我的经验进行一下总结,以帮助初学者打掉这只拦路虎。其实,这个问题之所以被频繁地提出,并非是由于初学者的理解能力有问题,而实在是VFP的设计混乱所致,以至于造成初学者理解上的混乱。笔者曾在“济南万千”的“软件、编程、数据库”新闻组就此问题发过“窗口问题到此为止”的帖子,反响很大,现根据该帖进行整理,修正补足该帖中的一些不准确之处及遗漏。本文所提“表单窗口属性”,是指那些不但影响表单本身的特征(例如长宽等),而且对表单之外、项目之中的

8、其它“元件”有影响的表单属性,它们包括如下三个:属性意义可选值(黑体为默认值)DeskTop指定表单是否包含在VFP主窗口中.F./.T.WindowType指定表单对象运行时的动作0-无模式/1-模式ShowWindow指定在创建过程中表单窗口显示表单或工具栏0-在屏幕中/1-在顶层表单中/3-做为顶层表单下面针对上述表单属性以及VFP中“桌面(DeskTop)、屏幕(Screen)、表单(Form)”等概念谈一谈我的理解。正因为VFP在此方面的设计混乱,也就决定了我不能系统地、有条理地分析这些问题,我做的只能是阐述一些事实。1.表单是一个对象,外观表现上是一个窗口。VFP的主窗口也可以说是

9、一个“表单”对象,它有一个固定的名字叫“_Screen”,“_Screen”是一个特殊的表单对象;2.“ShowWindow”是规定表单在“显示方面的从属关系”的属性ShowWindow属性实际上仅有两种选择:“作为顶层表单”与“在顶层表单中”。为了表达方便,我们把具有前者属性值的表单称为“顶层表单”,后者称为“从属表单”。二者在显示方面的不同地位是:顶层表单在Windows任务栏上有一席之地,从属表单却没有这种待遇;顶层表单最小化时,从属表单随之被隐藏,当顶层表单关闭后,从属表单随之关闭。ShowWindow的第三种选择“在屏幕中(默认)”仅是“在顶层表单中”的一个特例,即为“在_Scree

10、n这个特定的顶层表单中”之意,选择此种属性值时,它一定是个“从属表单”了。_Screen具有“顶层表单”的一切显示特征。从属表单不能独立地被显示,必须与他的“主表单”一起显示,这个“主表单”要么是一个顶层表单要么是VFP的窗口(_Screen)。不需要为一个“从属表单”指定一个“主表单”,“从属表单”打开时,自动选择当前的活动顶层表单作为其“主表单”,当然,如果选择了“在屏幕中”,则这个从属表单自然就以_Screen为其主表单了。3.“DeskTop”是规定表单在“显示方面的活动范围”的属性。DeskTop仅对“从属表单”有意义,当从属表单的DeskTop=.f.时,它只能显示在它的“顶层表单

11、”的尺寸之内,当这个顶层表单的尺寸比它的尺寸还小时,它将会被部分地遮住;当从属表单的DeskTop=.t.时,它的活动范围将不受它的顶层表单尺寸的限制,它可以显示在电脑屏幕的任何地方甚至之外。但不管它的位置离其顶层表单多远,一旦顶层表单最小化了,它会立即顺从地从电脑屏幕上消失。4.“ShowWindows”是规定表单被执行时的程序动作的属性分两种情况:(1)当表单的ShowWindow为“在屏幕中”和“在顶层表单中”时:a.当WindowType=模式时,执行表单(DOFORM)后使得表单取得焦点,并且一直到它被关闭,在此期间,它的父窗口对象(可能是_Screen或一个顶层表单)的菜单系统及其

12、所属的子表单都不能用。就是说,在表单存在期间,它将一直霸占着焦点.b.当WindowType=无模式时,表单存在期间不会霸占焦点。有一个例外,当DeskTop=.t.时,执行它时会使系统菜单失效,而DeskTop=.f.时则不会。(2)当表单的ShowWindow为“做为顶层表单”时:表单的WindowType属性不管是有模式还是无模式,都不会霸占焦点。5.一般情况,用户的应用系统需要一个主表单(主窗口),您可以将_Screen作为这个主窗口,也可以将项目中的某个“顶层表单”做为“主窗口”,很难说那种更好。但在此笔者建议使用VFP主窗口做为用户系统的主窗口,这样可能会省去一些麻烦,因为VFP的

13、很多工具条窗口被设计成只能开在_Screen中,例如在打印预览工具条等。程序编译成EXE后,前者启动时先显示VFP主窗口,后者直接显示程序员自己设计的顶层表单。对于后者,为屏蔽VFP主窗口,一定要在Config.fpw写入Screen=off(Config.fpw应加入到项目中,这样连编后它将被包含进EXE中,这一来可减少提供安装文件的数量,二来也可避免被用户更改)。另一方面,很多应用系统程序都喜欢有一个漂亮的或曰自以为漂亮的启动封面,然后再进入主控界面。如果一方面不希望在显示自己的启动封面前有VFP主窗口抢镜头,另一方面又想让VFP主窗口做为程序的主控界面时,解决办法是:设计一个“顶层表单”

14、做为启动封面,config.fpw中仍须写Screen=off,然后在启动封面展示够了自己的魅力之后,用一句_Screen.Show将_Screen打回原形。6.ShowWoindow与DeskTop属性仅规定了Form在显示方面的特征,而在“对象”这一更加高级的层面上,“顶层表单”与“从属表单”彼此是平级的,而_Screen虽然在显示方面与“顶层表单”具有相同的地位,但在对象层面却是高一级的家伙,所有表单,不管你是“顶层表单”还是“从属表单”,都是它的子对象,这想起来就叫人糊涂,还是赶紧不想的好。为什么我的程序编译后一闪而过? 这个问题有两种可能性,第一种是程序执行完成并退出,第二种是程序正在执行,但界面被隐藏。对于第二种情况,可直接按Ctrl-Alt-Del键观察到。造成这两种情况的原因如下: 我们先看下面的一段示例程序,假如下面的示例程序是项目的主程序,并且应用项目以VFP主窗口做为自己的主窗口。 *环境设置 Do Form myScreen &启动封面表单 _ Screen.Show &显示VFP主窗口 Do myMenu.mpr &安装菜单系统 RETURN 为达到在显示启动封面之前不显示VFP主窗口的目的,在Config.fpw

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号