灵活运用VFP计时器控件
- 格式:pdf
- 大小:137.94 KB
- 文档页数:2
一 、前 言控件是面向对象可视化编程系统中 的 重 要 组 件 , 其 中 的 表 格(Gr i d)控件和日历控件是两类常用控件 。
表 格(Gr i d)控 件 通 常 有 两 类 作 用 :1.仅仅作为简单或复杂查 询结果的显示窗口 ,该 类 窗 口中的数据不可更改和删除 ;2. 作为数据库已有数据的修改或 者新记录的插入的界面 , 该 类窗口有可能先显示满足条件的记 录 信 息 ,然后由用户直接修改 指定属性的数值 ,也可能直接由用 户 输 入 新 数 据 。
基于作者多年的 VFP 开 发 经 验 , 本 文 将 就 Grid 控 件 、日 期 控件的应用提供实际案例 ,加 以 讨 论 。
二 、表 格(Gr i d)控 件1.利用表格控件显示查询结果如 图 一 所 示 ,假设应用程序的表单(Form)中 已 经 创 建 了 一 个名 为 MyGr i d 的 表 格 (Gr i d)控 件 ,用 于 显 示 表 cxb.dbf(数 据 结 构 见表 一)中的产品月进货与销售情况 。
.col um n cou nt =7 && 设置控件中显示的列数 .column1.width=70&& 依次设置各列显示宽度(单 位:像 素) .column2.width=80 …….recordsourcety pe=2 EndWiththi sfo rm.M yGri d.vi si bl e =iif (re cc()>0,.t.,.f.)&& 若 MyC ursor 游 标 中 无 记 录 ,则 MyGrid 控 件 不 可 见 thisf orm.ref resh执 行 上 述 程 序 后 ,表 cxb.dbf 中的对应的字段名将自动作为 表 格 控 件 MyGr i d 的各列的标题名 称 而 得 到 显 示 (如 图 一 所示)。
如果要改变显示列的标题名称 , 则 可 以 用 SQL 语 句 中 的 as 子 句 ,例 如 ,要将图一中的列名 "年 月 "改 为 "时 间 "时 , 对 应SQL 语句 为 :se l e ct 年 月 as "时 间 ",进 货 数 ,进 货 额 ,进 货 额 比 重 , 销 售 数 , 销 售 额,销 售 额 比 重 i nt o cursor MyCursor from cxb通过上述程序可以发现 , 表 格 控 件的该类应用实际上是先利 用 SQL 将查询结果存 放到某个游标中 (这时游标中的数据具备 只 读 属 性),然后将游标数据显示到表格控件的应用 。
VFP命令汇总讲解VFP编程常用命令第1章数据库基础与VFP编程环境基础1.专门的关系运算选择(筛选、过滤):SET FILTER TO <条件>或<命令> for <条件>命令实现。
例:SET FILTER TO 性别="男“SET FILTER TO &&取消选择投影:SET FIELDS TO <字段名表>实现。
SET FIELDS TO 姓名,性别SET FIELDS TO ALL &&取消投影连接(联接,Join) :用命令JOIN或SET RELATION实现。
2.Ctrl+F2可弹出命令窗口3. 默认路径的设置:SET DEFAULT TO D:\WH1234CURDIR() &&查看当前默认路径4.恢复数据环境CLEAR ALL从内存中移去所有对象,按顺序关闭所有私有数据工作期以及其中的临时表。
CLOSE ALL正确执行后,关闭所有打开的数据库、表以及临时表。
CLEAR PROGRAM清除最近执行程序的程序缓冲区。
第2章Visual FoxPro基础1.日期型数据规定格式:{^yyyy-mm-dd}2.日期时间型数据规定格式:{^yyyy-mm-dd hh:mm:ss}3.(1)内存变量的赋值和输出,可以使用STORE、“=”或“?”命令进行操作完成。
三个命令的格式如下:STORE <表达式> TO <内存变量表><内存变量>=<表达式><表达式>(2)如果内存变量与数据表中的字段变量同名时,用户在引用内存变量时,要在其名字前加一个m.,用以强调这一变量是内存变量。
(3)通过LOCAL、PRIVATE、PUBLIC命令规定作用域。
4.系统变量:系统变量名都以下划线开头_screen.fontsize=125.变量的释放:RELEASE 〈内存变量表〉注:〈内存变量表〉中的各个变量用逗号分隔。
一、标签标签能够显示多个字符构成的文本,用于设计表单上所需的文字性提示信息。
标签和大多数控件的不同点在于运行表单时不能用《tab》键来选择标签。
常用的标签属性及其作用如下。
1、Caption:确定标签处显示的文本。
2、Visible:设置标签可见还是隐藏。
3、AutoSize:确定是否根据标签上显示文本的长度,自动调整标签大小。
4、BackStyle:确定标签是否透明。
5、WordWrap:确定标签上显示的文本能否换行。
6、FontSize:确定标签上显示文本所采用的字号。
7、FontName:确定标签上显示文本所采用的字体。
8、ForeColor:确定标签上显示的文本颜色。
二、命令按钮和命令按钮组在各种窗口或对话框中几乎都要使用一个或多个命令按钮。
一旦用户单击一个命令按钮,就可实现某种规定的操作。
例如,各种对话框中的“确定”按钮,当用户单击时将结束对话框的操作。
VisualForPro中的命令按钮控件同样用于完成特定的操作。
操作的代码通常放在命令按钮的“单击”事件(即Click Event)代码中。
这样,运行表单时,当用户单击命令按钮时便会执行Click事件代码。
如果在表单运行中,某个命令按钮获得了焦点(这时,这个命令按钮上会比其他命令按钮多一个线框),则当用户按下《Enter》键或空格键时,也会执行这个命令按钮的Click时间代码。
常用的命令按钮属性及其作用如下:1、Caption:设置在按钮上显示的文本。
2、Default:在表单运行中,当命令按钮以外的某些控件(如文本框)获得焦点时,若用户按下《Enter》键,将执行Default属性值为.T.的那个命令按钮的click事件代码。
3、Cancel:如果设置该属性值为.T.,则当用户按下<Esc>键时,将执行命令按钮的click事件的代码。
4、Enabled:指明按钮是否失效,即是否被选择。
当Enabled属性值为.f.时,用户无法选择该按钮。
vfp技巧⼀在程序源代码中加上必要的注释,可以增强程序的可读性,也便于⽇后的维护。
注释语句是⼀种⾮执⾏语句,在VFP⽀持3种类型的注释格式:1、使⽤NOTE或*命令声明该⾏是⼀个注释⾏;2、使⽤&&命令在⼀个语句的末尾加⼊注释;3、直接在IF...ENDIF、DO...ENDDO、FOR...ENDFOR 等语句后⾯直接写注释⽤FUNCTION 命令可以创建⼀个⾃定义函数,其基本语法如下:FUNCTION FunctionName [LPARAMETERS parameter1[,parameter2],...] COMMAND [RETURN [eExpression]]ENDFUNC 或者FUNCTION FunctionName([parameter1[AS para1type][,parameter2 [AS para2type]],...]) [AS returntype] COMMAND [RETURN [eExpression]]ENDFUNC参数说明:FunctionName 是要建⽴的函数名称;LPARAMETERS parameter1⽤于定义接收参数;COMMAND 是命令语句;eExpression 是返回给调⽤程序的表达式。
第⼆种AS para2type⼦句⽤于定义参数的数值类型;AS returntype⼦句⽤于定义返回给调⽤程序表达式的数值类型。
贴个简单的查重语句:SELECT * FROM 表1 INTO TABLE new.dbf GROUP BY KEY HAVING COUNT(KEY) > 1将把表1中key关键字重复的记录检索出来放到表:new.dbf中!1、表单调⽤最⼩化!如果希望表单在调⽤时以最⼩化运⾏,可以向表单的Init 事件传递⼀个参数:1例: DO FORM formname WITH 12、想在按钮中加⼊快捷键,可在标题(Caption)属性加⼊"\<"符号。
利用VFP制作可设定时间的倒计时器作者:范春辉来源:《商情》2010年第28期[摘要]利用VFP软件中计时器控件及其他控件开发出可设定时间的倒计时器,并给出相应的源代码。
[关键词]VFP 可设定时间倒计时器1 前言VFP(即Vsiual Foxpro的简称)是在微型计算机上广泛使用的小型数据库管理系统,它以强大的功能,友好的界面,丰富完整的工具和高效的数据管理方式而受到用户的欢迎。
VFP提供了一个集成化的系统开发环境,把传统的命令方式执行方式扩充为以界面操作为主、以命令方式为辅的交互式执行方式;把单一的面向过程的结构化程序设计扩充为既有结构化、又有面向对象程序设计的可视化程序设计。
随着计算机的普及,VFP编程爱好者越来越多。
利用VFP中计时器控件制作倒计时器应用于各种比赛计时具有良好的效果,比如在各项演讲比赛、辩论赛等场合都会使用倒计时器。
2 界面概述该软件主要利用表单中的标签(Label)、按钮(CommandButton)、计时器(Timer)、文本框(TextBox)等控件来制作。
在程序的运行时,首先在文本框中输入要进行倒计时的时间再单击开始,否则提示重新输入;利用一个重置按钮可将程序整个运行过程重新开始,供多次重复使用。
同时,在进行到最后30秒时软件显示时间的字体会自动增大,以提示参与者时间。
3 窗体设计(如图一)图一(1)在属性窗口中设置Form的Picture属性来设置背景图片。
(2)添加两个文本框text1和text2,用来输入活动的倒计时时间(即分和秒)。
(3)添加5个标签控件,分别设置显示活动主题Label1的Caption为“希望之声”演讲赛、倒计时(Label2)、提示信息Label3的Caption为“请设置演讲时间”、活动时间显示Label4和Label5的Caption分别为“分”和“秒”。
(4)添加三个按钮,用作“开始”、“重置”、“退出”命令。
(5)设置一个timer控件,用来控制倒计时。
VFP实例小程序图文教程—10秒倒计时
(1)在表单的init过程中编写程序,如下:
thisform.timer1.enabled=.f.
public t
t=10
作用:init表示初始化
程序的第一行的作用是设定表单初始的时候,定时器控件,不被启用。
程序的第二行的作用是设定一个公用变量t
程序的第三行的作用是对t赋一个初值30
(2)对定时器控件time1的timer过程编写程序,如下:
if t<=0
bel4.caption="时间到"
else
bel2.caption=str(t,8)
endif
t=t-1
对timer过程的编程是为了让电脑每过一个interval间隔就自动执行一次定时器控件time1的timer程序。
对time1的interval属性设定为1000,注意:interval表示间隔,单位是毫秒,1000毫秒=1秒.
t=t-1表示:减一个间隔,一个间隔,就是interval设定的值1000
(3)对command1按纽的caption属性设定为“开始计时”
对它的click过程编程为:
thisform.timer1.enabled=.T.
表示:计时器控件可以启用
(4)对command2按纽的caption属性设定为“复位”
对它的click过程编程为:
T=10
版权所有:. .
1。
在程序设计和软件开发中,经常需要设计计时器,如:秒表、正计时器、倒计时器等。
这些计时器的设计方法大同小异,本文以倒计时器设计为例介绍两种设计倒计时器的方法。
Visual FoxPro中的计时器控件有一个Timer事件,每经过Interval(单位为毫秒)属性指定的时间就执行该事件一次。
利用该控件的这一特点再配合一些程序可设计各种计时器,包括倒计时器。
2利用计时器控件和设置计数变量设计倒计时器2.1设计思想程序中用一个计数变量t来实现计时,在表单的Init事件中给t赋初值5400(本例中倒计时时间设为90分钟,即5400秒)。
程序中用到一个计时器控件,设置计时器控件的Interval 属性为1000(即1秒),则它每秒钟被触发一次。
在计时器的Timer事件代码中加入t=t-1,则每隔1秒钟t递减1,5400秒后t减到0,定时时间到。
程序中还用到3个变量th、tm、ts,分别用来表示剩余时间的时、分、秒,用于将剩余时间t用时分秒的格式显示。
在表单的Init事件代码中包含thisform.timer1.enabled=.F.,再在“开始”按钮的Click 事件代码中加入代码:thisform.timer1.enabled=.T.。
这样当单击“开始”按钮时才开始计时。
2.2程序清单⑴表单Form1的Init事件代码:thisform.timer1.enabled=.F.public tt=5400⑵标签Label1的属性Caption:剩余时间⑶标签Label2的属性Caption:90分钟⑷计时器Timer1的属性Interval:1000计时器Timer1的timer事件代码:ift<=0messagebox(″定时时间到!″)elseth=int(t/3600)tm=int((t-th*3600)/60)ts=t-th*3600-tm*60thisfor m.label2.caption=str(th,2)+″:″+str(tm,2)+″:″+str(ts,2)endif⑸命令按钮Command1的属性Caption:退出命令按钮Command1的Click事件代码:thisform.timer1.enabled=.T.⑹命令按钮Command2的属性Caption:退出命令按钮Command2的Click事件代码:release thisform2.3表单运行结果本表单包含两个标签控件和两个命令按钮,运行结果如图1所示。
VFP阶段练习五(表单的设计与控件的使用)VFP阶段练习五(表单的设计与控件的使用)一.判断1.默认通过表单向导设计的表单中出现的操作按钮是命令组按钮2.*当表单集中只有一个表单时,则不再是表单集,而是表单3.*当程序中了使用了多个表单,则系统自动创建表单集4.在表单的数据环境中,可以用来设置相关表的永久性关系5.控件的所有属性都可以通过属性窗口进行修改6.事件可以由用户操作产生,也可以由用户创建新的事件7.面向对象中程序的执行不是线性的,而是事件触发决定的8.对象的Error事件在事件或方法的执行中发生错误时发生9.设计中可以针对任何类添加自定义属性和方法10.表单的Clear方法与Release方法相同,都是用于将表单清除二.单项选择1.下列事件中,所有基类均能识别的是A)Click B)LoadC)Timer D)Init2. 在下面关于面向对象数据库的叙述中,错误的是。
A) 每个对象在系统中都有唯一的对象标识B) 事件作用于对象,对象识别事件并作出相应反应C) 一个子类能够继承其所有父类的属性和方法D) 一个父类包括其所有子类的属性和方法3. 假定一个表单里有一个文本框Text1和一个命令按钮组CommandGroup1,命令按钮组是一个容器对象,其中包含Command1 和Command2两个命令按钮。
如果要在Command1命令按钮的某个方法中访问文本框的value属性值,下面式子正确的是A)ThisForm.Text1.value B)This.Parent.valueC) Parent.Text1.value D)this.Parent.Text1.value4. CommandGroup是包含___的容器A)CommandButton B)OptionButtonC)Label D)Text5. 当调用一个表单的Show方法时,可能激发表单的__事件A)Load B)InitC)Activate D)Click6.假设一个表单里有一个文本框Text1和一个命令按钮组CommandGroup1,命令按钮组中包含Command1和Command2两个命令按钮。
图1 日历控件、定时器控件应用举例图2 系统表单标题栏动态显示系统时间引言在程序设计和应用软件的开发过程中, 经常要显示日期、时间。
通常利用日期、时间函数, 日历控件, 定时器控件等来完成。
本文介绍V iaual FoxPro 中日历、定时器控件的使用, 还介绍了在系统表单标题栏动态显示系统时间的方法。
框, 指定Visual FoxPro 安装目录下的文件FPOLE.OC X, 然后选择“打开”, “对象类型”列表中出现大量ActiveX 控件选项, 选定“日历控件8.0”后按确定按钮,日历控件出现在表单上。
( 2) 为日历控件编写代码。
要想表单运行后, 日历1控件显示的时间随着当前系统日期而变化,Olecontrol1 控件的Init 事件添加如下代码:this.year=year( date( ) )this.m onth=m onth( date( ) )this.day=day( date( ) )2.2 利用定时器控件显示系统日期、时间还要为日历控件及定时器控件的使用图1 所示表单上有四个控件: Olecontrol1 控件用于显示日历, 标签控件、Tex t1 控件、定时器控件用于在文本框中显示当前日期时间。
2要显示系统的当前日期、时间利用定时器控件比较容易实现, 在表单上添加文本框及定时器控件, 文本框用于显示当前系统日期、时间, 每隔1 秒。
定时器的Interval 属性: 1000, Timer 事件代码:Thisform.Tex t1.Value=TTOC( DATETIME( ) )3 系统表单标题栏动态显示系统时间( 见图2)日历控件的使用日历控件可以显示当前系统的年月日及星期。
( 1) 在表单上添加日历控件。
日历控件不是VisualFox Pro 的基本控件, 它属于ActiveX 控件。
其建立过程如下:从表单控件工具栏中选定ActiveX 控件按钮, 在表单中单击鼠标, 屏幕上弹出一个“插入对象”对话框, 其中包括“新建”、“由文件创建”、“创建控件”三个选项按钮, “创建控件”按钮用于向表单中添加一个ActiveX 控件。
第十章常用的表单控件VFP在面向对象开发环境中,是通过在表单上放置控件来完成信息的输入设计工作的。
在设计表单时可以使用两类控件:与表中数据捆绑的控件和不与数据捆绑的控件。
所谓捆绑控件是指当输入或选择的值要保存或者被引用时,就需为该控件设置一个数据源,数据源可以是表中的字段或变量。
对于数据源是变量或字段的控件,则需要设置控件的ControlSource 属性;若数据源是整个表中的数据,则需要设置RecordSource属性。
而非捆绑控件则不与数据源直接捆绑。
10.1 标签控件(Label)标签控件:它是一个显示文本图形的控件,在设计时可以直接修改其中的文本,标签具有自己的一套属性、事件和方法,能够响应绝大多数鼠标事件,可以在运行时动态地改变标签文本。
可以使用TabIndex属性为标签指定一个Tab次序,但标签并不能获得焦点,而是将焦点传递给Tab 键次序中紧跟着标签的下一个控件。
常用的标签属性:①Caption属性用于指定标签的标题文本,最多可包含的字符数量为256。
标签文本显示在屏幕上以帮助用户识别各个对象。
用户在产生表单或控件对象时,系统给予对象的Caption属性值和Name属性值是相同的,此时用户应特别注意它们的区别。
用户在为控件设置Caption属性时,可以将其中的某个字符作为热键,方法是在该字符前插入一个反斜杠(\)和一个小于号(<)。
②AutoSize属性该属性用于确定是否根据标题的长度来调整标签的大小。
③Alignment属性该属性指定标题文本在控件中显示时的对齐方式。
对于不同的控件,该属性的设置是有区别的。
对于标签,该属性的设置值如下表所示。
设置值说明0(默认值)左对齐,文本显示在区域的左边1右对齐,文本显示在区域的右边2中央对齐,将文本居中排放,使左右两边的空白相等④BackStyle属性该属性用于确定标签是否透明。
当标签控件完全处于另一个控件的上方时,标签将遮住下方的控件,此时若标签控件的BackStyle属性设置为0,则下方的控件将透过标签显示出来。
巧用VFP中的TIMER控件-2019年精选文档巧用VFP中的TIMER控件1 序言VFP作为20世纪90年代兴起的高级数据库管理软件,具有性能完善的编程语言、完整而丰富的工具、超高速的速度、极其友好的界面等特点,倍受用户的欢迎。
它在20世纪80年代流行的XBASE系统软件的基础上提供了诸多新的功能,计时器TIMER 是Visual FoxPro (简称VFP)的新增控件,就它的用法总结如下。
2 控制倒计时我们经常在一些考试系统的界面上,可以看到有一个倒计时器控制考试的时间,这种倒计时的控制可以利用Visual FoxPro 的TIMER 控件进行设计。
创建控制倒计时表单的过程(该程序控制的时间为10分钟,该时间可以根据具体情况进行调整。
)(1)创建一个新表单。
设置表单的CAPTION属性为“倒计时”,适当调整表单的大小。
设置表单的LOAD事件代码:PUBLICJJ=0(2)在表单上添加两个标签控件,名称分别为LABEL1和LABEL2,将LABEL1的CAPTION属性设置为“剩余时间”,将LABEL1的CAPTION属性设置为“10:00” ,适当调整标签的高度、宽度、字号、字体等。
(3)在表单上添加两个命令按钮控件,名称分别为COMMAND1、COMMAND2,将COMMAND1的CAPTION 属性设置为“开始计时”,将COMMAND2的CAPTION 属性设置为“退出”,适当调整命令按钮的高度、宽度、字号、字体等。
(4)在表单上添加一个计时器控件,名称为“TIMER1”设置TIMER1 的INTERVAL属性为1000,ENABLED属性设置为.F..(5)设置COMMAND1的CLICK 事件代码如下:ENABLED=.T.(6)设置COMMAND2的CLICK 事件代码如下:RELESE THISFORM(7)设置TIMER1的TIMER事件代码如下:T=60000J=J+1IFT-J=0RELESETHISFORMELSEA=INT((T-J)/60)B=MOD((T-J),60)/doc/5c4501366.html,BEL2.CAPTION= STR(A,2)+":"+STR(B,2)ENDIF运行表单即可实现倒计时的功能。
“案例教学法”在《Visual FoxPro程序设计》理论课程中的应用摘要:案例教学法是计算机教学中行之有效的一种方法,在visual foxpro 6.0面向对象程序设计中有更突出的优势。
生动实用的案例缩短了教学情景与实际生活情景的差距,学生容易对学习内容产生浓厚兴趣,体验到成功的喜悦,这样不仅有利于提高学生学习的积极性,还有利于培养学生分析问题和解决问题的实践能力。
关键词:计算机教学案例教学法面向对象程序设计一、引言visual foxpro 6.0(以下简称vfp 6.0),是一种为数据库管理和应用程序开发而设计的功能强大的面向对象的环境,是目前应用较为广泛的开发工具之一,是教育部提出的高校计算机基础教育中第二个层次的一门计算机公共课,也是全国计算机等级考试和全国高校计算机等级考试的内容之一,目标是培养学生在掌握必要的理论知识基础上,能熟练地使用数据库、数据表、查询、视图、表单、报表和菜单,开发出一些小型的面向实际应用的程序。
二、教学方法改革在实际的教学过程中,为了避免学生被动记忆教师讲授的知识和程序结构,教师可采用案例教学法,将程序的开发过程分解成多个案例,每次授课时根据课的内容选择一个相关的实例,通过演示、讲解、分析、练习,让学生在实践中体验成功的乐趣,掌握所学知识,教学达到理想的效果。
三、教学过程巧设置在《vfp程序设计》理论课程教学上采用“案例教学法”,利用教师精选的具有代表性的案例讲解相关知识,让学生上课时有目标、有思路、愿思考。
在运用过程中,此“案例教学法”体现出了如下优点:1.利用简单易学的案例,激发学生的编程兴趣。
教师可以在正式学习面向对象的程序设计之前安排一个简单易学的程序,让学生从实践中感受到用面向对象的程序设计并不难,从而激发学生的学习兴趣,满足他们渴望成功的愿望,为以后学习编程打下良好的心理基础。
例如:设计一个逐渐从15号放大到30号的字幕“欢迎学习vfp 6.0程序设计”。
用visval foxpro开发上网计时系统承德市第七中学邢玉金qq 908769021关键字:visval foxpro 计时系统摘要:我是一个电脑的爱好者,喜欢开发一些小的程序。
但只是一些皮毛,渴求高人的指点,所以我这里有一个利用visval foxpro开发的小程序,以抛砖引玉。
我是一个电脑的爱好者,喜欢开发一些小的程序。
但只是一些皮毛,渴求高人的指点,所以我这里有一个利用visval foxpro开发的小程序,以抛砖引玉。
你的上网是包月制,还是包年制的呢?如果是包月制,那么有时就会因不知道上网时间而苦恼,我这里是用visval foxpro写的上网计时系统,恳请批评指正:下面是程序的开发过程:1、启动visval foxpro 新建项目。
文件/新建/项目2、以上画面:点击“建文件/选择一个盘符(根据自己的喜好),输入名称3、点击保存,如下图4、点击“文档”标签选择“表单”点击“新建”5、选择“新建表单”:6、对表单进行设计:重复步骤3电击“数据”标签,如图示单击“数据库”/新建单击“新建数据库”保存在此项目的文件夹下,如上图,并输入文件名,点击“保存”如图选中表,单击“新建”单击“新建表”如图选择文件夹,输入表的名称后,单击“保存”如图输入各个字段名。
表的结构如下:下面是各个“标签”控件的属性设置:label1.caption=现在是label2.caption:显示系统时间label3.caption=上网计时系统label4.caption=本次开始上网时间label5.caption=本次结束上网时间label6.caption=本次上网时间label7.caption=本月上网总时间label8.caption:显示年分labe9.caption:显示月份labe10.caption=年label1.caption=月labe12.caption=日label3.caption=显示日label4.caption:显示作者下面分别为命令按牛写语句:1、“开始上网”命令:thisform.text1.value=time()set exclusive onuse e:\上网计时系统\table.dbflocate for (年份=year(date()) AND 月份=month(date()))if found()replace 年份with year(date())replace 月份with month(date())replace 上网开始时间with thisform.text1.valueelsedo while 月份!=month(date())go bottomappend blankreplace 年份with year(date())replace 月份with month(date())replace 上网开始时间with thisform.text1.valueenddoendifmand1.enabled=.f.2、“结束上网”命令:locate for (年份=year(date()) AND 月份=month(date()))if found()thisform.text2.value=time()replace 上网结束时间with thisform.text2.valuemand2.enabled=.f.endif3、“时间统计”命令:t1=val(substr(thisform.text2.text,1,2))*60+val(substr(thisform.text2.text,4,2))+val(substr(thisform. text2.text,7,2))/60t2=val(substr(thisform.text1.text,1,2))*60+val(substr(thisform.text1.text,4,2))+val(substr(thisform. text1.text,7,2))/60if t1>=t2 thenthisform.text3.value=t1-t2replace 用时with thisform.text3.valueelset3=24*60-t2+t1thisform.text3.value=t3replace 用时with thisform.text3.valueendifif t1-t2>=90cmessagetitle="确定要退出本次上网吗、thank you"cmessagetext="请您退出上网好吗?"ndialogtext=4+32messagebox(cmessagetitle,ndialogtext,cmessagetext)endifmand3.enabled=.f.4、“总上网时间”locate for (年份=year(date()) AND 月份=month(date()))if found()replace 总用时with 总用时+用时thisform.text4.value= 总用时elsereplace 总用时with 用时thisform.text4.value= 总用时if 总用时>=2400close allendifendifmand4.enabled=.f.5、“browse(浏览)”命令use e:\上网计时系统\table.dbfbrowse font "黑体",10 noappend noedit color rgb(0,100,30)6、“退出”命令:thisform.releaseclose all7、“时钟控件(timer1)”的timer事件bel2.caption=time()bel8.caption=str(year(date()))bel9.caption=str(month(date()))bel13.caption=str(day(date()))8、表单的load事件(主要功能是:病毒日期提示)public dd=day(date())if ((d=13 or d=26))messagebox("今天是病毒日(每月13日或26日),请您不要上网",0+32,"计算机病毒提示") endifif(( d=6 and month(date())=3))messagebox("今天是病毒日,请您不要上网",0+32,"计算机病毒提示")endifif(( d=5and month(date())=4))messagebox("今天是病毒日,请您不要上网",0+32,"计算机病毒提示")endifif(( d=4 and month(date())=5))messagebox("今天是病毒日,请您不要上网",0+32,"计算机病毒提示")endifif( month(date())=7)messagebox("今天是病毒日,请您不要上网",0+32,"计算机病毒提示")endif以上是我的程序的设计过程,下面是程序的运行情况:可以点击“开始上网”按扭上网,再连接“宽带连接”,用手动的方式上网,等到上网结束时,点击“上网结束”、“时间统计”、“总上网时间”、“browse”、“退出”按扭等。