程序运行时,要在Label1上显示当前所运行的状态,例如:
   begin
     label1.Caption:='11111';
     sleep(5000);
     label1.Caption:='22222';
     sleep(5000);
     label1.Caption:='33333';
     sleep(5000);
     label1.Caption:='44444';
   end;
程序运行时不会顺序的显示出'11111'至'44444',而是执行完成后仅显示最后一个'44444',问应如何处理?

解决方案 »

  1.   

    在Sleep(5000);后面加一句:Application.ProcessMessages();
      

  2.   

    Application.ProcessMessages();是什么意思啊?
      

  3.   

    Application.ProcessMessages()调用之后,将从Windows消息队列中获取当前进程的消息,然后再根据消息作相应的处理,例如重绘,各种事件等。
      

  4.   

    请帮忙解决http://expert.csdn.net/Expert/topic/2144/2144995.xml?temp=.7845423星期一结帖
      

  5.   

    告诉你另外一个方法:
    在每一个 Sleep(5000)语句前加Label1.Refresh;也可以。
      

  6.   

    加Refresh或者Repaint都没有Application.ProcessMessages好,Application.ProcessMessages可以使程序不至于像"当"掉了
      

  7.   

    Label1.Update也行哦.哈哈.为了延时吗?我觉得用sleep不好.因为sleep就睡着了.不会干事了.用
    var i:integer
    label1.Caption:='11111';
    label1.update();
    for i:=0 to 100000 do  //10000这个数要多大,就看你要延时多久了.
       Application.ProcessMessages();label1.Caption:='22222';
         
      

  8.   

    多谢各位的帮忙,
    又有新问题:
    http://expert.csdn.net/Expert/topic/2209/2209320.xml?temp=.8805506