假如有这样一段代码:procedure TForm1.Button1Click(Sender: TObject);
var i: integer ;
begin
  i := 0 ;
  while True do
  begin
    i := i + 1 ;
    Text := IntToStr(i) ;
    Application.ProcessMessages ;
  end;
end;
怎样使得在拖动窗体时, 标题栏的数字还在跳动呢? (即上面函数内的循环不暂停运行).最重要的是要视觉上感觉数字在跳动.不考虑多线程处理,  请高手支招.

解决方案 »

  1.   

    用Timerprocedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Tag := Tag + 1;
      Text := IntToStr(Tag);
    end;
      

  2.   


    谢谢!  忘记说了, 不能用timer和多线程 . 我想通过拦截消息的方式或其它方式.
      

  3.   

    用拦截消息的方法是不行的,因为在窗口拖动的过程中是返回不到Application.ProcessMessages的。
    可以在mousedown的时候setcapture然后在mousemove消息里模拟窗口拖动。
      

  4.   

    除了线程和timer定时器方法,我还没有想到还有其它什么方法。
      

  5.   

    VB里面有 Do EventDelphi里面不知道有什么替代的- -#