语句的执行顺序问题

sbbmu 2003-06-05 01:39:24
下面这段东东运行结果
1。等待2秒
2。Edit1和Edit2的内容一起改变

与预期不符,不知是什么原因?

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text="aaaa";
Sleep(2000);
Edit2->Text="bbbb";

}
...全文
40 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhz 2003-06-05
  • 打赏
  • 举报
回复
我是过没问题:WinXp + BCB5.0

完全符合要求。不要加Application->ProcessMessages();
不然是一个先,一个后的了。
IT-司马青衫 2003-06-05
  • 打赏
  • 举报
回复
我这里没问题啊,结果正确!
我没加,可是我的结果正确,可能是我的消息队列没什么等待的消息?

//这样子就达不到效果
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text="aaaa";
Application->ProcessMessages( );

Sleep(2000);
Edit2->Text="bbbb";
}
qibo999 2003-06-05
  • 打赏
  • 举报
回复
我没加,可是我的结果正确,可能是我的消息队列没什么等待的消息?
BCB 2003-06-05
  • 打赏
  • 举报
回复
Sleep()之前要

Application->ProcessMessages( );
处理了消息才能改变;
否则,语句结束了才一起改变。
qibo999 2003-06-05
  • 打赏
  • 举报
回复
我这里没问题啊,结果正确!BCB5+Win2K
yingyys 2003-06-05
  • 打赏
  • 举报
回复
Edit1 赋值后要强行刷新一下就行了
sbbmu 2003-06-05
  • 打赏
  • 举报
回复
up
hitbabiq 2003-06-05
  • 打赏
  • 举报
回复
改成这样都是可以了
Edit1->Text="aaaa";
Edit1->Update();
Sleep(2000);
Edit2->Text="bbbb";
hitbabiq 2003-06-05
  • 打赏
  • 举报
回复
俺这加不加都是和楼主的一样,win2k+bcb5
BCB 2003-06-05
  • 打赏
  • 举报
回复
win98与win2000会不会不一样,
或者BCB5与bcb6不一样。
我是win98+bcb5

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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