i:=gettickcount;
repeat
 application.progressmessage;
until gettickcount>i+5*1000;

解决方案 »

  1.   

    var
       t:TDateTime;
    begin
       t:=GetTickCout();
       While t<5000 do
           t:=GetTickCout()-t;
    end
      

  2.   

    form1.enabled:=false;
    **********************
    timer:
        form1.enabled:=true;
        timer.free;
    **********************
      

  3.   

    procedure delaytime(count:LongWORD);
    var temp:LongWORD;
    begin
      temp:=gettickcount();
      repeat
        application.ProcessMessages;
      until (gettickcount()-temp)<count;
    end;
      

  4.   

    to fable(老四) :
            "until (gettickcount()-temp)<count;"
    应该改为"until (gettickcount()-temp)>count;"吧?
    :p