人人范文网 范文大全

vfp教学实例

发布时间:2020-03-02 08:54:29 来源:范文大全 收藏本文 下载本文 手机版

第一课 编一个“心灵感应”小游戏

我们的课程从这个小游戏开始吧。一些名词在这里不做解释,广大网友漫漫理解,或者自己去查一些资料,下面我就来介绍如何用Visual Foxpro 6.0来编制这个游戏。

1、在硬盘上建一个文件夹,例如D:\\DEMO。

2、启动Visual Foxpro 6.0,选择:“文件”——“新建”,出现“新建对话框”(图示1-1),

文件类型选“项目”,按“新建文件”按钮,选择项目文件名“demo”(自己随便起名),保存在D:\\DEMO下(图示1-2),

按“保存”按钮后,出现项目管理器,这样一个项目就建成了,项目名就是“demo”以后的一切操作都在这个项目内。项目管理器由两个文件组成,扩展名分别是“PJX”和“PJT”。(图示1-3)在这个项目内可以建立数据库、表单、程序、菜单等。

3、选择“文档”——“表单”,按“新建”按钮。出现(图示1-4)

4、按“新建表单”按钮,出现(图示1-5)。表单就是将来运行后出现的窗口或对话框,上图就是一个表单。下面我们就在这个表单上创建心灵感应游戏。

5、在Form1的属性(表单的属性一般在创建一个新表单后自动出现,若没有可右击表单,选择“属性”即可)中选择属性Caption(标题)将默认值“Form1”改为“心灵感应”(图示1-6),表单的标题就改为“心灵感应”。但表单的名字应叫“Form1”,要想更改请改属性——Name。

6、在d:\\demo\\下新建一文件夹pic,存入一些需要的图标、图片等,在Form1的属性中选择属性Icon的值为d:\\demo\\pic\\msgbox02.ico(图示1-7)。双击“Icon”或点击夹,选择msgbox02.ico图标,按“确定”按钮。

按钮,打开d:\\demo\\pic文件

7、关闭表单设计器,出现(图示1-8),

按\"是\",出现(图示1-9),

取文件名为xlgy,建一文件夹d:\\demo\\form\\将文件xlgy.scx保存到该文件夹里。则在项目管理器的表单中出现一个xlgy表单(图示1-10)。(你也可以全部编完再保存)

8、选中xlgy表单,按“修改”键,又返回表单编辑状态。调整表单窗口大小(可用鼠标拖拉),在表单控件工具栏的“图象”图标上点击一下,在表单上拖出一个长方形,即图片显示区域,其picture属性为d:\\demo\\pic\\pkbm1.jpg(图示1-11);

在表单控件工具栏选“标签”图标,在表单上的图象下面拖出一个长方形,其capion属性为“本程序可以感应你在想什么。”,字体大小fontsize为“16”,你也可以设定其他属性,如:字体(fontname)、字体颜色(fontcolor)等;再建两个按钮“command1和command2”,其属性caption分别为“开始”、“退出”。(图示1-12)

9、双击“退出按钮”,在click过程中输入thisform.release或release thisform,意思为:当鼠标单击“退出”按钮时释放表单。下面你可以按!图标运行此表单,点击“退出”按钮,即可退出此表单。

10、下面我们要在“开始”按钮的click过程中输入一些命令,完成我们要做的工作。我们先做几张图片pk1.jpg(图示1-13)、

pk2.jpg(图示14)、

pkbm2.jpg(图示15),

在“开始”按钮的click过程中输入如下命令:

ThisForm.image1.picture=\'pic\\pk1.jpg\' &&将图片换成pk1.jpg this.caption=\'继续\' &&将\"开始\"按钮名改为\"继续\",因为在command1.click内,所以可用this代替thisform.command1 thisform.command2.enabled=.f.&&将\"退出\"按钮设为不可用

thisform.label1.caption=\'请在上面的扑克牌中选一张,记在心里。按继续键。\' &&改变label1的内容

wait \'\' &&程序暂停,等你按任意键,“\'\'”是两个单引号,不能缺少.ThisForm.image1.picture=\'pic\\pkbm1.jpg\' thisform.label1.caption=\'请你默念三遍。按继续键。\' wait \'\' ThisForm.image1.picture=\'pic\\pk2.jpg\' thisform.label1.caption=\'我知道你记的是哪一张,我把它去掉了!\' wait \'\' ThisForm.image1.picture=\'pic\\pkbm2.jpg\' thisform.label1.caption=\'\' this.caption=\'再来一次\' thisform.command2.enabled=.t.&&将\"退出\"按钮设为可用 retu &&重新运行

注: &&...为程序注释,它在程序运行时不执行。

11、到此为止,“心灵感应”就编完了,你可以运行此表单看看运行结果。

二:行程序或点击菜单、按钮等方法使它们运行。这一课,我将向大家介绍主菜单、快捷菜单和主程序。

一、主菜单的设计

1、在项目管理器中的“其它”中选中“菜单”,按“新建”按钮,出现新建菜单选择窗口(图2-1);

按“菜单”按钮,出现菜单编辑窗口,在“菜单名称”中分别输入“文件(\\

以上的六个菜单项中都有“\\

2、点击游戏菜单后的“创建”按钮,编辑“游戏”的下一级菜单(图2-3),

在“心灵感应”中选择“命令”,在命令框中输入“do form xlgy”,作用是打开xlgy表单。在其后面还有一个选项,点击选项按钮出现选项对话框,使“键标签”的文本框获得焦点,按Ctrl+G(图2-4)建立一个快捷键。快捷键与热键不同,热键只在当前窗口起作用,快捷键无论当前是什么窗口都起作用。例如:在主窗口中按 Ctrl+G,可以直接运行“心灵感应”表单,相当于用鼠标选择菜单中的“游戏”,再选择“心灵感应”。

3、反回到“菜单栏”,在“退出”的命令框中输入clear event命令。

4、按“预览”按钮,可以预览一下设计的菜单。

5、选择“菜单”中的“生成”,(图2-41)

出现图2-42,

按“是”按钮,出现图2-43,

菜单名为:main,保存在d:\\demo下,出现图2-44

按“生成”按钮。菜单建好了,可以关闭菜单设计器了。

二、快捷菜单的设计

1、在项目管理器中的“其它”中选中“菜单”,按“新建”按钮,出现新建菜单选择窗口,按“快捷菜单”按钮,建立快捷菜单yji.mnx:(图2-5)

2、保存菜单yji.mnx,生成菜单程序文件yji.mpr,在以后的库房管理软件中会用到。

三、主程序设计

1、选择“代码”——“程序”,按“新建”按钮,输入如下程序: CLEAR SET EXCL ON SET TALK OFF SET MESSAGE ON SET CENT ON RELEASE WINDOW 常用 &&关闭常用窗口 PUBLIC MYPATH &&定义全局变量MYPATH MYPATH=LEFT(SYS(16),RAT(\"\",SYS(16))) &&提取当前路径 SET DEFA TO (MYPATH) SET PATH TO data;form;pic &&指明路径

_SCREEN.backcolor=iif(mod(day(date()),2)=0,rgb(80,230,210),rgb(70,140,180)) &&设置屏幕背景颜色,单、双号背景颜色不同

MODIFY WINDOW SCREEN TITLE \" xxx软件 Ver x.x 作者:王永成 \"+; \" 今天是:\"+dtoc(date())+\" \"+cdow(date()) &&设置主窗口标题 _SCREEN.ICON=\"..\\pic\\msgbox02.ico\" &&设置主窗口图标 ZOOM WINDOW SCREEN MAX &&主窗口最大化 deactivate window \"项目管理器\" &&关闭项目管理器 do main.mpr &&运行主菜单程序 read event

2、保存主程序main.prg

3、右击主程序,选择“设置主文件”。

4、运行主程序看一看结果。

三:“猜数游戏”。

1、新建一表单csyx(图3-1),表单的caption属性为“猜数游戏”,背景颜色(BackColor)及各表单控件的字体颜色等,各位朋友可按个人的爱好选择。

2、命令按钮command1~command13的caption属性分别为:“确定”,“退格”,“新一局”,“0”...“9”。

3、文本框Text1的FontSize为26;FontColor为250,250,0;BackColor为0,128,128;ContorlSource为ctet1(变量ctet1的值与text1的值相关联)。

4、文本框Text2的FontColor为250,250,0;ContorlSource为jlun;BackStyle为“0-透明”;BorderStyle为“0-无”。

5、文本框t1~t10,zq1~zq10,cw1~cw10(name=t1...,zq1...,cw1...cw10) ,(controlsource=t1...),FontColor为250,250,0;BackStyle为“0-透明”;BorderStyle为“0-无”。

6、标签Label1~Label3的caption属性分别为:“选择的数”,“位置正确”,“位置错误”。

7、标签Label4的caption属性为:=\"说明:选择4个数按确定键,在右侧显示这4位数有几位数与你要猜的数位置相同,\"+chr(13)+\" 有几位数包含在要猜的数中,但位置不同。根据以上提示猜出是哪4位数。\",其中chr(13)是一个回车换行命令,“=”和英文引号(单、双都行)不能少;BackStyle为“0-透明”。

8、标签L1~L10的caption属性分别为:“第一次”...“第十次”;BackStyle为“0-透明”。

9、表面工作做完了,下面我们来输入一些命令(程序),双击表单出现表单过程编辑框,在Init过程中输入如下命令:

public ctx1,ctx2,ctx3,ctx4,ctet1,ctet2,n,zq,cw,p &&设置全局变量 zq=0 &&设置初始值 cw=0 ctet1=\'\' ctet2=\'\' n=0 thisform.command3.click() &&执行命令按钮(command3)的click过程,相当于点击\"新一局\"按钮。

10、双击按钮“0”(command4),在其click过程中输入如下命令: ctet2=\'0\' do panduan &&执行panduan.prg程序 thisform.refresh

11、按钮“1”~“9”的click过程中的命令与按钮“0”的click过程中的命令的不同之处就是ctet2的值,即ctet2=\'1\'...ctet2=\'9\'。

12、因为在按钮“0”~“9”的click过程中都执行一些相同的命令,所以我们把这些命令提出来,作为一个程序来调用(也可以在表单中创建一个方法程序,请参见第九课),可以简化程序的设计。选择“代码”——“程序”按“新建”按钮,新建程序panduan.prg:

if len(allt(ctet1))4 &&判断text1的值的长度,如果不是4位,执行下面的命令. if !ctet2$ctet1 &&判断按下的按钮的数值是否已被选过,若所选的数不包涵在已选的数值内. ctet1=ctet1+ctet2 &&把选定的数加在后面. endif endif

13、双击按钮“确定”(command1),在其click过程中输入如下命令: zq=0 &&正确值zq=0 cw=0 &&错误值cw=0 if len(allt(ctet1))4 &&如果text1的值不是4 位

wait window at 16,25 \"数据不够4 位\" &&提示

return &&返回 endif p=p+1 if ctx1$ctet1 &&判断cte1值是否在所选定的4位数中.(ctet1及ctet

2、ctet

3、ctet4的值是在表单运行时或点击了“新一局”按钮时机器随机产生的4位数值。

if ctx1=substr(ctet1,1,1) zq=zq+1 else cw=cw+1 endif endif if ctx2$ctet1 if ctx2=substr(ctet1,2,1) zq=zq+1 else cw=cw+1 endif endif if ctx3$ctet1 if ctx3=substr(ctet1,3,1) zq=zq+1 else cw=cw+1 endif endif if ctx4$ctet1 if ctx4=substr(ctet1,4,1) zq=zq+1 else cw=cw+1 endif endif do case case p=1 thisform.l1.visible=.t. thisform.t1.visible=.t. thisform.zq1.visible=.t. thisform.cw1.visible=.t. t1=ctet1 zq1=zq cw1=cw if zq=4 jlun=\"你真能蒙!\" endif case p=2 thisform.l2.visible=.t. thisform.t2.visible=.t. thisform.zq2.visible=.t. thisform.cw2.visible=.t. t2=ctet1 zq2=zq cw2=cw if zq=4 jlun=\"太棒了,你真能蒙!\" endif case p=3 thisform.l3.visible=.t. thisform.t3.visible=.t. thisform.zq3.visible=.t. thisform.cw3.visible=.t. t3=ctet1 zq3=zq cw3=cw if zq=4 jlun=\"太棒了,蒙的吧?!\" endif case p=4 thisform.l4.visible=.t. thisform.t4.visible=.t. thisform.zq4.visible=.t. thisform.cw4.visible=.t. t4=ctet1 zq4=zq cw4=cw if zq=4 jlun=\"太棒了,您是教授吗?\" endif case p=5 thisform.l5.visible=.t. thisform.t5.visible=.t. thisform.zq5.visible=.t. thisform.cw5.visible=.t. t5=ctet1 zq5=zq cw5=cw if zq=4 jlun=\"大学生水平,很可以!\" endif case p=6 thisform.l6.visible=.t. thisform.t6.visible=.t. thisform.zq6.visible=.t. thisform.cw6.visible=.t. t6=ctet1 zq6=zq cw6=cw if zq=4 jlun=\"智商不低吗!\" endif case p=7 thisform.l7.visible=.t. thisform.t7.visible=.t. thisform.zq7.visible=.t. thisform.cw7.visible=.t. t7=ctet1 zq7=zq cw7=cw if zq=4 jlun=\"还算可以,要努力呀!\" endif case p=8 thisform.l8.visible=.t. thisform.t8.visible=.t. thisform.zq8.visible=.t. thisform.cw8.visible=.t. t8=ctet1 zq8=zq cw8=cw if zq=4 jlun=\"一般人到这儿都能找到!\" endif case p=9 thisform.l9.visible=.t. thisform.t9.visible=.t. thisform.zq9.visible=.t. thisform.cw9.visible=.t. t9=ctet1 zq9=zq cw9=cw if zq=4 jlun=\"太一般了!\" endif case p=10 thisform.l10.visible=.t. thisform.t10.visible=.t. thisform.zq10.visible=.t. thisform.cw10.visible=.t. t10=ctet1 zq10=zq cw10=cw if zq=4 jlun=\"到现在才早找出来?!智商有问题!\" else jlun=\"智商太低了,再来一次?\" endif endcase ctet1=\"\" thisform.refresh

14、双击按钮“新一局”(command3),在其click过程中输入如下命令: jlun=\"\" thisform.l1.visible=.f. thisform.t1.visible=.f. thisform.zq1.visible=.f. thisform.cw1.visible=.f. thisform.l10.visible=.f. thisform.t10.visible=.f. thisform.zq10.visible=.f. thisform.cw10.visible=.f.thisform.l2.visible=.f. thisform.t2.visible=.f. thisform.zq2.visible=.f. thisform.cw2.visible=.f.thisform.l3.visible=.f. thisform.t3.visible=.f. thisform.zq3.visible=.f. thisform.cw3.visible=.f.thisform.l4.visible=.f. thisform.t4.visible=.f. thisform.zq4.visible=.f. thisform.cw4.visible=.f.thisform.l5.visible=.f. thisform.t5.visible=.f. thisform.zq5.visible=.f. thisform.cw5.visible=.f.thisform.l6.visible=.f. thisform.t6.visible=.f. thisform.zq6.visible=.f. thisform.cw6.visible=.f.thisform.l7.visible=.f. thisform.t7.visible=.f. thisform.zq7.visible=.f. thisform.cw7.visible=.f.thisform.l8.visible=.f. thisform.t8.visible=.f. thisform.zq8.visible=.f. thisform.cw8.visible=.f.thisform.l9.visible=.f. thisform.t9.visible=.f. thisform.zq9.visible=.f. thisform.cw9.visible=.f.p=0 ctext=\'1234567890\' for i=1 to 4 n=11-i cn1=rand() cn=int(cn1*n)+1 if cn=0 cn=1 endif txx=\'ctx\'+allt(str(i)) &txx=substr(ctext,cn,1) if cn=1 ctext1=right(ctext,(10-i)) else if cn=11-i ctext1=left(ctext,(10-i)) else ctext1=left(ctext,cn-1)+right(ctext,(11-i-cn)) endif endif ctext=ctext1 endfor

thisform.text1.value=\"\" thisform.refresh

15、双击按钮“退格”(command2),在其click过程中输入如下命令: if len(allt(ctet1))0 &&长度不为0 ctet1=left(ctet1,len(allt(ctet1))-1) &&删除后面的一为数 endif thisform.refresh

16、修改主菜单,在“游戏”的猜数游戏后填加命令:do form csyx,别忘了生成程序文件。

17、因为表单和程序不在同一目录下,所以单独运行表单会出现找不到某程序的错误,我们需要运行主程序main.prg,来看看运行结果。

VFP程序设计教学反思

vfp教学大纲

一级程序(教学用)VFP

数据库VFP教学体会(推荐)

Photoshop实例教学

Scratch实例教学

绕口令教学实例

二级VFP用户手册

VFP菜单练习

VFP实践总结

vfp教学实例
《vfp教学实例.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题 vfp实例大全 实例
点击下载本文文档