新人求帮助啊~~做一个精确到微秒的倒计时功能

[复制链接]
查看11 | 回复10 | 2021-1-27 07:04:29 | 显示全部楼层 |阅读模式
像一站到底里面的倒计时,从20:00到00:00,想请教一下实现的思路啊。。。具体一点的,刚学delphi不久啊,哪位大神来帮帮忙,谢谢啦~~~
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
使用Timer控件,将interval值设为1,这个定时器每一微秒就会触发一次
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
引用1楼LastAvengers的回复:使用Timer控件,将interval值设为1,这个定时器每一微秒就会触发一次
可是前面的秒数怎样控制?
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层

procedureTForm1.FormCreate(Sender:TObject);
begin
T:=20.000;
Timer1.Interval:=1;
Timer1.Enabled:=True;
end;
procedureTForm1.Timer1Timer(Sender:TObject);
varT:single;
begin
T:=T-0.001;
ifT=0.000thenTimer1.Enabled:=false;
end
大概是这样吧……
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
引用3楼LastAvengers的回复:
procedureTForm1.FormCreate(Sender:TObject);
begin
T:=20.000;
Timer1.Interval:=1;
Timer1.Enabled:=True;
end;
procedureTForm1.Timer1Timer(Sender:TObject);
varT:single;
begin
T:=T-0.001;
ifT=0.000thenTimer1.Enabled:=false;
end
大概是这样吧……

我怎么没想到用小数!!
我一直在用整数...
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
引用3楼LastAvengers的回复:
procedureTForm1.FormCreate(Sender:TObject);
begin
T:=20.000;
Timer1.Interval:=1;
Timer1.Enabled:=True;
end;
procedureTForm1.Timer1Timer(Sender:TObject);
varT:single;
begin
T:=T-0.001;
ifT=0.000thenTimer1.Enabled:=false;
end
大概是这样吧……

太谢谢啦!这么快就打出代码!
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
timer控件的精度50就几乎极限了,50以下误差就拉大了,想得到1毫秒精度更是不可能。
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
引用6楼sololie的回复:timer控件的精度50就几乎极限了,50以下误差就拉大了,想得到1毫秒精度更是不可能。
误差有多大?我在做类似一站到底的程序,里面用到的倒计时,这精度要求应该不高吧?
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
居然是说微秒。。。。
DelphiX组件有一个高速timer,可以直接把interval设为0
俺就撸过,啥也不说



回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
引用8楼sololie的回复:居然是说微秒。。。。
DelphiX组件有一个高速timer,可以直接把interval设为0
俺就撸过,啥也不说


设到0是个什么速度??
还有个问题用20.000-0.001的话形式上不对啊,时间应该是20:00啊!
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行