找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 438|回复: 0

[【推荐】] 倒计时,提醒会议开始时间

[复制链接]
发表于 2010-3-12 11:39:59 | 显示全部楼层 |阅读模式
我所在的公司经常会举办一些会议,宣传自己的产品、讲解一些技术、介绍公司的发展等,会议开始前,一般都会放一些宣传资料(PPT或者短片)。为了提醒会议正式开始还剩下多少时间,都会在PPT中做一个倒计时牌,但如果播放的是短片就没有倒计时了。
  我设计了一个小程序(程序下载地址:http://www.shudoo.com/bzsoft),无论是播放PPT还是短片都可以显示倒计时,不用每次都要在PPT中做倒计时牌了。
  公司需求:会议开始前的几分钟,播放公司的宣传资料(PPT、短片等),推广公司的产品、技术等,并提示会议开始前剩余的时间。当会议开始后,软件自动退出。
  软件原理:利用Timer控件的OnTimer事件实现倒计时功能。Timer控件的Enable属性为true时,Timer控件的OnTimer事件默认每秒执行一次。设计一个输入框,让工程师输入离会议开始的时间,比如8分钟,然后每次执行Timer控件的OnTimer事件让设定的时间减少1秒,并开始播放宣传资料。当时间为0后,表示会议开始,软件自动退出。
  技术要点:在设置好离会议开始还剩余的时间后,还有两个问题需要解决:一个是如何让时间显示出来。解决办法是使用静态文本StaticText来代替普通的Label,这样就能保证显示的倒计时浮动在短片或者PPT上层。
  另一个是每当minute为整数且second<3时,需要醒目提醒会场人员还剩多少时间会议开始。解决办法是在Timer的OnTimer事件中,判断second小于3时改变StaticText的文本属性(StaticText的坐标、字体颜色、字体大小等)来实现醒目提示。
软件开发步骤
  第一步:启动Delphi7.0,新建一个工程,在Form1窗体上添加两个Edit(用于输入倒计时的时间等)、一个OpenDialog、两个Button(用于选择宣传资料)。新建Form2,在窗体上添加一个Timer(实现倒计时功能)、一个StaticText(显示剩余时间)、一个RealAudio(播放宣传资料)。
  第二步:Form1窗体的制作。此窗体用来设置会议开始的时间,选择需要播放的宣传资料。输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):
  Form2.RealAudio1.source:=OpenDialog1.FileName;//工程师定位需要播放的宣传资料
  Edit2.Text:= Form2.RealAudio1.source;//把宣传资料赋值给播放器
  Form2.RealAudio1.doplay;//打开并启动播放器
  Form2.StaticText1.Caption:= tmptime;//显示初始时间为设定值加上 \":00 \"
  Form2.StaticText1.Font.Size := 15; //设定Form2的倒计时显示标签的各项属性
  Form2.StaticText1.Font.Color:=clBlack;
  Form2.StaticText1.Left := 5;
  Form2.StaticText1.Color:=clBtnFace;
  Form2.Timer1.Enabled:=true; //启动Form2的时钟
  Form2.minute:=StrToInt(Form1.Edit1.text); //给Form2的minute变量赋值
  Form2.second:=0; //给Form2的second变量赋值
  第三步:使用时钟控件Timer1的OnTimer事件实现倒计时的功能。每次执行OnTimer事件时,判断设定的时间是否已经为0,如果没有为0就减少1秒,并操作字符串把时间显示为“00:00”格式,如果设定的时间已经为0,则退出此程序。
  当到了特定时间段时,改变文本的颜色、大小等属性,对会场人员进行醒目提示。输入相关代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):
  else //如果分不为0,秒为0,那么分就减1,秒赋值为60
  begin
  minute:=minute-1;
  second:=60;
  end;
  end
  else //秒不为0
  begin
  second:=second-1;//秒减1
  //下面是显示格式
  if minute<10 then //如果分钟小于10,在分钟前加0显示
  begin
  tmpminute:=IntToStr(0)+IntToStr(minute);
  end
  else
  tmpminute:=IntToStr(minute);
  if second<10 then //如果秒钟小于10,在秒钟前加0显示
  begin
  tmpsecond:=IntToStr(0)+IntToStr(second);
  end
  else
  tmpsecond:=IntToStr(second);
  end;
  if second<3 then //如果秒小于3,改变 StaticText1的大小、颜色及位置,醒目提醒大家
  begin
  StaticText1.Font.Size := 40;
  StaticText1.Font.Color:=clRed;
  StaticText1.Caption:=&#39;离会议开始还有&#39;+ tmpminute+&#39;分钟&#39;;
  StaticText1.Left := (Form2.Width - StaticText1.Width) Div 2 ;
  
编后
  此软件通过Timer控件的OnTimer事件,取出设定的时间后对设定的时间进行分析,改变分、秒的值实现了倒计时功能。我们还可以把Timer控件用于辩论赛的选手发言时间控制、跳绳比赛的时间提示等需要使用倒计时的地方。


电脑报

非常实用的技术,在很多领域都有可以应用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-11-18 03:33 , Processed in 0.143035 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表