做VF系统常用到的代码
VFP程序设计各种代码
系统首页点击进入系统:doform用户登录.scxreleasethisform用户登录登陆:usepasswordLocateFor用户密码=and用户名=IfEof()?Messagebox("密码错误,请重新输入!!",0+48+0+0,"确定")Thisform.RefreshCloseDatabaseElseThisform.releaseDoform主表单.scxEndIf退出:thisform.release影碟登记首页:gototopthisform.refresh上一页:skip-1ifbof()messagebox("不好意思,已是第一个记录",48,"信息窗口")endifthisform.refresh下一页:skipifeof()messagebox("不好意思,已是最后一条记录",48,"信息窗口")skip-1endifthisform.refresh末页:gotobottomthisform.refresh添加:iflen(thisform.影片编号.value)=0gobottomdelepackwaitwindow"影片编号不能为空"timeout1endifappendthisform.refresh删除ifmessagebox("确实要删除本记录么?",1+64+256,"提示")=1deletepackskip-1thisform.refreshendif退出a=messagebox("你真的要退出吗?",4+16+0,"对话")ifa=6releasethisformendif影碟信息查询用户信息查询(用户名用户信息表)租借信息查询()查询locafor影片编号=aiffound()sele*from影碟信息表videoinfwhere影片编号=aintocursor"ling"elsemessagebox("未找到该影片编号的记录!",48,"提示")endif退出thisform.refresh主程序settalkoffsetsafetyoffsetstatbaroffsetsysmenuoffsetsysmenutosetcenturyon_screen.visible=.f.doform系统首页readevents退出程序:是closeall否releasethisformQuit。
vf常用编辑命令及函数
常用编程命令及常用函数注:在语法中如用方括号“[ ]”括起来的词句,表示可以不用。
常用命令假设(if...endif)循环(do while...enddo)分支(d 赋值(store...to)调用表单(do form)调用子返回调用程序(return)启动事件处理(read events)清除事开关命令执行状态(set talk on/off)结束程序(cancel)常用函数数值转换字符(str())字符转换数值(val())取系统日取年份(year())取月份(month())取天日(取整(int())四舍五入(round())删除标记记录号(recno())记录数(reccount())找到记录表结尾(eof())表开头(bof())消除后续消除前导空格(ltrim())假设语句根据一逻辑表达式的值,有条件的执行一组命令。
语法:IF 逻辑表达式 [THEN]程序组1[ELSE程序组2]ENDIF参数:逻辑表达式代表一逻辑值,如果这逻辑值为真,系统执行程序组1,否则不执行程序组1,如果有else及程序组2的话,则执行程序组2,如没有则什么也不执行,直接执行endif后面的语句。
备注:在if...endif之间还可以有if...endif,即该命令是可以嵌套的。
then可以有也可以没有,对程序没有影响。
else及程序组2可以有也可以没有,但如果有的话,在逻辑表达式的值为假时,程序组2将被执行。
if 与 endif 必须配对使用,即有一个 if 必须有一个 endif,否则程序会出错。
举例:例1:假如分数字段的值大于等于90,则让等级字段的值为“优”,并显示该记录。
程序如下:if 分数>=90replace 等级 with '优'displayendif例2:在数据库中可以把性别字段设为逻辑型,“真”代表“男”,“假”代表“女”,但显示时不能显示真、假,否则别人看不懂,而应显示男、女,因此我们设一变量xb,根据性别字段的具体值,将xb的值设为男或女,然后在需要的时候显示xb的值即可。
VF万能代码
所谓万能代码就是当你不清楚表单题目中的代码该怎么写了,那么就把这些代码写进去,忽悠电脑,让电脑给你一些分。
如果你能写出正确的代码,还是自己写最好!VF上机题做完后,是机器评分。
它不会再去运行,只是看你的结果和过程是否符合要求。
所以,当你不会的时候可以把以下的代码全部写上。
if else endifdo case case otherwise endcasedo while exit loop enddofor endforscan exit loop endscan val() ctod() str() year() month()select from where order by desc group by having into tableinto array凡是题目当中出现的控件,必须在程序代码中出现thisform.text1.valuethisform.edit1.valuethisform.check1.valuebo1.valuethisform.List1.Valuethisform.spinner1.valuethisform.grid1.recordsource=" "题目要求中的表名,也全部写出来。
原则是:答案可以通过手工做出来。
过程电脑没办法评测,只能看代码中是否有关键语句,所以能写出多少,就写多少,不要管对错。
【重要提示】上机考试是由机器自动评分,在评分中大体上可以分为两种评分方法。
一是,检查命令是否正确,即检查题目正确答案所要求的关键字是否存在,如存在,则可以得分。
二是,检查所要求的结果是否正确,例如,考试要求建立一个查询,文件名为myquery.qpr,并设置查询去向为表results.dbf,则系统在评分是即要检查myquery.qpr 是否正确,又要检查results.dbf文件是否正确。
根据系统评分的特点,我们就可以对上机考试投机取巧。
如果评分系统是检查命令是否正确,就可以采用万能代码法。
VF代码
1到100之间所有偶数之和set talk offclearsum=0for i=0 to 100 step 2sum=sum+iendfor?'2+4+6+......+100=',sum set talk onreturn1到100之间所有奇数之和set talk offclearsum=0for i=1 to 99 step 2sum=sum+iendfor?'1+3+5+......+99=',sumset talk onreturn1到100之间所有数之和set talk offclearsum=0for i=1 to 100sum=sum+iendfor?'1+2+3+......+100=' ,sum set talk onreturn1到49之间奇数之积clears=1for i=1 to 49 step 2s=s*iendfor?"s=",s1到50之间所有数之积set talk offclears=1for i=1 to 50s=s*iendfor?'1*2*......*50=',sset talk onreturn2到50的偶数之积.clears=1for i=2 to 50 step 2s=s*iendfor?"s=",s做金字塔图形s="△"j=14for i=1 to 7?space(j)??ss=s+"△"j=j-1next i求好中差set talk offclearaccept "请输入学号:" to xhhuse cjlocate for xh=xhhif !eof()cjj=cjdo casecase cjj>=89?"成绩为:?"??cjj??"等级为:优case cjj>=85 and cjj<89?"成绩为:"??cjj??"等级为:良"case cjj<85?"成绩为:"??cjj??"等级为:差"endcaseendifuseset talk onreturn求一元二次方程ax2+bx+c=0 的根SET TALK OFFCLEARINPUT "请输入a 的值:" TO aINPUT "请输入b 的值:" TO bINPUT "请输入c 的值:" TO cIF a<>0 &&有两个根delta=b^2-4*a*cre=-b/(2*a)IF delta>0 &&有两个不同实根sb=SQRT(delta)/2*a? "方程有两个实根:"pl="Xl="+STR(re+sb, 9, 4)p2="X2="+STR(re-sb, 9, 4)? Pl? P2ELSEIF delta=0 &&有两个相同实根? "方程有两个相同的实根:"? "x1=x2="+STR(re,9, 4)ELSExb=SQRT(-delta)/(2*a) &&仅有两个虚报? "方程有两个虚根"p1="xl="+STR(re,7,3)+"+"+IIF(xb=1,"", STR((xb),7, 3))+"i" p2="x2="+STR(re,7,3)+"+"+IIF(xb=1,"", STR((xb),7, 3))+"i" ? p1? p2ENDIFENDIFENDIFIF a=0 &&仅有一个根ygz=-b/C? "方程仅有一个根:"? "X="+STR(ygZ)ENDIF显示金字大宝塔文字clearc="金字大宝塔"n=len(c)/2for i=1 to n?space(7-i)for j=1 to i??subs(c,2*i-1,2)=inkey(0.5)endforendfor用★做倒立金字塔s="★★★★★★★★★★★" j=18for i=1 to 6?ss=substr(s,1,j)j=j-4next i用★做金字塔图形clearfor i=1 to 6? space(7-7)for j=1 to 2*i-1 ??"★"endforendfor。
vf常用命令(全)
命令结构FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。
如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT]常用子句范围:表示记录的执行范围,可以是下面几项其中之一:ALL 表示全部记录;NEXT n 表示从当前记录开始的以下n条记录;RECORD n 表示第n号记录;REST 表示从当前记录到最后一条记录。
FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。
FOR条件:对满足条件的记录进行操作。
WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。
以下命令中,大写的英文词为关键词,必须原样照写。
“常用子句”指以下几个可选子句:[范围] [FIELDS 字段名表] [FOR 条件] [WHILE 条件]命令中的“列表”,指用“,”分隔的各项。
如“字段名列表”就是将各个字段名用逗号分隔。
部分英文词的意义:Databasename 数据名tablename 数据表名filename 文件名Viewname 视图名arrayname 数组名提示:加下划线的为本课程要求掌握的命令。
一、数据库的建立、打开、关闭和删除建立数据库:CREATE DATABASE [databasename|?]从磁盘中删除数据库:DELETE DATABASE databasename|?打开数据库:OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE [databasename|?]指定的数据库databasename为当前数据库。
指定当前的数据库:SET DATABASE TO [databasename]Databasename必须为已经打开的数据库。
如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。
2、VF基本命令及SQL语句
视图的定义
Create view <视图名> as <查询语句>
视图的删除 Drop view <视图名>
SQL的数据查询功能 嵌套查询
格式:Select 目标列1,目标列2,…… from 表名1 where 字段名; In(select 字段名 from 表名2 where 筛选条件……) 等价于格式: Select 目标列1,目标列2,…… from 表名1 where exists; (select * from 表名2 where 联接条件) SQL的数据查询功能 分组与计算查询 格式:Select <目标列>… from <表名或视图名>… ; [where <筛选条件>] [ order by <排序列> [ASC | DESC] ; [group by <分组列> [having <分组条件>] ]
3.设置当前索引: Set order to [<数值表达式>] 注:0关闭索引,1第一个索引 Set order to [<单索引文件名>] 选择表所在工作区: select <工作区号>|<别名> 功能:从工作区中选择一个作为当前工作区。 说明:Select 0为 选择编号最小且没有使用的工作区为当前工 作区。 (即空闲的最小号工作区)
数据库操作相关命令 表结构的操作相关命令 表记录的操作相关命令基 本 命ຫໍສະໝຸດ 令表记录指针移动的相关命令
索引文件操作相关命令
物理排序 关联的建立: (临时联系)
数据库操作相关命令
建立数据库:create database [Database Name|?] 打开数据库:open database [Filename|?] [exclusive | shared] 修改数据库:modify database [DatabaseName |?] 删除数据库:delete database DatabaseName |? [DeleteTables][Recycle] 关闭数据库:close database
VF常用命令和程序命令.
VF常用命令和程序命令一、主要命令: 1、CREATE 作用:建立一个新的表。
格式:CREATE [<文件>|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同时选择,下同。
)说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出对话框,要求用户输入想要建立的表名。
在命令中不加文件名或问号系统也会弹出对话框,要求用户输入想要建立的表名。
2、MODIFY STRUCTURE 作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE 说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
3、APPEND 作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:APPEND [BLANK] 说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。
无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
4、INSERT 作用:在表文件中间插入一个新记录。
格式:INSERT [BEFORE] [BLANK] 说明:INSERT 在当前记录后插入一记录; INSERT BEFORE 在当前记录前插入一记录; INSERT BEFORE BLANK 在当前记录前插入一空记录。
5、BROWSE 作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。
格式:BROWSE 6、USE 作用:打开和关闭表文件。
格式:USE [<文件名>] 说明:前一个命令用来打开<文件名>指定的表文件,该表如有备注型字段,则同时打开相应的备注文件(.fpt文件);后一个命令关闭当前打开的表文件。
7、LIST和DISPLAY 作用:显示表(.dbf的内容、结构或状态。
vf登陆界面代码
do casecase alltrim (thisform.text1.value)="000001".and.alltrim (thisform.text2.value)="abc"=messagebox("登录成功",32,"提示信息")stnumber="000001"do form 学生信息系统.scxcase alltrim (thisform.text1.value)="000002".and.alltrim (thisform.text2.value)="def"=messagebox("登录成功",32,"提示信息")stnumber="000002"do form 学生信息系统.scxotherwise=messagebox("登录失败,请重新输入",48,"提示信息")endcasedo casecase alltrim (thisform.text1.value)="20102326".and.alltrim (thisform.text2.value)="12"=messagebox("登录成功",32,"提示信息")stnumber="20102326"do form 学生信息查询.scxcase alltrim (thisform.text1.value)="20102312".and.alltrim (thisform.text2.value)="23"=messagebox("登录成功",32,"提示信息")stnumber="20102312"case alltrim (thisform.text1.value)="20102340".and.alltrim (thisform.text2.value)="34"=messagebox("登录成功",32,"提示信息")stnumber="20102340"case alltrim (thisform.text1.value)="20102314".and.alltrim (thisform.text2.value)="45"=messagebox("登录成功",32,"提示信息")stnumber="20102314"case alltrim (thisform.text1.value)="20102341".and.alltrim (thisform.text2.value)="56"=messagebox("登录成功",32,"提示信息")stnumber="20102341"case alltrim (thisform.text1.value)="20102302".and.alltrim (thisform.text2.value)="78"=messagebox("登录成功",32,"提示信息")stnumber="20102302"do form 学生信息查询.scxotherwise=messagebox("登录失败,请重新输入",64,"提示信息")Endcaseuse 用户表a=Thisform.text1.valueb=Thisform.text2.valueif a==""n=messagebox("请输入用户名",4+32,"学生管理系统登陆")do casecase n=6thisform.text1.value=""thisform.text1.setfocuscase n=7thisform.releaseendcaseelseif b==""n=messagebox("请输入密码",4+32,"学生管理系统登陆")do casecase n=6thisform.text2.value=""thisform.text2.setfocuscase n=7thisform.releaseendcaseendifendiflocate for alltrim(用户表.Id)==alltrim(a)if found()if alltrim(用户表.Ps)==alltrim(b)do form 学生信息查询.mprthisform.releaseelsemessagebox("密码错误,请重新输入",64,"学生管理系统登陆") errornumber=errornumber+1endifelsemessagebox("用户"+a+"不存在!",64,"学生管理系统登陆")errornumber=errornumber+1endifif errornumber=3MESSAGEBOX("您已经输入3次错误,请按确定退出",64,"学生管理系统") ask=messagebox("确定要退出吗?",4+32+256,"学生管理系统")if ask=6close allquitdo form 学生信息查询elseendifendifuse 用户表store allt(thisform.text1.value) to 用户名store allt(thisform.text2.value) to 密码if thisform.text1.value = thisform.text2.value and ;thisform.text3.value = thisform.text4.valueupdate 用户表set mm=密码=messagebox('用户名和密码修改成功!',0+64+0,'信息')else=messagebox('用户名和密码不统一,请重新输入!',0+64+0,'错误') Endifsele 用户表if allt(thisform.text1.value)==""thisform.text1.setfocuselselocate for allt(用户名)=allt(thisform.text1.value)if eof()messagebox("此用户不存在,请重新输入!",64,"提示") thisform.text1.value=""thisform.text1.setfocus()elseif !allt(密码)==allt(thisform.text2.value)messagebox("密码错误,请重新输入!",64,"提示")thisform.text2.value=""thisform.text2.setfocus()elseif allt(thisform.text3.value)==""messagebox("请输入新密码!",64,"提示")thisform.text3.setfocuselseif !allt(thisform.text3.value)==allt(thisform.text4.value) messagebox("确认密码错误,请重新输入!",64,"提示") thisform.text4.value=""thisform.text4.setfocuselserepl 密码with allt(thisform.text4.value)thisform.releaseendifendifendifendifendifdo casecase alltrim (thisform.text1.value)="20102326".and.alltrim (thisform.text2.value)="12"=messagebox("登录成功",32,"提示信息")stnumber="20102326"do form 学生信息查询.scxcase alltrim (thisform.text1.value)="20102312".and.alltrim (thisform.text2.value)="23"=messagebox("登录成功",32,"提示信息")stnumber="20102312"do form 学生信息查询.scxcase alltrim (thisform.text1.value)="20102340".and.alltrim (thisform.text2.value)="34"=messagebox("登录成功",32,"提示信息")stnumber="20102340"do form 学生信息查询.scxcase alltrim (thisform.text1.value)="20102314".and.alltrim (thisform.text2.value)="45"=messagebox("登录成功",32,"提示信息")stnumber="20102314"do form 学生信息查询.scxcase alltrim (thisform.text1.value)="20102341".and.alltrim (thisform.text2.value)="56"=messagebox("登录成功",32,"提示信息")stnumber="20102341"case alltrim (thisform.text1.value)="20102302".and.alltrim (thisform.text2.value)="78"=messagebox("登录成功",32,"提示信息")stnumber="20102302"do form 学生信息查询.scxotherwise=messagebox("登录失败,请重新输入",64,"提示信息")Endcaseselect 用户表locate for(alltrim(用户表.用户名));=upper(alltrim(.text1.value))if found()and upper(alltrim(密码));==upper(alltrim(thisform.pass.value))=messagebox("登录成功!欢迎进入学生信息查询")insert into 日志信息表(用户名,时间);values(thisform.text1.value,datetime())*do form start*do mainmenu.mprthisform.releaseelse#define mismatch_loc timeout 1.5thisform.text1.value=""thisform.pass.value=""thisform.text1.setfocusnumcount=numcount+1if numcount=3=messagebox("三次输入口令错误,即将退出程序") thisform.releaseendifendifs=substr(time(),1,2)f=substr(time(),4,2)m=substr(time(),7,2)mn=val(m)if int(mn/2)=mn/2thisform.text2.fxrecolor=rgb(255,0,0)elsethisform.text2.fxrecolor=rgb(0,0,255)endifthisform.text2.value=s+'时'+f+'分'+m+'秒'aa=alltrim(thisform.text1.value)use 用户表select intolocate for 用户名=aaif found() thenusemessagebox("dddddd")elseusemessagebox("xxxxxxxxxxxxxx")wait window mismatch_loc timeout 1.5thisform.text1.value=""thisform.text2.value=""thisform.text1.setfocusnumcount=numcount+1if numcount=3=messagebox("三次输入口令错误,即将退出程序")endif。
vf命令大全加粗版
VF常用命令和程序命令一、主要命令:1、CREATE作用:建立一个新的表。
格式:CREATE [<文件>|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA ,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同时选择,下同。
)说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出对话框,要求用户输入想要建立的表名。
在命令中不加文件名或问号系统也会弹出对话框,要求用户输入想要建立的表名。
2、MODIFY STRUCTURE作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
3、APPEND作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:APPEND [BLANK]说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
4、INSERT作用:在表文件中间插入一个新记录。
格式:INSERT [BEFORE] [BLANK]说明:INSERT 在当前记录后插入一记录;INSERT BEFORE 在当前记录前插入一记录;INSERT BEFORE BLANK 在当前记录前插入一空记录。
5、BROWSE作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。
格式:BROWSE [FIELDS <字段名表>]6、USE作用:打开和关闭表文件。
格式:USE [<文件名>] USE说明:前一个命令用来打开<文件名>指定的表文件,该表如有备注型字段,则同时打开相应的备注文件(.fpt文件);后一个命令关闭当前打开的表文件。
7、LIST和DISPLAY作用:显示表(.dbf)的内容、结构或状态。
VF常用命令和程序命令
VF常用命令和程序命令一、主要命令:1、CREATE作用:建立一个新的表。
格式:CREATE [<文件>|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA,下同;中括号表示其中的参数是可选的;|符号表示两个参数只能选择一个,不能同时选择,下同。
说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出对话框,要求用户输入想要建立的表名。
在命令中不加文件名或问号系统也会弹出对话框,要求用户输入想要建立的表名。
例:create d:\student说明:在D盘下建立一个名为student的表文件。
2、MODIFY STRUCTURE作用:显示表文件结构,并允许修改此表的结构。
格式:MODIFY STRUCTURE说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。
3、APPEND作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。
格式:APPEND [BLANK]说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。
无BLANK 参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。
4、INSERT作用:在表文件中间插入一个新记录。
格式:INSERT [BEFORE] [BLANK]说明:INSERT 在当前记录后插入一记录;INSERT BEFORE 在当前记录前插入一记录;INSERT BEFORE BLANK 在当前记录前插入一空记录。
5、BROWSE作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。
格式:BROWSE6、USE作用:打开和关闭表文件。
格式:USE [<文件名>]例:use d:\student说明:打开D盘下名为student的表文件USE ,表打开后不能看到表数据内容,通过显示菜单进行浏览。
作用:关闭当前打开的表文件。
Vf基础操作代码
Vf的基础操作命令Ctrl+F4 隐藏命令窗口Ctrl+F2 显示命令窗口dir 显示当前目录下表的信息clear 清除主屏幕quit 直接退出vf系统create database{DatabaseName | ?} 建立数据库:其中参数DatabaseName给出了要建立的数据库名称,如果不指定数据库名称或使用问号都会弹出对话框请用户输入数据库名称。
Open database{fileName | ?} 打开数据库fileName:要打开的数据库名(默认的数据库文件扩展名.dbf),如果不指定数据库名或使用问好“?”,则显示“打开”对话框;exclusive:以独占方式打开数据库(等价于在“打开”对话框中选择复选框“独占”),既不允许其他用户在同一时刻也使用该数据库;shared:以共享方式打开数据库(等价于在“打开”对话框中不选择复选框“独占”),即允许其他用户在同一时刻使用该数据库,默认打开方式由set exclusive命令设置的值确定;noupdate:指定数据库按只读方式打开(等价于“打开”对话框中选择复选框“以只读方式打开”),即不允许对数据库进行修改。
默认的打开方式是读/写方式(即可修改);validate:指定vf检查在数据库中引用的对象是否合法,例如检查数据库中的表和索引是否可用,检查表的字段或索引的标记是否存在等。
注意:这里的noupdate选项实际并不起作用,为了使数据库中的表是只读的,需要在用use命令打开表时使用noupdate;当数据库打开时,包含在数据库中的所有表都可以使用,但是这些表不会自动打开,使用时需要用use命令打开;vf在同一时刻可以打开多个数据库,但在同一时刻只有一个当前数据库,也就是说所有作用于数据库的命令或函数是对当前数据库而言的。
指定当前数据库的命令是:set database to{databaseName} 参数databaseName指定一个已经打开的数据库名称成为当前数据库,如果不指定参数,即输入命令:set database to 此时使得所有打开的数据库都不是当前数据库(注意:所有的数据库都没有关闭,只是都不是当前数据库)。
附录VF常用函数和命令
(9)字符匹配函数
格式:INLIST(<字符表达式1>,<字符表达式2>,<字符表 达式3…>)
(6)四舍五入
格式:ROUND(<数值表达式>,<保留位数>)
功能:根据指定的保留位数,对保留位数后的小数进行四 舍五入的处理。如果<保留位数>小于0,则对整数部分进行四 舍五入。
(7)求最大值与最小值
格式:MAX(<数值表达式1>,<数值表达式2>,[<数值表达 式…>])
MIN(<数值表达式1>,<数值表达式2>,[<数值表达式…>])
常用命令
1.系统命令 (1)设置默认路径命令 格式:SET DEFA TO 盘符:\路径 功能:对VF系统中默认的路径进行设定。
(2)终止程序执行命令 格式:CANCEL、QUIT、RETURN 功能:终止程序。
(3)复制任何类型的文件 格式:COPY FILE 〈文件名1〉TO 〈文件 名2〉 (4)清除主屏幕命令
3.表命令
DBF() 返回指定工作区中打开的表名,或根据表别名返回表名 EOF() 确定记录指针位置是否超出当前表或指定表中的最后一个记录 FCOUNT() 返回衰中的字段数目 FIELD() 根据编号返回表中的字段名 BROWSE 浏览记录 LOOKUP( ) 在表中搜索字段值与指定表达式匹配的第一个记录 RECCOUNT() 返回当前或指定表中的记录数目 RECNO() 返回当前表或指定表中的当前记录号
Visual FoxPro常用代码
Visual FoxPro常用代码Visual FoxPro常用命令分类表数据库文件及记录命令ADD TABLE 在当前数据库中添加一个自由表APPEND 在表的末尾添加一个或多个新记录APPEND FROM ARRAY 由数组添加记录到表中APPEND FROM 从一个文件中读入记录,追加到当前表的尾部APPEND GENERAL 从文件中导入OLE对象并将其放入通用字段中APPEND MEMO 将文本文件的内容复制到备注字段中APPEND PROCEDURES 将文本文件中的存储过程追加到当前数据库中AVERAGE 计算数值表达式或字段的算术平均值BLANK 清除当前记录中所有字段的数据BROWSE 打开浏览窗口,显示当前或选定表的记录CALCULATE 对表中的字段或包含字段的表达式进行财务和统计操作CHANGE 显示要编辑的字段CLOSE 关闭各种类型的文件CLOSE MEMO 关闭一个或多个备注编辑窗口COMPILE DATABASE 编译数据库中的存储过程CONTINUE 继续执行先前的LOCATE命令COPY MEMO 复制当前记录中的指定备注字段的内容到文本文件COPY PROCEDURES 将当前数据库中’的存储过程复制到文本文件COPY STRUCTURE 用当前选择的表结构创建一个新的空自由表COPY STRUCTURE EXTENDED 创建新表,它的字段包含当前选定表的结构信息COPY TO ARRAY 将当前选定表中的数据复制到数组COPY TO 用当前选定表的内容创建新文件COUNT 统计表中记录数目CREATE 生成一个新的VisualFoxPro表CREATE CONNECTION 创建一个命名连接并把它存储在当前数据库中CREATE DATABASE 创建并打开一个数据库CREATE TRIGGER 创建表的删除、插入或更新触发器CREATE VIEW 从VisualFoxPro环境创建视图文件DELETE 给要删除的记录做标记DELETE CONNECTION 从当前数据库中删除一个命名连接DELETE DATABASE 从磁盘上删除数据库DELETE TRIGGER 从当前数据库的表中删除“删除”、“插入”或“更新”触发器│DELETE VIEW 从当前数据库中删除一个SQL视图DISPLAY 在VisualFoxPro主窗口或用户自定义窗口中显示与当前表有关的信息DISPLAY CONNECTIONS 显示当前数据库中与命名连接有关的信息DISPLAY DATABASE 显示有关当前数据库的信息,或当前数据库中的字段、命名连接、表或视图的信息DISPLAY MEMORY 显示内存变量和数组的当前内容DISPLAY PROCEDURES 显示当前数据库中存储过程的名称DISPLAY STRUCTURE 显示一个表文件的结构DISPLAY TABLES 显示包含在当前数据库中所有的表和表的信息DISPLAY VIEWS 显示当前数据库中关于SQL视图的信息以及SQL视图是否基于本地或远程表的信息DROP TABLE 把一个表从数据库中移出,并从磁盘中删除它DROP VIEW 从当前数据库中删除指定的SQL视图EDIT 显示要编辑的字段+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++EXPORT 把VisualFoxPro表中的数据复制到其他格式的文件中FIND 查找记录FLUSH 将对表和索引所作的修改存入磁盘FREE TABLE 删除表中的数据库引用GATHER 将当前选定表中当前记录的数据替换为某个数组、内存变量组或对象中的数据GO|GOTO 将记录指针移动到指定记录上IMPORT 从外部文件导入数据,创建一个VisualFoxPro新表INSERT 插入记录JOIN 将两个数据库文件合并LIST 连续显示表或环境信息LIST CONNECTIONS 连续显示有关当前数据库中命名连接的信息LIST DATABASE 连续显示有关当前数据库的信息LIST PROCEDURES 连续显示当前数据库存储过程的名称LIST TABLES 连续显示包含在当前数据库中的所有表和表的信息LIST VIEWS 连续显示当前数据库中有关SQL视图的信息LOCATE 按顺序搜索表从而找到满足指定逻辑表达式的第一个记录MODIFY CONNECTION 显示连接设计器,让你能够交互地修改当前数据库中已有的命名连接MODIFY DATABASE 打开数据库设计器,让你能够交互地修改当前数据库 MODIFY GENERAL 在编辑窗口中打开当前记录中的通用字段MODIFY MEMO 打开当前记录备注字段的编辑窗口MODIFY PROCEDURE 打开VisualFoxPro文本编辑器,可在其中为当前数据库创建新的存储过程MODIFY STRUCTURE 显示表设计器MODIFY VIEW 显示视图设计器OPEN DATABASE 打开一个数据库PACK 从当前表中永久删除标有删除标记的记录PACK DATABASE 从当前数据库中删除标有删除标记的记录RECALL 恢复所选表中带有删除标记的记录 •REMOVE TABLE 从当前数据库中移去一个表RENAME CONNECTION 重命名当前数据库中的一个命名连接RENAME TABLE 重命名当前数据库中的表RENAME VIEW 重命名当前数据库中的3QL视图REPLACE 更新表的记录内容REPLACE FROM ARRAY 使用内存变量数组中的值更新字段内容SCAN...ENDSCAN 运行扫描数据表文件SCATTER 从当前记录中把数据复制到一组内存变量或数组中SEEK 查找记录命令SELECT 激活指定工作区SET AUTOINCERROR 在自动增加值产生错误时是否更新或插入一个值到记录中SET COLLATE 指定在后续索引和拌序操作中,字符型字段的排序顺序 SET DATABASE 指定当前数据库SET DATASESSION 激活指定的表单数据工作期SET DELETED 指定VisualFoxPro是否处理标有删除标记的记录,以及其他命令是否可以操作它们SET EXCLUSIVE 指定VisualFoxPro在网络上以独占方式还是共享方式打开表文件SET FIELDS 指定可以访问表中的哪些字段SET FILTER 指定访问当前表中记录时必须满足的条件SET INDEX 打开一个或多个索引文件,供当前表使用;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++SET KEY 根据索引关键字,指定访问记录的范围SET LOCK 激活或废止在某些命令中的自动文件锁定SET MULTILOCKS 决定能否使用LOOK()或RLOCK()锁定多个记录SET NEAR FIND或SEEK查找记录不成功时,确定记录指针停留的位置 SET NOCPTRANS 防止把已打开表中的选定字段转换到另一个代码页SET NULL 确定ATLTERTABLE、CREATETABLE和INSERT-SQL命令如何处理null值SET NULLDISPLAY 指定null值显示时对应的字符中SET RELATION 在两个打开的表之间建立关系SET RELATIONOFF 解除当前选定工作区中父表与相关子表之间已建立的关系SET REPROCESS 指定一次锁定尝试不成功后,VisualFoxPro对文件或记录再次尝试加锁的次数或时间SET SKIP 创建表与表之间的一对多关系SET TABLEVALIDATE 指定一个表的执行级别SET WINDOW OF MEMO 设置备注字段使用的窗口SKIP 使记录指针在表中向前移动或向后移动SUM 对当前选定表的指定数值字段或全部数值字段进行求和TOTAL 计算当前选定表中数值字段的总和UPDATE 更新数据库文件的记录USE 打开一个表及其相关索引文件,或打开一个SQL视图VALIDATE DATABASE 保证当前数据库中表和索引位置的正确性ZAP 从表中删除所有记桌,只留下表的结构索引及排序命令COPY INDEXES 从单项索引.IDX文件创建复合索引标识COPY TAG 根据复合索引文件的标识创建单项索引(.IDX)文件DELETE TAG 从复合索引(.CDX)文件中删除标识INDEX 创建一个索引文件,利用该文件可以按某种逻辑顺序显示和访问表记录REINDEX 重整索引SET ORDER 指定表的主控索引文件或标识SET UNIQUE 指定具有重复索引关键字的记录是否保留在索引文件中 SORT 对当前选定表进行捧序,井将捧过序的记录输出到新表中Visual FoxPro环境设定命令CREATE COLOR SET 从当前颜色设置中创建一个颜色集合DISPLAY STATUS 显示VisualFoxPro环境的状态SET ANSI 确定VisualFoxProSQL命令中如何用操作符":"对不同长度字符串进行比较SET ASSERTS 指定ASSERT命令是否被忽略SET AUTO SAVE 当退出READ命令或返回到命令窗口时,决定V FP是否把数据缓冲区中的数据保存到磁盘上去SET BELL 关掉或打开计算机铃声,并设置铃声属性SET BLOCKSIZE 指定VisualFoxPro如何为保存备注字段分配磁盘空间SET BORDER 指定当在"浏览"窗口中定位到一个文本框时,是否显示输入法生成器SET BRSTATUS 设定浏览窗口的状态行SET CARRY 决定使用INSERT、APPEND和BROWSE命令创建新记录时,是否将当前记录数据复制到新记录中SET CLEAR 设置清除方法SET CLOCK 决定VisualFoxPro是否显示系统时钟,也可以指定系统时钟在VisualFoxPro主窗中的位置SET COLOR OF 设定颜色对的组合SET COLOR OF SCHEME 设定调色板的颜色组合SET COLOR SET 设定颜色集的组合SET COLOR TO 改变屏幕颜色+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++SET 设定命令SET COMPATIBLE 设置与其他Xbase语言的兼容性SET CONFIRM 指定是否可以用在文本框中键入最后一个字符的方法退出文本框SET CONSOLE 激活或废止从程序中向VisualFoxPro主窗口或活动的用户自定义窗口的输出SET COVERAGE 开启或关闭编辑日志,或指定一个文本文件,编辑日志的所有信息将输出到其中SET CPCOMPILE 指定编译程序的代码页SET CPDIALOG 指定打开表时是否显示"代码页"对话框SET CURRENCY 定义货币符号,并且指定货币符号在数值、货币、浮点数和双精度数表达式中的显示位置SET CURSOR 确定在VisualFoxPro等待输入时,是否显示插入点SET DEBUG 设置调试模式SET DEBUGOUT 将调试结果输出到一个文件SET DECIMALS 指定数值表达式中的小数点位数SET DEFAULT 指定默认的驱动器、目录或文件夹SET DELLMITERS 设定分割字符SET DEVELOPMENT 使Visual FoxPro在运行程序时,对目标文件的编译日期时间与程序的创建日期时间进行比较SET DEVICE 将@…SAY的输出结果定向到屏幕、打印机或文件SET DISPLAY 设置显示模式SET DOHISTORY 设定取得运行中程序的状态SET ENGINEBEHAVIOR 允许SQL数据引擎兼容VisualFoxPr07.0或VisualFoxpr08.0SET ESCAPE 决定是否可以通过按Ese键中断程序和命令的运行SET EXACT 指定比较不同长度两个字符串时,VisualFoxPro使用的规则SET FIXED 指定在显示数值时小数位数是否固定SET FULLPATH 指定CDX()、DBP()、MDX()和NDX()等函数是否返回文件名的路径SET FUNCTION 给功能键或组合键分配表达式(键盘宏)SET HEADINGS 指定用TYPE显示文件内容时,是否显示字段的列标头,并指定是否包含文件信息SET HELP 激活或废止VisualFoxPro联机帮助或指定的帮助文件.SET INTENSITY 设置屏幕反白模式SET KEYCOMP 控制VisualFoxPro的键击定位SET LOGERRORS 决定VisualFoxPro是否将编译错误信息送入文本文件SET MACKEY 指定显示"宏键定义"对话框的单个键或组合键SET MEMOWIDTH 指定备注字段和字符表达式的显示宽度SET MESSAGE 定义在Visual FoxPro主窗口或图形状态栏中显示的信息,或者指定有关用户自定义菜单栏和菜单命令的信息位置SET NOTIFY 确定是否显示某种系统信息SET ODOMETER 对处理记录的各命令指定记录计数器的报告间隔SET OLEOBJECT VisualFoxPro找不到对象时,指定是否在WindowsRegistry 中查找SET OPTIMIZE 启用或废止Rushmore优化SET PALETI~ 指定是否使用默认的调色板SET PATH 指定查找文件的路径SET POINT 显示数值表达式或货币表达式时,确定所用小数点字符SET RESOURCE 更新资源文件或指定资源文件SET SAFETY 设定确认模式SET SEPARATOR 设置千位分隔符号SET SPACE 使用?或??命令时,确定字段或表达式之间是否显示空格SET STATUS BAR 显示或删除图形状态栏SET STATUS 显示或移去基于字符的状态栏+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++SET SYSFORMATS 指定是否用当前W'mdows系统设置值更新VisualFoxPro系统设置SET SYSMENU 在程序运行期间,启用或废止VisualFoxPro系统菜单栏,并对其重新配置SET TALK 决定VisualFoxPro是否显示命令结果SET TEXTMERGE 指定是否对文本合并分隔符括起的字段、内存变量、数组元素、函数或表达式进行计算SET TEXTMERGE DELIMITERS 指定文本合并分隔符SET TOPIC 指定激活VisualFoxPro帮助系统时,要打开的帮助主题SET TOPIC ID 指定激活Visual FoxPro帮助系统时要显示的帮助主题。
VF数据库常用命令
命令1:CREATE [路径][表名] 一、创建数据表的结构例子:在A盘创建GZ2数据表。
CREATE A:GZ2命令2:CREATE [新表名] FROM [旧表名]例子:在A盘由GZ1创建GZ3数据表。
CREATE A:GZ3 FROM A:GZ1二、表结构的显示命令:LIST STRUCTUREDISPLAY STRUCTURE例子:显示当前数据表在结构。
LIST STRUCTURE三、数据表的打开命令:USE 表名 [INDEX 索引文件名] [EXCLUSIVE]例子:打开A盘GZ1数据表。
USE A:GZ1四、数据表的关闭命令:USECLOSE DATA例子:关闭当前打开的数据表。
USE五、表结构的修改命令:MODIFY STRUCTURE例子:修改当前数据表的结构。
MODIFY STRUCTURE六、表数据的输入命令:APPEND [BLANK]例子:向当前数据表追加数据。
APPEND七、表记录的显示命令:BROWSE [FIELDS 字段表][FOR 条件]LIST [范围][[FIELDS]字段表][FOR 条件]DISPLAY [范围][[FIELDS]字段表][FOR 条件]例子:显示当前表中“应发合计”大于1000元的记录的职工编号、姓名、应发合计三个字段。
BROWSE FIELDS 职工编号,姓名,应发合计 FOR 应发合计>1000LIST 职工编号,姓名,应发合计 FOR 应发合计>1000八、用复制方法建新表命令:COPY TO 新表名 [范围][FIELDS 字段表][FOR 条件]例子:把当前表中“应发合计”大于1000元的记录复制到新数据表GZ2中。
COPY TO A:GZ2 FOR 应发合计>1000九、从其他表取数据命令:APPEND FROM 表名 [FOR 条件]例子:把GZ1表中“应发合计”大于1000的记录复制到当前的表后面。
APPEND FROM GZ1 FOR 应发合计>1000十、记录指针定位命令:GO n|TOP|BOTTOM (绝对移动)SKIP [±n] (相对移动)例子:把记录指针移到第1条记录。
一些很有用的VFP代码
一些很有用的VFP代码————————————————————————退出按钮代码if messagebox('你真的要退出本系统吗?',4+32+256,'请确认')=7 &&用户回答"否"nodefault &&表示不进行默认的行为模式elseclear events &&是否要支行clear,视需要而定quitendif————————————————————————导入EXCEL数据,另存为DBF表IMPORT FROM (GETFILE('XLS', '','', 0, '选择一个EXCEL表,然后另存为DBF 表')) TYPE XL5 &&或XL8COPY TO PUTFILE('', '', 'DBF')lcTmpTable=DBF()CLOSE DATABASESDelete FILE (lcTmpTable)————————————————————————VFP中导入EXCEL,使原来EXCEL第一行变为DBF字段名import from E:\test\原表.xls type xlscopy to test.dbf for recno()>1go toplnFieldNum=fcount()lcString='Select 'for lnCount=1 to lnFieldNumlcString=lcString+field(lnCount)+' As '+alltrim(evaluate(field(ln Count)))+','endforlcString=left(lcString,len(lcString)-1)+' into table ttt2 from test'&lcString————————————————————————超链接代码(文本或按钮click)ThisForm.HyperLink1.NavigateTo("")————————————————————————改变路径set path to D:\完成————————————————————————获取当前程序所在路径*方法一:**********************PUBLIC LCNowpathLCNowpath=SYS(5)+SYS(2003)+"\"set default to "&LCNowpath" &&设置默认工作目录***********************方法二:**********************PUBLIC LCSys16,LCNowpathLCSys16=SYS(16) &&获取当前程序所在的全路径,包括当前运行程序名。
VF代码①
VF编程代码一、表单代码(共7个,每套试卷表单设计均以此为例)1、写在自建方法程序中(例:自建方法程序,命名为“mo..”)nrec=recno()do casecase nrec=ntopmand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.t.mand4.enabled=.t.case nrec=nbottommand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.f.mand4.enabled=.f.otherwisemand1.enabled=.t.mand2.enabled=.t.mand3.enabled=.t.mand4.enabled=.t.endcasethisform.refresh2、写在Init Event中public ntop,nbottomgo bottomnbottom=recno()go topntop=recno()thisform.mo..注.:.mo..为自建方法程序名........3、写在逐条命令按钮中。
首条go topthisform.mo4、上一条skip -1if bof()go topendifthisform.mo5、下一条skipif eof()go bottomendifthisform.mo6、末条go bottomthisform.mo7、关闭thisform.release二、程序设计代码1、题目:1到50之间的所有数之积(即s=1*2*3* (50)set talk offclears=1for i=1 to 50s=s*iendfor?'1*2*......*50=',sset talk onreturn运行结果:3.14040932……E+642、题目:0到100之间的所有数之和(即s=1+2+3+ (100)set talk offclearsum=0for i=1 to 100sum=sum+iendfor?'1+2+3+......+100=',sumset talk onreturn运行结果:50503、奇数之和的写法:set talk offclearsum=0for i=1 to 99 step 2sum=sum+iendfor?'1+3+5+......+99=',sumset talk onreturn运行结果:25004、偶数之和的写法:set talk offclearsum=0for i=0 to 100 step 2sum=sum+iendfor?'2+4+6+......+100=',sumset talk onreturn运行结果:2550三、菜单设计器(过程为两行代码、命令为一行)1、use xs.dbfBrowsr 注.:.xs..为表名...2、do my.qpr 注.:.my..为以自己名字命名的文件名............3、set sysmenu to default4、do form my.scx5、do my.prg6、report form my.frx preview四、数据类型。
VFP代码整理
VFP代码1.数据库建立create database <数据库名>2.数据库打开open database <数据库名>3.指定当前数据库set database to <数据库名>4.修改数据库modify database <数据库名>5.关闭数据库close database (关闭当前数据库)或close all (关闭所有已打开的数据库)6.删除数据库delete database <数据库名> [deletetables](是否删除数据库里的表)7.建立数据表结构create8.记录的输入append9.修改数据表结构modify structure10.显示数据表结构list structure 或display structure11.打开数据表文件use <表文件名>12.记录指针的定位go 记录号skip nlocate for <条件>13.状态测试函数recno():检测当前记录的记录号bof():检测记录指针是否指向表文件头eof():检测记录指针是否指向表文件尾found():检测locate命令执行后,是否有满足条件的纪录14.查看数据表内容list、display或browse15.修改记录browse、change、edit或replace [范围] <字段1> with <表达式1> [additive] [,<字段2> with <表达式2> [additive] …] [for|while <条件>]或update <表名> set <字段1=表达式1>[,<字段2=表达式2>…][while <条件表达式>]16.插入记录insert17.记录的逻辑删除与恢复delete recall18.记录的物理删除pack zap(全部记录删除)19.排序sort to <新表文件名> on <字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…][<范围>][fields<字段表名>][for|while<条件表达式>]20.单索引index on <关键字表达式> to <单索引文件名> [additive]21.复合索引index on <关键字表达式> tag <标识名> [for|while<条件表达式>] [ascending(升序)|descending(降序)] [unique(建立唯一索引)|candidate(建立候选索引)]22.设置当前(主控)索引set order to <索引序号>|[tag] <索引标识名>[ascending|descending]23.删除索引delete tag <索引标识名> 或delete tag all24.重新索引reindex25.将自由表添加为数据库表add table <自由表名>26.从数据库中移去或删除数据表remove table <自由表名> [delete]27.制定工作区select<工作区号>|<工作区别名>28.多工作区中表文件的打开与关闭use [<表文件名>] [in <工作区号>] [again] [alias <别名>]29.建立临时关系set relation to <关系表达式> into <工作区号|别名>(在主表工作区中运行)30.解除临时关系 select <工作区号|别名>set relation to31.表定义 create table <表名> [name <长表名>] [free](<字段名1><类型>[(<字段宽度>[,<小数位数>])][null|not null] [default<表达式默认值>][primary key|unique][references <子表表名>[tag<标识名>]][,<字段名2>…][,foreign key <表达式> tag <标识名> references <父表表名> [tag <标识名>]32.添加新字段 alter table <表名>add [column[<字段名><字段类型>][<长度>{,<小数位数>}][null|not null][default <表达式默认值>]33.修改表的字段名 alter table <表名>alter [column] <字段名1> [null|not null][set default <表达式>](修改默认值)[rename column <字段名2> to <字段名3>](字段改名)34.删除表中的字段、主索引 alter table <表名>[drop [column [<字段名>][drop primary key]]]35.删除表 drop table [<数据库名>.]<表名>36.插入记录命令 insert into <表名> [(字段名1[,字段名2,…])] values(表达式1[,表达式2,…]) 或 insert into <表名> from array <数组名>或 insert into <表名> from memvar (从内存中插入)37.删除记录delete from <表名>[where <条件1>[and|or <条件2>]]38.SQL 查询命令select [all|distinct] [<别名>.]<表达式>[as <列名>],…from [<数据库名>!]表名[[[inner|left|outer]|right|outer]|full||outer]join<数据库名!><表名>[on <连接条件>][[into <目标>]|[to file <文件名>|to printer|to screen]where <连接条件>[group by <分组表达式>][having <筛选条件>][union [all] <下一个查询命令>][order by <排序表达式>[asc|desc]][top <数值表达式>[precent]]声明:所引用的代码和模版等权利归原作者拥有。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、时钟代码。
1.添加计时器控件time1
time1的interva为1000,enabled为T form1的load事件
public ss,mm,hh,x,y,x2,y2,x3,y3,x4,y4 store 0 to ss,mm,hh
form1的init事件
x=thisform.Width/2
y=thisform.Height/2
thisform.fillcolor=rgb(128,128,255) thisform.Circle(100,x,y)
for i=1 to 12
x1=x+100*cos(i*3.14159/6)
y1=y+100*sin(i*3.14159/6)
thisform.fillcolor=rgb(255,188,255)
thisform.Circle(5,x1,y1)
next
time1的time事件
thisform.forecolor=rgb(128,128,255)
x2=x+90*cos((ss-15)*3.14159/30)
y2=y+90*sin((ss-15)*3.14159/30) thisform.line(x,y,x2,y2)
ss=mod(ss+1,60)
x2=x+90*cos((ss-15)*3.14159/30)
y2=y+90*sin((ss-15)*3.14159/30) thisform.forecolor=rgb(255,0,0) thisform.line(x,y,x2,y2)
if ss=0
thisform.forecolor=rgb(128,128,255)
y3=y+70*sin((mm-15)*3.14159/30)
thisform.line(x,y,x3,y3)
mm=mod(mm+1,60)
thisform.forecolor=rgb(128,128,255)
x4=x+60*cos((hh-3)*3.14159/6)
y4=y+60*sin((hh-3)*3.14159/6)
thisform.line(x,y,x4,y4)
hh=hh+1/60
x3=x+70*cos((mm-15)*3.14159/30)
if hh>=12
hh=0
endif
endif
x3=x+70*cos((mm-15)*3.14159/30)
y3=y+70*sin((mm-15)*3.14159/30)
thisform.forecolor=rgb(0,255,0)
thisform.line(x,y,x3,y3)
x4=x+60*cos((hh-3)*3.14159/6)
y4=y+60*sin((hh-3)*3.14159/6)
thisform.forecolor=rgb(0,0,0)
thisform.line(x,y,x4,y4)
二、同心圆。
Form1的activate代码
thisform.scalemode=3
x=thisform.width/2
y=thisform.height/2
max=iif(x<y,x,y)
for r=0 to max step 10
thisform.circle(r,x,y)
next
form1的click代码(擦去同心圆)
thisform.cls
三、mouseup事件(鼠标)
1.form1的load代码事件
public ok
thisform.drawwidth=3
forecolor=rgb(0,0,255)
thisform.fillcolor=rgb(0,0,255)
thisform.fillstyle=0
2.form1的mousedown事件LPARAMETERS nButton, nShift, nXCoord, nYCoord ok=.T.
3.form1的mousemove事件LPARAMETERS nButton, nShift, nXCoord, nYCoord if ok
thisform.pset(nxcoord,nycoord)
endif
4.form1的mouseup事件
LPARAMETERS nButton, nShift, nXCoord, nYCoord ok=.F.
四、程序错误时,系统弹出错误对话框,设置“终止”、“重试”和“按钮”按钮,并默认第二个按钮。
任意When的事件代码如下(315页有详细操作)
messagebox("程序运行发生错误!",2+256+32,"错误提示")
五、焦点事件gotfocus代码如下。
Messagebox(“(任意内容) “,0,”(选中的命令按钮名)”)
六、打开文本的大小写,edtText编辑框的第一段变为大写。
edtText的cilck事件
thisform.edtText.selstart=0
thisform.edtText.sellength=at(chr(13),thisform.edtText.text)-1
thisform.edtText.seltext=upper(thisform.edtText.seltext)
cmdopenfile的cilck事件
thisform.edtText.selstart=0
thisform.edtText.sellength=at(chr(13),thisform.edtText.text)-1
thisform.edtText.seltext=upper(thisform.edtText.seltext)
exit的cilck事件
release thisform
七、时间
计时器控件的timer的timer事件
bel1.caption=ttoc(datetime())
八、电脑中的常用工具
新建菜单》菜单》输入“常用工具”》创建》
1.可输入“计算机命令run/n calc”
2.可输入、“记事本命令run/n notepad”
3.可输入“写字版命令run/n write ”
九、超链接
超链接控件+命令按钮+command的click事件
代码如下:
thisform.hyperlink1.navigateto("网址")
十、项目连编
_screen.visible=t.
_screen.caption=”项目连编”
_screen.windowstate=2
_screen.picture=”图片的路径”
do “图片的路径”
read events
其中main要设为主文件(程序)
十一、登陆界面
Command的click事件
if thisform.text1.value="abc" and thisform.text2.value="123" wait"欢迎使用!"
do "g:\vf\项目\little star的菜单.mpr"
else
wait"用户名或密码不对!"
endif
command的cilck事件
release thisform。