读书人

怎样才能拖动窗体的时候主线程内正在运

发布时间: 2012-03-01 10:25:46 作者: rapoo

怎样才能拖动窗体的时候主线程内正在运行的程序不停止响应.
假如有这样一段代码:

Delphi(Pascal) code
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;


怎样使得在拖动窗体时, 标题栏的数字还在跳动呢? (即上面函数内的循环不暂停运行).

最重要的是要视觉上感觉数字在跳动.

不考虑多线程处理, 请高手支招.

[解决办法]
用Timer
Delphi(Pascal) code
procedure TForm1.Timer1Timer(Sender: TObject);begin  Tag := Tag + 1;  Text := IntToStr(Tag);end;
[解决办法]
用拦截消息的方法是不行的,因为在窗口拖动的过程中是返回不到Application.ProcessMessages的。
可以在mousedown的时候setcapture然后在mousemove消息里模拟窗口拖动。

读书人网 >.NET

热点推荐