Delphi Delay 延时计数的功能。 下面的方法都是思路,但是没有用在项目上
2016-07-23 16:40
423 查看
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;
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截取指定字符空格或-符号前面 中间 后面字符串
- Delphi在系统菜单中添加菜单项
- webbrowse 自动关闭弹出对话框
- Delphi中建议使用的语句
- 用Delphi操作INI文件
- Socket Error # 10054
- delphi正则应用
- Delphi中使用RegExpr单元进行匹配与替换操作
- Delphi编写数据库程序要点
- delphi 设置输出目录为相对路径
- 公开 myfunctions 单元,里面有很多有用的函数
- Delphi中@,^,#,$分别表示什么?
- DELPHI XE Android 开发笔记
- Delphi窗体置顶及失去焦点后取得焦点
- Delphi 通过SQLite3, SQLiteTable3 操作数据库
- delphi firebird backup path
- delphi执行cmd命令和bat文件
- Delphi 获取sqlite中所有的表名
- Delphi实现窗体内嵌其他应用程序窗体
- delphi升级xe注意事项