一个简单且奇怪的问题

Y___Y 2006-08-10 10:47:07
我在窗口上放了两个组件Label1(Capture设为空)和 Button1。编写了如下的按钮事件。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Label1->Caption="正在计算 ";
int i,j,s;
for(i=0;i<=100000;i++)
for(j=0;j<=10000;j++)s=i+j;
Label1->Caption="计算完毕 ";
}
运行后,按常理,Label1应先显示"正在计算 ",过一会儿再显示"计算完毕 ",但事实"正在计算 "根本不会显示,不知道这是为什么?我将Label1换成Form1,是正常的。要达到Label1应先显示"正在计算 ",过一会儿再显示"计算完毕 "应该怎么办。
...全文
172 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Y___Y 2006-08-10
  • 打赏
  • 举报
回复
感谢各位
jaffy 2006-08-10
  • 打赏
  • 举报
回复
老妖的是正解,让控件应用程序处理消息。
ccrun.com 2006-08-10
  • 打赏
  • 举报
回复
Label1->Caption="正在计算 ";
Application->ProcessMessages();
zwh202342 2006-08-10
  • 打赏
  • 举报
回复
呵呵,正解!没有刷新出来!赋值完成后就进入运算了!可能没反应过来^_^
cczlp 2006-08-10
  • 打赏
  • 举报
回复
手工刷新一下
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Label1->Caption="正在计算 ";
Label1->Update(); //立即刷新显示
int i,j,s;
for(i=0;i<=100000;i++)
for(j=0;j<=10000;j++)s=i+j;
Label1->Caption="计算完毕 ";

}

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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