作品展作品延伸——代码
上一篇博客中,我介绍了基于作品展小组作品的修改版作品,这一作品是用VB语言编写的辩论赛计时器应用,具体介绍见这篇博客:link
接下来我将介绍本作品的代码等,和我在开发本软件时遇到的主要技术性问题及解决方案。
作品代码
首先介绍作品的窗体和功能。本作品用到了6个窗体:开始界面窗体、辩论赛流程介绍窗体、一般倒计时窗体(主要窗体)、自由辩论倒计时窗体、15秒倒计时窗体、结束界面窗体。
本作品的主要功能基本只有倒计时,用到了Timer控件来实现,代码如下(以一般倒计时为例,Interval=1000):
Dim sec As Integer
Dim minu As Integer
......
Private Sub Timer1_Timer()
sec = sec - 1
If sec < 0 Then
minu = minu - 1
sec = 59
End If
If minu < 0 Then
......
Timer1.Enabled = False
minu = 0
sec = 0
End If
txtmin.Text = Str(minu)
txtsec.Text = Str(sec)
End Sub
以上代码只表明倒计时循环如何实现,不是完整实际代码。
我在开发这个软件的过程中,遇到的最大问题就是,如何在一个窗体内判断辩论赛进行到哪个步骤,并自动更换窗体名及倒计时时间等,尤其是还有自由辩论这一不在同一窗体实现的功能。经过尝试,我只找到了一种较为麻烦的办法,关于这一点,如有其它方法欢迎与我交流。我的解决方法具体为:
1.添加一个全局变量step
Dim step As Integer
2.每次倒计时结束时或点击“结束发言,开始下一环节”时,step+1
Private Sub Timer1_Timer()
......
If minu < 0 Then
step = step + 1
......
End If
End Sub
Private Sub cmdnext_Click()
step = step + 1
......
End Sub
3.在每次倒计时结束时或点击“结束发言,开始下一环节”时,用Case语句判定一次step,并依据他改变一些参数:
Select Case step
Case 0
sec = 0
minu = 3
Form3.Caption = "正方一辩-3分钟"
Case 1
sec = 0
minu = 3
Form3.Caption = "反方一辩-3分钟"
Case 2
sec = 0
minu = 2
Form3.Caption = "反方二辩-2分钟"
......
Case 8
Form4.Show
step = step + 1
Form3.Caption = "反方四辩-3分钟"
......
Case 11
Form3.Hide
Form6.Show
End Select
这样便解决了判断进行到哪一环节的问题,其他代码方面没有太大问题,多为细节调整,在此不做介绍。