控制台程序延时问题..(要代码) ( 积分: 100 )

  • 主题发起人 主题发起人 抵住诱惑
  • 开始时间 开始时间

抵住诱惑

Unregistered / Unconfirmed
GUEST, unregistred user!
program Project2;

uses
windows;

begin
sleep(5000);//因为使用sleep 程序会像死掉一样睡五秒钟...如何解决??
MessageBox(0, '延时结束了!!', '提示', mb_iconinformation);
end.

那么在五秒内,程序好象睡了一般..鼠标持续出现等待符号..
请问如何解决??要代码..
 
加入消息处理,
for i := 1 to 50 do
begin
sleep(100);
if PeekMessage(TmpMsg, 0, 0, 0, PM_REMOVE) then
{ 处理消息 }
end;
 
能完整点吗?
 
没明白你的意思?怎么延时?
 
已经编辑了主题..你应该能明白我的意思了.谢谢.
 
你是想在SLEEP的时候程序仍然执行某些代码??
 
不是,,你编译执行一下就知道了.
因为用 sleep 延时的,所以,在 sleep 没执行完之前,鼠标持续出现等待符号.
 
不好意思,真的很想帮你,但我真的还是不明白你的意思!!

调用 SLEEP 后程序停止不动,这是正常现象啊,只要不是在线程中调用,其他地方用到 sleep 程序肯定会像死了一样!

你是想不让鼠标持续出现等待符号???
 
是的,,只要不出现持续等待符号就好了...
 
或者能将 sleep 换成其他的延时方法也行..只要能延时,不要求很精确..不出现持续等待符号就好..
 
我有点不明白,为什么要延时一段时间在运行程序啊?

如果想做启动画面,不用延时!
 
控制台使用延迟,最好使用定时器。定时器激活又需要消息循环。
呵呵。。。。找找相关资料吧,很简单的。
 
console不存在消息,所以不能用定时器,正确答案如下
var
ot: dword;
begin
ot:= GetTickCount;
while GetTickCount - 5000 < ot do
begin
Write('.');
end;
end;
 
接受答案了.
 
后退
顶部