如何在一个长时间执行的循环前刷新界面控件显示?

ynduanlian 2010-11-18 09:54:04
用下面的语句统计并显示一个目录的大小,由于后面的语句运行时间较长,所以想先在状态条上显示 '统计目录大小:...';
但实际执行时,这一句总是不显示就进入到下面语句体的执行,要怎么才能让这个内容在执行后面的长时间语句前先显示出来?

Screen.Cursor:=crHourGlass;
slf:=TStringList.Create;
Statusbar1.SimpleText:=EdtMachinePath.Text + '统计目录大小:...';
StatusBar1.Repaint;
FindAllFile(EdtMachinePath.Text,slf);
gDirSpace:=0;
I:=0;
while(I<slf.Count-1) do
begin
gDirSpace:=gDirSpace+GetFileSizeByName(slf.Strings[I]);
Inc(I);
end;
slf.Free;
Screen.Cursor:=crDefault;
Statusbar1.SimpleText:=EdtMachinePath.Text + '大小:'+ IntToStr(gDirSpace) + 'KB';
...全文
165 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gobiz 2010-11-18
  • 打赏
  • 举报
回复
Form1.Update;
bdmh 2010-11-18
  • 打赏
  • 举报
回复
加上
Application.ProcessMessages

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧