本人用delphi6做前台,在系统中要用到等待5分钟代码,本人试过用waitfordata这个函数,且我已打开此基类的单元.但是不知是什么原因总是提示未声明此字符串.请教各位如何在delphi6中写等待5分钟的代码。

解决方案 »

  1.   

    等待过程要处理消息么?for i:=0 to 60*5-1 do
    begin
        Sleep(1000);
        Application.ProcessMessages
    end;
      

  2.   

    不是有定时器嘛sleep会造成程序不响应.如果需要用户等待(不能执行操作),可以设置个timer,timer启动时把主界面的enabled置false;timer到时间再置回true.
      

  3.   

    使用timer是比较好的,sleep时间长的话会造成消息淤塞。
      

  4.   

    使用timer不要sleep
    sleep会使主线程停止
      

  5.   

    用Sleep没问题,适当加点代码就不会使线程停止。for i:=0 to 100*60*5-1 do 
    begin 
        Sleep(10); //Sleep越小,程序反应就越灵活,不会阻塞。
        Application.ProcessMessages 
    end;
      

  6.   

    有一个好办法,呵呵,把分都给我吧
    procedure Tform1.Delay(msec:integer);
    //延时函数,msec 为微秒(千分之1秒)
    var
     FirstTickCount : real;
    begin
      FirstTickCount := GetTickCount();
      FirstTickCount := FirstTickCount + msec;  While FirstTickCount >  GetTickCount() do
        Application.HandleMessage; 
          //    application.processmessages;end;调用时只需写上 delay(5*60*1000) 即可
      

  7.   

    用timer定时器应该是比较好的,除了可以实现你等待5分钟的功能外,还可以实现限时操作,如考生在规定时间内做完题目一样,都能实现的。
      

  8.   

    GetTickCount这个精度较高,也不会造成消息阻塞.
      

  9.   

    使用线程级,在Execute()中加入Sleep(5 * 60 * 1000);等相应的代码就可以了。在主线程中使用Sleep的话,会影响主线程的响应速度。