Delphi Delay 延时计数的功能。 下面的方法都是思路,但是没有用在项目上

摘要:
procedureTfrm_InstrumentControl.aa;varCurLength:Word;vTimeLength:Word;beginScreen.Cursor:=crHourGlass;tryvTimeLength:=StrToIntDef(num_GrossAnalyzeTime.Text,0)*60;CurLength:=0;whileCurLength˂vTimeLengt

procedure Tfrm_InstrumentControl.aa;
var
CurLength: Word;
vTimeLength: Word;
begin
Screen.Cursor := crHourGlass;
try
vTimeLength := StrToIntDef(num_GrossAnalyzeTime.Text, 0) * 60;
CurLength := 0;
while CurLength < vTimeLength do
begin
if IsCanExcute(1000) then
begin
iSevenSegmentClock1.Seconds := CurLength;
Application.ProcessMessages;
end;
CurLength := CurLength + 1;
end;

finally
Screen.Cursor := crDefault;
end;
end;

procedure Tfrm_InstrumentControl.Delay111(msecs:integer);
var
Tick: DWord;
Event: THandle;
curTick: DWord;
begin
Event := CreateEvent(nil, False, False, nil);
try
Tick := GetTickcount + DWord(msecs);;
curTick := 0;
while (msecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, msecs, QS_ALLINPUT) <> WAIT_TIMEOUT) do
begin
if (curTick mod 1000) = 0 then
begin
//iSevenSegmentClock1.Seconds := Trunc(curTick/1000);
// iSevenSegmentClock1.Hours := Trunc(curTick/(1000*60*24));
// iSevenSegmentClock1.Minutes := Trunc(curTick/(1000*60));
// iSevenSegmentClock1.Seconds := Trunc(curTick/(1000));
// iSevenSegmentClock1.SetTimeNoEvent(curTick);
iSevenSegmentClockSMPTE1.Time := curTick/(1000*60*60*24);
Application.ProcessMessages;
end;
inc(curTick);
msecs := Tick - GetTickcount;
end;
finally
CloseHandle(Event);
end;
end;

procedure Tfrm_InstrumentControl.Delay2(MaxWaitTime: Cardinal);
var
WaitedTime:Cardinal;
begin WaitedTime:=0; // while (WaitedTime<MaxWaitTime) do
// begin
// SleepEx(100,False);
// Inc(WaitedTime,1000);
// if (WaitedTime mod 1000) = 0 then
// iSevenSegmentClock1.Seconds := WaitedTime/1000;
// Application.ProcessMessages ;
// end;
end;

免责声明:文章转载自《Delphi Delay 延时计数的功能。 下面的方法都是思路,但是没有用在项目上》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PHP中文乱码解决方案【翻译自mos文章】执行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

delphi XE 和 RAD studio有什么区别

RAD 是Rapid Application Development 的缩写,意为 快速应用开发,RAD 是由计算机顾问和作家James Martin于1991年最早提出的,是一种试图快速生成系统而不会牺牲bai质量的结构化开发方法。 RAD studio :快速应用开发工作室。 常用的RAD工具有:Visual Studio、RAD studio等。 d...

Pascal精要笔记

Pascal精要笔记 Pascal语言的大小写不敏感特性有一个例外:控件包中的Register 过程必须以大写字母R开始,因为需要与C++Builder 兼容。 ,编译器不编译代码中的空格、空行和Tab键空格,这些元素通称为空白,它们只用来提高代码的可读性,不影响编译过程。(也就是说: = 这样的写法没有问题,我原来还以为由问题那!) 记住要用代码模板(方便...

Delphi与各数据库数据类型比较

Delphi数据类型与各数据库数据类型对比如下表,如有具体说明见表中脚注: DelphiType OracleTypes SQLServerTypes MySQLTypes[1] InterBaseTypes PostgreSQLTypes SQLiteTypes ftSmallint NUMBER(p,0)[2](p<5) SMALLINT...

Delphi声明Record变量后直接初始化

 TARec = record    A1: string;    A2: string;  end;   TBRec = record    A1: string;    A2: string;    ARec: TARec;  end;   PAppWindow = ^TAppWindow;  TAppWindow = Record    Width,...

Delphi 之 菜单组件(TMainMenu)

菜单组件TMainMenu 创建菜单双击TmenuMain,单击Caption就可以添加一个菜单项 菜单中添加分割线只需加“-”就可以添加一个分割线 级联菜单的设计 单击鼠标右键弹出菜单中选择Create Submenu菜单项 单选功能设计 要在设计的菜单项目中选择RadioItem属性为True,Checked属性为True 复选功能的设计 在...

Delphi编译选项

编译选项的设置,称为“开关指令”,其中大部分值为布尔类型一、代码生成(Code generation)1、Optimization  优化代码,默认true2、Stack frames  生成过程/函数的Stack frames(调试工具用),默认false3、Pentium-safe FDIV  修正早期Pentium处理器FDIV指令集浮点运算缺陷(已...