我在一个PANEL里加一个LABEL,专门用来在各种处理数据等待时候提示用的。PANEL我初始化让他VISIABLED为不可见,LABEL内容根据不同情况给出不同内容。由于我的程序要与单片机相连,所以有不同步的问题存在,这个时候就需要用到SLEEP让我的程序等待适当时间。上面所说的PANEL就在这个时间设置可见,LABEL设置提示内容,然后执行SLEEP。但我运行程序时候,发现PANEL可以正确的设置为可见,但却不见LABEL的内容显示。我跟踪代码,LABEL的CAPTION值是已经改变过来了的。看来是还没重画程序界面,程序就执行了SLEEP。我应该怎么解决这个问题?请大家帮忙!谢谢!

解决方案 »

  1.   

    修改了label.caption后加一句application.ProcessMessages;
      

  2.   

    label12.Caption:='处理中请稍后';
       Panel1.Visible:=true;
       sleep(6000);
    应该怎么加?
    1.
       application.ProcessMessages;
       label12.Caption:='处理中请稍后';
       Panel1.Visible:=true;
       sleep(6000);2.
       label12.Caption:='处理中请稍后';
       application.ProcessMessages;
       Panel1.Visible:=true;
       sleep(6000);3.
       label12.Caption:='处理中请稍后';
       Panel1.Visible:=true;
       application.ProcessMessages;
       sleep(6000);
      

  3.   

    加上application.ProcessMessages;不行的话就每执行一句加一句application.ProcessMessages;
      

  4.   

    这个application.ProcessMessages多加会不会有什么影响?它具体除了响应完之前的消息队列还有什么其他副作用吗?
      

  5.   

    不可能吧?把你的程序发过来,我帮你看看![email protected]
      

  6.   

    狂加update试试
    label12.Caption:='处理中请稍后';
    Panel1.Visible:=true;
    Panel1.Update ;
    Label1.Update ;
      

  7.   

    Panel1.Repaint;
    label12.Refresh;
      

  8.   

    application.ProcessMessages;
       label12.Caption:='处理中请稍后';
       Panel1.Visible:=true;
       sleep(6000);
    应该没问题