yuandi:timer1

Action disabled: source

讲演用计时软件

供报告者在讲演过程中控制时间。

  1. 总是显示在屏幕的最上层;
  2. 窗口中包含两个区域:时间显示区和“开始”控制按钮;
  3. 显示窗口的大小可以设置;
  4. 点击“开始”按钮以后开始计时。
这个和物理关系不大是吗?感觉用VB就可以编吧。。。可惜我不会。
正好这两天有空,我用VB编了一个,差不多可以符合要求,^_^,Alpha版的,慎用~~~
演讲用计时软件 (用UPX加壳压缩过的,据说有的杀毒软件会说是病毒。。。;-)
还有,对于第三条要求不太理解,控制大小有什么用?~~~
做得很不错,基本的功能都实现了。做得还很快!很棒!
关于第三条:本意是希望现实内容的大小可以随窗口大小而改变,而且希望是直接可以用鼠标拖拉就可以实现。
功能改进的几点建议:希望这个窗口是可以移动的;窗口显示的“已开始”应该在开停两个状态时不同;显示区如果可以适当修饰一下,看起来会觉得更舒服!
我的总体感觉:非常棒! — 乐永康 2007/12/27 13:53
内容的大小可以随窗口大小而改变⇒应该可以
直接可以用鼠标拖拉就可以实现⇒实现方法还没想到
因为正好要VB考试,所以顺便练练手。
要期末考试了,估计一段时间内会不管它,所以公布一下源码,如果谁有兴趣或者意见的话可以提出,但不要直接修改,谢谢!— 朱骏 2007/12/29 14:43
    Dim t!, X%, Y%
    Private Const SRCCOPY& = &HCC0020
    Private Const SWP_NOMOVE& = &H2
    Private Const HWND_TOPMOST& = -1
    Private Declare Function SetWindowPos& Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
 
Private Sub Command1_Click()
    Dim b%
    b = 0
    If Val(Text1.Text) < Label1.Width Then b = b + 1
    If Val(Text2.Text) < Label1.Height Then b = b + 2
    Select Case b
        Case 0
            X = Val(Text1.Text)
            Y = Val(Text2.Text)
        Case 1
            MsgBox ("您输入的宽度过小,请输入大于等于" & Label1.Width & "的纯数字,谢谢!")
        Case 2
            MsgBox ("您输入的高度过小,请输入大于等于" & Label1.Height & "的纯数字,谢谢!")
        Case 3
            MsgBox ("您输入的宽度和宽度都过小,请输入大于等于" & Label1.Width & "×" & Label1.Height & "的纯数字,谢谢!")
    End Select
    Form1.Height = Y
    Form1.Width = X
End Sub
 
Private Sub Command2_Click()
    Frame1.Visible = False
    Form1.Height = Y
    Form1.Width = X
End Sub
 
Private Sub Command3_Click()
    Dim b%
    b = MsgBox("确定要清零计时器?", 257)
        If b = 1 Then
            t = 0
            Timer1.Enabled = False
            Label1.Caption = "(单击以开始计时)"
            Label1.ForeColor = &HFF
        End If
End Sub
 
Private Sub Command4_Click()
    End
End Sub
 
Private Sub Form_Load()
    SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 740, 540, SWP_NOMOVE
 
    t = 0
 
    Form1.Height = Label1.Height
    Form1.Width = Label1.Width
    Frame1.Top = Label1.Height + 1
 
    X = Label1.Width
    Y = Label1.Height
 
    Label3.Caption = "版权所有:复旦大学物理系" & vbCrLf & "07300190012 朱骏" & vbCrLf & "Version:1.00 Alpha" & vbCrLf & "免费软件 不可作商业用途"
    Label4.Caption = "双击以展开/收起面板" & vbCrLf & "单击以切换状态(红停黑走)"
End Sub
Private Sub Label1_Click()
    If Timer1.Enabled = True Then
        Timer1.Enabled = False
        Label1.ForeColor = &HFF
    Else
        Timer1.Enabled = True
        Label1.ForeColor = &H0
    End If
End Sub
Private Sub Label1_DblClick()
    If Form1.Height = Y Then
        Form1.Height = Label1.Height + Frame1.Height
        Text1.Text = Label1.Width & "宽"
        Text2.Text = Label1.Height & "高"
        Frame1.Visible = True
    Else
        Frame1.Visible = False
        Form1.Height = Y
        Form1.Width = X
    End If
End Sub
 
Private Sub Timer1_Timer()
    t = t + 1
    h = Int(t / 3600)
    m = Int((t - 3600 * h) / 60)
    s = t - 3600 * h - 60 * m
    If Check1.Value = 0 Then
        Label1.Caption = h & "h" & Format(m, "00") & "m" & Format(s, "00") & "s"
    Else
        Label1.Caption = "已开始:" & h & "h" & Format(m, "00") & "m" & Format(s, "00") & "s"
    End If
End Sub
p.s. 怎么配色那么难看… :-\
  • yuandi/timer1.txt
  • 最后更改: 2007/12/29 14:23
  • (外部编辑)