程序中的某一个窗口上有一个按钮,按下这个按钮要做很多的工作,在执行按钮的过程中,如果干了点别的事,比如说打开了另一个mp3,这个窗口就会显示不完整,不能刷新。该如何设置,才能使得即使有别的事件产生,依然可以保持窗口的完整,也就是适时刷新

解决方案 »

  1.   

    有两个方法
    一个就是将这个按钮所要完成的工作放到线程中处理
    另一个就是在适当的时候强行刷新程序界面,例如:
    procedur tform1.button1click(sender:tobject);
    var
      i:integer;
    begin
      for i:=1 to 100000000 do
      begin
        if i Mod 10000 = 0 then Application.ProcessMessages;
        ......
      end;
      

  2.   

    还可以放一个Timer控件,设置时间间隔,每隔一定时间检测以下
    是否有其它事件产生
      

  3.   

    按钮要做很多的工作的过程中写:
    form1.UpDate;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  4.   

    建议用线程。
    如果不开线程,可以在循环中加一句:
    Application.ProcessMessages;
      

  5.   

    建议开个线程,不是太难,Delphi有自带的例子,在demos目录下面
      

  6.   

    都说了,我没得说了
    不过用 Timer 控件是不行的,在这个过程中,OnTimer 事件是执行不到的