admin 管理员组文章数量: 1086019
2024年3月27日发(作者:容器类别1ls)
电脑编程技巧与维护
利用VB制作可设定时间的倒计时器
王思刚。苏金丽
(西北工业大学明德学院经济管理系,西安710124)
摘要:利用VB软件中计时控件及其他控件开发出可设定时间的倒计时器,并给出相应的源代码。
关键词:VB;可设定时间;倒计时器
Using VB Production Can be Set Time Counter-down
WANG S/ ̄ng,sU Jinli
(Northwestem Polytechnical University Ming De College Management of Economy Department,Xi an 710124)
Abstract:Using VB software timer control and other control d eveloped can be set time counter—down.and gives the
corresponding source.
Key words:VB;Set time;Counter-down
1前言
VB是一门具有强大功能的可视化编程软件,随着计算机
的普及,VB编程爱好者越来越多。利用VB中计时控件制作
倒计时器应用于各种比赛计时具有良好效果,比如在各项演
讲比赛、辩论赛等场合中都会使用倒计时器。
Private Declare Function SetWindowPos Lib”user32”
(ByVal hwnd As Long,
.J3yVal hWndlnsertAfter As Long,ByVal X As Long,
_ByVal Y As Long,ByVal CX As Long,
ByVal cy As Long,ByVal wFlags As Long)As
Long
Const SWPNOMOVE:&H2
_
2界面概述
该软件主要利用标签、按钮、计时器、图像框、文本框、
框架等控件来制作。在程序的运行时,首先在文本框中输入
要进行倒计时的时间再单击开始,否则提示重新输入;利用
一
Const SWP NOSIZE=&HI
Const HWNDJ0PM0ST=一1
Const flags=SWP NOMOVE Or SWP NOSIZE
个重置按钮可将程序整个运行过程重新开始,供多次重复
4.2窗体加载
Private Sub Form
Load 0
使用。同时,在进行到最后3O秒时软件会发出一声警报声;
最后10秒,警报声每秒一次直至结束,用来提示参与者时
间。
Me.Left=(Screen.Width—Me.Width、/2
Me.Top=(Screen.Height—Me.Height)/2
SetWindowPos Form1.hwnd,HWNDTOPMOST,0,0,O,
3 窗体设计
(1)在属性窗口设置Form的BorderStyle为“0一None”,
0,flags
End Sub
加载Picture属性设置背景图片。
(2)添加image1用来存放学院图标,文本框txt1用来输
入活动主题。
4.3 Timer事件
4.3.1设置Timerl
Private Sub Timerl Timer 0
n=n——1
If n=-1 Then
S=S——1‘n=9
(3)添加两个框架,框架Frl用来显示倒计时时间,其中
存放5个标签;Fr2用做时间输入框,其中存放2个文本框和
2个标签。
EndIf
If S=-1 Then
(4)添加3个按钮,用作“开始”“重置”“退出”命
令。
m=m一1:S=59
EndIf
(5)再添加1个标签,caption为“请重新输入计时时
间!”。添加image2中图片用来提示时间到。
Lb1.Caption=Format(m,”00”)
Lb3.Caption=Format(S,”00”)
(6)设置3个Timer控件。Timerl用来控制倒计时,
Timer2 f3)用来激发警报声。
Lb5.Caption=Format(n,”0”)
最后lO秒显示
If m<1 And S<=10 And n<1 Then
4 编写程序
4.1通用声明
定义变量
Dim m As Integer,S As Integer,n As Integer,i As Integer
作者简介:
王思刚(1988一),07级学生;苏金丽(1988一),
07级学生。
2010—07一O9
收稿日期:
调用SetWindowPos函数设置窗体位于最前面
一
38一
S0FrWARE DEVELOPMENT AND DESIGN 软件开发与设计
Fr1.Visible=False:Timer2.Enabled=Tme
i=Lb3.Caption:Lb8.Caption=i
Lb8.Visible=TⅢe
EndIf
最后3O秒报警
If m=0 And S=30 And n=0 Then
Timer3.Enabled=T_nle:Timer3.Interval=0
EndIf
时间到
H m=0 And S=0 And n=0 Then
Timer1.Enabled=False:Timer2.Enabled=False
停止计时器
Lb8.Visible=False:Image2.Visible=Tme
EndIf
End Sub
4.3.2设置Timer2(3)
Private Sub Timer2(3)_Timer 0
Beep
End Sub
4.4设置命令按钮
4.4.1“开始”
Private Sub Cstart Crick 0
Cstart.Enabled=False:Creset.E力abled=Tme
提示重新输入
If Txt2.Text=… And Txt3.Text=””Then
Flr1.Visible=蹦se:Lb9.Visible=True
Creset.Enabled=False:Txt2.SetFoCUS
E1se
获取倒计时时间
m=Val(Txt2.Text):S=Val(Txt3.Text):n=0
Lb1.Caption=Format(m,”o0”)
Lb3.Caption=Format(S,”00”)
Lb5.Caption=Format(n,”0”)
Timer1.Enabled=True‘将计时器激活
F 2.Visible=False
EndIf
End Sub
4.4.2“重置”
Private Sub CReset Click 0
Timer1.Enabled=False
Fr1.Visible=True:Fr2.visible=Tme
返回初始值
m=0:S=0:n=0
Lb1.Caption=Format(m,”0HD”)
Lb3.Capdon=Format(s,”0o”)
Lb5.Caption=Format(n,”0”)
Txt2.Text=…’:Txt3.Text=””
Txt2.SetFOCUS:Cstart.Enabled=Tme
If Timer2.Enabled=True Then
Timer2.Enabled=False
EndIf
If Lb8.Visible=True Then
Lb8.Visible=False
EndIf
If Image2.Visible=T e Then
Image2.Visible=False
End If
End Sub
4.4.3“退出”
Private Sub Cover
_
Click()
End
End Sub
4.5文本框设置
设置文本框键入限制
Private Sub Txt2(3)_KeyPress(KeyAscii As Integer)
Cstart.Enabled:True:Fr1.Visible=Tme
Lb9.Visible:False
If KeyAscii<Asc(”0”)Or KeyAscii>Asc(”9”)
hTen
KeyAscii=0
EndIf
End Sub
5 运行
将所编写好的程序进行保存,同时生成为可执行文件。
然后将这个文件打包成一个小软件,这样就可将打包好的文
件安装到任何一台计算机上都可运行了。
启动此倒计时程序时可按活动要求输入所用倒计时时间,
运行的界面如图l一图2所示。
图1开始界面
图2最后10秒计时
6 结语
利用VB制作的可设定时间该倒计时器基本上能应用于学
校组织的各项活动中去。其最大的特点就是它可自定义、可
重复输入多次使用。但同时也有一些不足需要改进的地方,
(下转到59页)
一
39—
DATABASE AND INF0RMAT10N MANAGEMENT
3:FileTimeToLoca leTime(WFD.ftLastWriteTime,
数据库与信息管理
if(not fileexists(DestFile))or needbackup then
if copyfile(pchar(SourceFile),pchar(DestFile),false)
hen t
FileTime);
end;
//FileTimeToDosDateTime函数把结构中64位的文件时
,,间转换成MS—DOS格式的日期和时问值FileTimeTo—
DosDateTime(FileTime,LongRec(DPT).HI,LongRec
//(DP'T).LO);
result:=l|}备份成功
else result:=一1;,,备份失败
end;
exports
,,把MS—DOS格式的日期和时间值再次转换成TDate
//Time类型的值返回
Result:=FileD ̄eToDateTime(DFr);
end;
Backup;
begin
end.
把编译后生成的BackupIT.DLL复制到Windows系统的
end;
f 菱函数实现文件的智能备份,参数两个:源文件和目
System32文件夹下,就可以调用了。
,,标文件。
3 调用智能备份函数
l
源文件和目标文件名(可包含所在路径)作为参数由调
function Backup(SourceFile,DestFile:PChar):integer;
用者给出,假设源文件位于程序所在文件夹的data子目录下,
Var
目标文件存放在DAxsglbackup下的以系统日期命名的目录下。
datel,date2:TDatetime;
implementation
needBackup:boOlean;
{SR .dfml
destPath:string;
f/,夕 部声明必须和DLL中的参数列表一致,否则会运
begin
}婀时错误
needbackup:=false;
l
if not fileexists(Sourcefile)then
function Backup(SourceFile,DestFile:PChar):Integer;exter-
begin
nal"BackuplT.dn :
result:=一2;{,/源文件不存在
procedure TForm1.ButtonlClick(Sender:TObject);
)
Var
exit; SourceFile,DestFile:string;
end begin
else datel:=GetFileLastAccessTime(SourceFile,3);
,/源文件路径以及文件名
,,获得文件最后修改时间
SourceFile:=ExtractFilePath(Application.ExeName)+ da-
艏先判断目标文件路径是否已经存在,若已经存在证
ta +" ̄exercise.mdb :
,/明目标路径是合法的
,,目标文件路径以及文件名
/,若不存在就创建
DestFile:='DAxsglbackup\ +DateToStr(Date)+'kexercise.
destPath:=ExtractFileDir(DestFile);
mdb ;
if not directoryexists(destPath)then
case Backup(PChar(SourceFile),PChar(DestFile))of
{,,可一次建立多级目录J
-
3:Form1.caption:= 目标文件路径错误 ;
if not forceDirectories(DestPath)then
-
2:Form1.caption:= 源文件不存在 :
一
begin
l:Formi.caption:= 备份失败,请检查目标文件名! :
result:=一3;f如创建失败则给出的目标文件路径有错误}
O:Form1.caption:= 无需备份 ;
exit;
l:Form1.caption:= 备份成功 :
end;
end;
{,,如果目标文件已经存在,则比较文件最后修改时间l
end;
if ifleexists(DestFile)then
4 结语
begin
该智能备份函数既可以在Delphi中直接定义后调用,也
date2:=GetFileLastAccessTime(DestFile,3);
可以写成DLL调用或供其他语言调用。其好处是通过比较数
if datel>date2 then needbackup:=true
else result:-0;
据文件的最后修改时间来判断是否需要备份,避免了盲目备
,,目标文件更新或最后修改时间相同则无需备份
份,提高了备份效率。代码在Windows XP+Delphi7.0下调试
end;
通过。
(上接第39页)
例如可以在程序中添加多媒体控件来制作更加人性化的报警 疆师范大学学报(自然科学版),2007,26(3):118.
器等,所以本软件还有待于进一步完善。 [2】宋哨兵.面向任务的Visual Basic程序设计教程.北京:清
参考文献 华大学出版社,2010.
[11胡晓娟,王兰.利用VB实现可重复使用的倒计时器.新 】
一
59—
版权声明:本文标题:利用VB制作可设定时间的倒计时器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711526749a598392.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论