
1、添加一个“label控件”命名为label
2、添加一个“timer控件”命名为timer1
3、设置“timer1”的“Interval属性”为1000
使用到的代码:
Dim Hour As Integer '小时Dim Min As Integer '分钟
Dim Sec As Integer '秒
Private Sub Form_Load()
Hour = 0
Min = 0
Sec = 0
Label1Caption = "00 : 00 : 00"
End Sub
Private Sub Timer1_Timer()
Dim strHour As String
Dim strMin As String
Dim strSec As String
Sec = Sec + 1
If Sec >= 60 Then
Sec = 0
Min = Min + 1
If Min >= 60 Then
Min = 0
Hour = Hour + 1
If Hour >= 24 Then
Hour = 0
End If
End If
End If
If Hour < 10 Then
strHour = "0" & Hour
Else
strHour = Hour
End If
If Min < 10 Then
strMin = "0" & Min
Else
strMin = Min
End If
If Sec < 10 Then
strSec = "0" & Sec
Else
strSec = Sec
End If
Label1Caption = strHour & " : " & strMin & " : " & strSec
End Sub
计时器代码:
Dim i As Integer
Private Sub Command1_Click()
Timer1Enabled = True
End Sub
Private Sub Form_Load()
Timer1Enabled = False
Timer1Interval = 1000
i = 5
End Sub
Private Sub Timer1_Timer()
i = i - 1
Label1Caption = "距离考试结束时间还有" & "(" & i & ")" & "秒"
Command1Enabled = False
If i = 0 Then
MsgBox "时间到"
Timer1Enabled = False
ElseIf i < 0 Then
MsgBox "你挂了"
End
End If
End Sub
这是我写的一个,你可以参考一下。
敲代码很好学。
在面向对象的程序设计中,我们把外界的刺激用事件来表示,而把对这个事件的反应称为事件过程。
可视化和事件驱动正是使用VB进行Windows程序设计的精髓所在。事件驱动,即事件发生时,程序才会运行,在没有事件时,整个程序处于停滞状态。事件决定了对象之间的联系。在VB中,事件就是能够被对象识别的动作,如用鼠标单击或双击,键盘输入、鼠标的移动、窗体的载入,还有定时器产生的定时信号。
VB的每个窗体和控件都有一个预定义的事件集,它们能够自动识别属于事件集中的事件,大多数类型的事件是各种控件所共有的,例如命令按钮和窗体都可以对单击、双击和按键这样的事件做出响应,而某些事件只能发生在特定的对象上。 相同的事件发生在不同的对象上得到的反应是不一样的,造成这种差异是事件过程的缘故,对象对每一个可以识别的事件都有一个事件过程,当事件发生时,会自动执行这个事件的过程。语法如下:
Private Sub 对象名_事件()
处理事件的程序代码
End Sub
在VB程序设计过程中,基本的思想就是改变对象的属性,使用对象的方法和为对象的事件编写事件过程。除非有必要,用户不必为所有的事件编写事件过程,Windows系统会以默认的方式来处理事件。使用VB编写程序的妙处在于:只有当用户要以某种特定方式来响应某个事件时,才有必要针对某个事件的事件过程。
事件驱动程序中典型的事件序列:
启动应用程序,装载并显示窗体,产生Load和Show事件。
窗体或窗体上的控件接收事件。事件可以由用户引发、由系统引发,也可以由代码间接引发。
如果在相应的事件过程中存在代码,则执行代码。
应用程序等待下一次事件。
应用程序中使用一个窗体时,程序开始运行时窗体接收到了Load消息,从而引发了窗体的Load事件,在这个默认的事件过程中,什么语句都没有,这个过程只是调用就结束了,而VB则执行了一个重要的默认 *** 作——把窗体装入内存。
许多事件的发生常常会伴随其它事件发生:双击事件发生时,按下鼠标键、复原鼠标键和单击事件也会发生。
希望我能帮助你解疑释惑。
放三根line,位置,长度随便放,添加一个timer,然后复制代码:
Dim xx1%, yy1% '宣告变量xx1,yy1为整型(给圆心用的)
Private Sub Form_Load()
MeAutoRedraw = True '重画为真 '窗体置中
Timer1Interval = 500
Call Form_Resize
End Sub
Private Sub Form_Resize()
MeCls
'MeMove (ScreenWidth - MeWidth) \ 2, (ScreenHeight - meiheight) \ 2 '计算圆心的x轴 xx1
xx1 = MeWidth \ 2 '计算圆心的y轴 yy1
yy1 = (MeHeight - 405) \ 2 '将下面3根针的起点x1,y1全定位在圆心上
Line1X1 = xx1: Line1Y1 = yy1
Line2X1 = xx1: Line2Y1 = yy1
Line3X1 = xx1: Line3Y1 = yy1 '画钟的外匡让线条粗一点
MeDrawWidth = 4 '画一个圆
MeCircle (xx1, yy1), 950
MeDrawWidth = 2
For i = 0 To 11
MeLine (950 Cos(i (314 2 / 12)) + xx1, 950 Sin(i (314 2 / 12)) + yy1)-(850 Cos(i (314 2 / 12)) + xx1, 850 Sin(i (314 2 / 12)) + yy1)
MeCurrentX = 1100 Cos(i (314 2 / 12)) + xx1 - MeTextWidth(CStr(i))
MeCurrentY = 1100 Sin(i (314 2 / 12)) + yy1 - MeTextHeight(CStr(i)) / 2
MePrint IIf(i < 10, i + 3, i - 9)
Next
Line2BorderWidth = 1 '秒针的粗度
Line2BorderColor = QBColor(12) '秒针的颜色
Line1BorderWidth = 2 '分针的粗度
Line1BorderColor = QBColor(14) '分针的颜色
Line3BorderWidth = 3 '时针的粗度
Line3BorderColor = QBColor(10) '时针的颜色
End Sub
Private Sub Timer1_Timer()
MeCaption = Time '标题栏显示现在时间 '
Second Hand '画秒针
'计算秒针的角度,每一秒是 360度除以60秒=6度, 所以要乘上6
sdeg = Second(Time) 6 'vb是以弧度为单位来计算,所以角度换算弧度是 314/180, 秒针跑了N度就乘上N
srad = (314 / 180) sdeg '900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2x2在什么位置
Line2X2 = Line2X1 + (900 Sin(srad)) '900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2y2在什么位置
Line2Y2 = Line2Y1 - (900 Cos(srad)) '
Minute Hand '画分针
'计算分针的角度,每一分是360度除以60分=6度, 所以要乘上6,秒针动分针也会动,所以还要加上秒针移动所产生的分针移动
'秒针转了1圈360度,分针才会前进1分钟=6度,所以比例是 6/360等于 1/60
Mdeg = Minute(Time) 6 + (sdeg 1 / 60) 'vb是以弧度为单位来计算,所以角度换算弧度是 314/180, 分针跑了N度就乘上N
mrad = (314 / 180) Mdeg 'vb是以弧度为单位来计算,所以角度换算弧度是 314/180, 分针跑了N度就乘上N
'750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1x2在什么位置
Line1X2 = (750 Sin(mrad)) + Line1X1 '750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1y2在什么位置
Line1Y2 = Line1Y1 - (750 Cos(mrad)) '
Hour Hand '画时针
'计算时针的角度,每一小时时针跑30度,分针动时针也会动,所以还要加上分针移动所产生的时针移动
'分针转了1圈360度,时针才会前进1刻划=30度,所以比例是 30/360等于 1/12
hdeg = Hour(Time) 30 + (Mdeg / 12) 'vb是以弧度为单位来计算,所以角度换算弧度是 314/180, 时针跑了N度就乘上N
hrad = (314 / 180) hdeg '500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3x2在什么位置
Line3X2 = (500 Sin(hrad)) + Line3X1 '500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3y2在什么位置
Line3Y2 = Line3Y1 - (500 Cos(hrad))
End Sub
使用Timer 函数来实现。
Timer 函数,返回一个 Single,代表从午夜开始到现在经过的秒数。
Microsoft Windows中,Timer函数返回一秒的小数部分。
不错,windows自带的计划任务完全能满足你的要求了,如果你确实想自己设计的话:
两个文本框text1,text2,
text1填时间,text2填运行程序的路径+运行程序文件名
一个按钮command1,确认
一个时间控件timer1,Interval设为60000,精确程度接近1分钟
在Private Sub Timer1_Timer()里面添加代码,判断当前时间(用time函数取得当前时间)是否到了你设定的时间,到了就shell text2text没到就不理会,程序开始时在form_load()时可以设置timer1enabled=false,在command1_click()里面设置timer1enabled=true,这样在设置好text1和text2的内容后,点击command1按钮程序就开始运行了。详细代码自己写哈。说得够清楚了我觉得。最好加上容错处理代码
加入一个label,加入一个timer,timer的interval属性设置1000,然后加代码:
Private Sub Timer1_Timer()
Label1Caption = Now
End Sub
以上就是关于VB程序设计怎么做数字时钟全部的内容,包括:VB程序设计怎么做数字时钟、我设计了一个简易的VB倒计时程序,但运行时发现时间不对,请问原因何在、vb有哪些编程技巧等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)