vb中的计时器如何设计

 我来答
zdingyun
2015-12-29 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48172
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部

VB中的Timer控件使用:

  • Timer
    控件响应时间的流逝。它们独立于用户,编程后可用来在一定的时间间隔执行操作。此控件的一个一般用处是检查系统时钟,判断是否该执行某项任务。对于其它后台处理,
    Timer 控件也非常有用。

  • 每个 Timer 控件都有 Interval
    属性,指定定时器事件之间的毫秒数。除非禁止此属性,否则定时器在大致相等的时间间隔不断接受事件(称作定时器事件会更贴切)。

    在为 Timer 控件编程时应考虑对 Interval 属性的几条限制:

    1.如果应用程序或其它应用程序正在进行对系统要求很高的操作─ 例如长循环、高强度的计算或者正在访问驱动器、网络或端口─ 则应用程序定时器事件的间隔可能比
    Interval 属性指定的间隔长。

    2.间隔的取值可在 0 到 64,767 之间(包括这两个数值),这意味着即使是最长的间隔也不比一分钟长多少(大约 64.8 秒)。

    3.间隔并不一定十分准确。要保证间隔准确,应在需要时才让定时器检查系统时钟,而不在内部追踪积聚的时间。

    4.系统每秒生成 18 个时钟信号─ 所以即使用毫秒衡量 Interval 属性,间隔实际的精确度不会超过 18 分之一秒。 

  • 每个 Timer 控件必须要与窗体关联。因此要创建定时器应用程序就必须至少创建一个窗体(如果不需要窗体完成其它操作就不必使窗体可见)。

    注意 在 Visual Basic 中,单词 "timer" 有好几种用法,每种都与 Timer
    控件的工作有关。除了控件名和控件类型以外,"timer" 还用在定时器事件和定时器函数中。

  • 以下是一个报警器的具体代码设计过程:

    在窗体上放置 Timer 控件

    在窗体上放置 Timer 控件的方法与绘制其它控件的方法相同:单击工具箱中的定时器按钮并将它拖动到窗体上。

     Timer 控件只在设计时出现在窗体上,所以可以选定这个控件,查看属性,编写事件过程。运行时,定时器不可见,所以其位置和大小无关紧要。

    初始化 Timer 控件

     Timer 控件有两个关键属性。

    Option Explicit

        Dim AlarmTime

        Const conMinimized = 1


    Private Sub Form_Click()

        AlarmTime = InputBox("输入启动闹钟的时间", "VB 闹钟", AlarmTime)

        If AlarmTime = "" Then Exit Sub

        If Not IsDate(AlarmTime) Then

            MsgBox "您输入的时间无效。"

        Else                                    ' 从 InputBox 返回的字符串使有效时间,

            AlarmTime = CDate(AlarmTime)        ' 将它作为一个日期/时间值存储在AlarmTime 中。

        End If

    End Sub


    Private Sub Form_Load()

        AlarmTime = ""

    End Sub


    Private Sub Form_Resize()

        If WindowState = conMinimized Then      ' 如果窗体被最小化, 在标题处显示时间。

            SetCaptionTime

        Else

            Caption = "闹钟"

        End If

    End Sub


    Private Sub SetCaptionTime()

        Caption = Format(Time, "Medium Time")   ' 使用中等时间格式显示时间。

    End Sub


    Private Sub Timer1_Timer()

        Static AlarmSounded As Integer

        If lblTime.Caption <> CStr(Time) Then

            ' 当前秒数与显示秒数不同。

            If Time >= AlarmTime And Not AlarmSounded Then

                Beep

                MsgBox "启动闹钟在 " & Time

                AlarmSounded = True

            ElseIf Time < AlarmTime Then

                AlarmSounded = False

            End If

            If WindowState = conMinimized Then

                ' 如果处于最小化状态, 每分钟都需更新窗体标题。

                If Minute(CDate(Caption)) <> Minute(Time) Then SetCaptionTime

            Else

                ' 否则每秒钟对标签的标题进行更新。

                lblTime.Caption = Time

            End If

        End If

    End Sub

深圳云诺科技
2024-11-11 广告
甘特图工具是一种直观展示项目时间与进度管理的有效手段。在深圳云诺互联科技有限公司,我们常利用甘特图来规划项目阶段、任务分配及预计完成时间。通过清晰的时间轴和任务条,团队成员能迅速了解项目全局,把握关键节点。甘特图还具备任务依赖关系设置、进度... 点击进入详情页
本回答由深圳云诺科技提供
wwwahaha
2015-10-13 · TA获得超过113个赞
知道小有建树答主
回答量:234
采纳率:75%
帮助的人:141万
展开全部
使用 Timer 控件

Timer
控件响应时间的流逝。它们独立于用户,编程后可用来在一定的时间间隔执行操作。此控件的一个一般用处是检查系统时钟,判断是否该执行某项任务。对于其它后台处理,
Timer 控件也非常有用。

图 7.46 Timer 控件

每个 Timer 控件都有 Interval
属性,指定定时器事件之间的毫秒数。除非禁止此属性,否则定时器在大致相等的时间间隔不断接受事件(称作定时器事件会更贴切)。

在为 Timer 控件编程时应考虑对 Interval 属性的几条限制:

如果应用程序或其它应用程序正在进行对系统要求很高的操作─ 例如长循环、高强度的计算或者正在访问驱动器、网络或端口─ 则应用程序定时器事件的间隔可能比
Interval 属性指定的间隔长。

间隔的取值可在 0 到 64,767 之间(包括这两个数值),这意味着即使是最长的间隔也不比一分钟长多少(大约 64.8 秒)。

间隔并不一定十分准确。要保证间隔准确,应在需要时才让定时器检查系统时钟,而不在内部追踪积聚的时间。

系统每秒生成 18 个时钟信号─ 所以即使用毫秒衡量 Interval 属性,间隔实际的精确度不会超过 18 分之一秒。

每个 Timer 控件必须要与窗体关联。因此要创建定时器应用程序就必须至少创建一个窗体(如果不需要窗体完成其它操作就不必使窗体可见)。

注意 在 Visual Basic 中,单词 "timer" 有好几种用法,每种都与 Timer
控件的工作有关。除了控件名和控件类型以外,"timer" 还用在定时器事件和定时器函数中。

示例应用程序:Alarm.vbp

Alarm 示例 (Alarm.vbp,列在Samples
目录中)应用程序中包含了使用 Timer 控件的技巧。

在窗体上放置 Timer 控件

在窗体上放置 Timer 控件的方法与绘制其它控件的方法相同:单击工具箱中的定时器按钮并将它拖动到窗体上。

Timer 控件只在设计时出现在窗体上,所以可以选定这个控件,查看属性,编写事件过程。运行时,定时器不可见,所以其位置和大小无关紧要。

初始化 Timer 控件

Timer 控件有两个关键属性。

属性
设置值

Enabled
若希望窗体一加载定时器就开始工作,应将此属性设置为 True。否则,保持此属性为
False。有时可能选择由外部事件(例如单击命令按钮)启动定时器操作。

Interval
定时器事件之间的毫秒数。

注意,定时器的 Enabled 属性不同于其它对象的 Enabled 属性。对于大多数对象,Enabled 属性决定对象是否响应用户触发的事件。对于
Timer 控件,将 Enabled 设置为 False 时就会暂停定时器操作。

记住,Timer 事件是周期性的。Interval
属性主要是决定“多少次”而不是“多久”。间隔的长度取决于所需精确度。因为存在某些内部的错误可能性,所以应将间隔设置为精确度的一半。

注意
定时器事件生成越频繁,响应事件所使用的处理器事件就越多。这将降低系统综合性能。除非有必要,否则不要设置过小的间隔。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ba88284
2012-06-22 · TA获得超过1521个赞
知道大有可为答主
回答量:1822
采纳率:73%
帮助的人:569万
展开全部
Timer控件可以设定事件触发间隔,在事件处理代码中计数来达到计时目的
比如,timer1.interval=1000 '间隔1000ms即1s触发一次事件,在这个事件中,写代码:
Private Sub Timer1_Timer()
static t as integer
t=t+1
print t
End Sub
这样,每隔一秒就会输出一个数字,显示计数个数。
追问
时间显示在哪里
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式