Delphi实现毫秒级别的倒计时实例代码_Delphi

本文以实例简述了Delphi实现毫秒级别倒计时的方法。一般来说可以获得系统的高性能频率计数器在一毫秒内的震动次数,如果时钟震动次数超过10毫秒的次数则刷新edit3的显示,显示从开始记数到记数实际经过的时间,具体实现代码如下:

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ExtCtrls, StdCtrls, mmsystem;
type
 TForm1 = class(TForm)
  Edit1: TEdit;
  Edit2: TEdit;
  Edit3: TEdit;
  Button1: TButton;
  Button2: TButton;
  Timer1: TTimer;
  Label1: TLabel;
  Label2: TLabel;
  Label3: TLabel;
  procedure FormCreate(Sender: TObject);
  procedure Button1Click(Sender: TObject);
  procedure Timer1Timer(Sender: TObject);
  procedure Button2Click(Sender: TObject);
 private
  { Private declarations }
 public
  { Public declarations }
 end;
var
 Form1: TForm1;
 acttime1,acttime2:cardinal;
 smmcount,stimercount,spcount:single;
 htimeid:integer;
 iten:integer;
 protimecallback:tfntimecallback;
 procedure timeproc(utimerid, umessage: uint; dwuser, dw1, dw2: dword) stdcall;
 procedure proendcount;
implementation
{$R *.DFM}
//timesetevent的回调函数
procedure proendcount;
begin
 acttime2:=gettickcount-acttime1;
 form1.button2.enabled :=false;
 form1.button1.enabled :=true;
 form1.timer1.enabled :=false;
 smmcount:=60;
 stimercount:=60;
 spcount:=-1;
 timekillevent(htimeid);
end;
procedure timeproc(utimerid, umessage: uint; dwuser, dw1, dw2: dword) stdcall;
begin
 form1.edit2.text:=floattostr(smmcount);
 smmcount:=smmcount-0.01;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 button1.caption :='开始倒计时';
 button2.caption :='结束倒计时';
 button2.enabled :=false;
 button1.enabled :=true;
 timer1.enabled :=false;
 smmcount:=60;
 stimercount:=60;
 spcount:=60;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
 lgtick1,lgtick2,lgper:tlargeinteger;
 ftemp:single;
begin
 button2.enabled :=true;
 button1.enabled :=false;
 timer1.enabled :=true;
 timer1.interval :=10;
 protimecallback:=timeproc;
 htimeid:=timesetevent(10,0,protimecallback,1,1);
 acttime1:=gettickcount;
 //获得系统的高性能频率计数器在一毫秒内的震动次数
 queryperformancefrequency(lgper);
 ftemp:=lgper/1000;
 iten:=trunc(ftemp*10);
 queryperformancecounter(lgtick1);
 lgtick2:=lgtick1;
 spcount:=60;
 while spcount>0 do
 begin
  queryperformancecounter(lgtick2);
  //如果时钟震动次数超过10毫秒的次数则刷新edit3的显示
  if lgtick2 - lgtick1 > iten then
  begin
   lgtick1 := lgtick2;
   spcount := spcount - 0.01;
   edit3.text := floattostr(spcount);
   application.processmessages;
  end;
 end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 edit1.text := floattostr(stimercount);
 stimercount:=stimercount-0.01;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
 proendcount;
 //显示从开始记数到记数实际经过的时间
 showmessage('实际经过时间'+inttostr(acttime2)+'毫秒');
end;
end.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索delphi
, 毫秒
倒计时
毫秒倒计时、js 毫秒倒计时、tmw倒计时精确到毫秒、ios 毫秒倒计时、android 毫秒倒计时,以便于您获取更多的相关知识。

时间: 2024-11-10 07:47:39

Delphi实现毫秒级别的倒计时实例代码_Delphi的相关文章

基于jQuery实现美观且实用的倒计时实例代码_jquery

倒计时效果有着广泛的应用,比如奥运会倒计时.高考倒计时和放假倒计时等,本章节分享一个比较美观且实用的倒计时效果. 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>倒计时效果代

Android 自定义View之倒计时实例代码

Android 自定义View之倒计时实例代码 需求: 大多数app在注册的时候,都有一个获取验证码的按钮,点击后,访问接口,最终用户会收到短信验证码.为了不多次写这个获取验证码的接口,下面将它自定义成一个view,方便使用. 分析一下,这是一个TextView,点击的时候变色,不能再点击,同时里面的倒计时开始显示.那么就有了下面的代码 代码: /** * 通过selector选择器来改变背景,其中倒计时运行时为android:state_enabled="true", * 不显示倒计

Delphi实现碰撞球体完整实例代码_Delphi

本文以实例描述了用Delphi实现撞击球效果的方法,类似弹球效果.点击"开始"按钮,窗体中的一个绿色小球将不断地左右撞击运动,并且其大小不停地变化.点击"停止"按钮,小球停止运动.用鼠标拖动右下方的调节控件,可以调整小球运动的速度. 这里我们主要是使用Timer 控件.Panel 控件.TrackBar 控件.SpinEdit 控件.Shape控件和Button 控件来实现.重点是Delphi 的Timer 控件.在运行程序时,该控件不可见,也不能直接对它进行操作.

Delphi实现图片滚动切换的完整实例代码_Delphi

本文以实例介绍了Delphi实现图片滚动切换的方法.该程序可以实现图像的滚动播出,并且通过本代码可控制窗口中的图像向上滚动,通过调节速度滚动条的值还可以调整滚动的速度:点击"停止"按钮,图像即停止滚动. 完整的功能代码如下: unit Unit1; interface uses Windows, Classes, Graphics, Forms, Controls, Menus, Dialogs, StdCtrls, ExtCtrls, SysUtils, ComCtrls, Butt

Delphi修改操作注册表权限的代码_Delphi

需要uses jclwin32, AccCtrl; 此文件需要安装JCL 复制代码 代码如下: function AllowRegKeyForEveryone(Key: HKEY; Path: string): Boolean; var WidePath: PWideChar; Len: Integer; begin case Key of HKEY_LOCAL_MACHINE: Path := 'MACHINE\' + Path; HKEY_CURRENT_USER: Path := 'CUR

JS 实现倒计时数字时钟效果【附实例代码】_javascript技巧

这篇文章主要介绍了JS实现的网页倒计时数字时钟效果,是一款非常实用的javascript倒计时特效,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了JS实现的网页倒计时数字时钟效果.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&

Android 实现闪屏页和右上角的倒计时跳转实例代码_Android

以前编程的时候,遇到倒计时的功能时,经常自己去写,但其实Android已经帮封装好了一个倒计时类CountDownTimer,其实是将后台线程的创建和Handler队列封装成为了一个方便的类调用. 闪屏页用到了handler和CountDownTimer类,还需配置一下Activity的主题,这里是:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 全屏主题的意思. 给大家展示下效果图: 代码如下所示: package

Android 实现闪屏页和右上角的倒计时跳转实例代码

以前编程的时候,遇到倒计时的功能时,经常自己去写,但其实Android已经帮封装好了一个倒计时类CountDownTimer,其实是将后台线程的创建和Handler队列封装成为了一个方便的类调用. 闪屏页用到了handler和CountDownTimer类,还需配置一下Activity的主题,这里是:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 全屏主题的意思. 给大家展示下效果图: 代码如下所示: package

Jquery焦点图实例代码_jquery

本文实例讲述了Jquery焦点图实例代码.分享给大家供大家参考.具体如下: 对于很多建站的朋友来讲,焦点图并不陌生,一般的企业站,门户站都会用到焦点图.我们平时在写html代码的时候,很多人为了省时省力,对于焦点图都是在网上下载一些人家写好的代码,直接套上去即可,很多时候我自己也是这样来的.因为一个焦点图有html布局,css样式调试和最关键的 javascript语句的编写.这些都是一个很麻烦的过程. 今天我就以实例讲解,手把手教你如何写Jquery焦点图.Jquery是js封装的框架,让js