读书人

按button1后,在label1提醒不要移动,做

发布时间: 2013-01-04 10:04:16 作者: rapoo

按button1后,在label1提示不要移动,做循环函数后,在label1提示成功。
按button1后,在label1提示不要移动,做循环函数后,在label1提示成功。
我想做的效果是这样。
我做了一个例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
lblShow->Color = clRed;
lblShow->Caption = "请不要移动";

byte i;
for(i = 1; i <= 12; i++)
{
Sleep(100);
ProgressBar1->Position = i; //进度条
}

lblShow->Color = clLime;
lblShow->Caption = "初始化完毕";
}
但是我想要看到的,红色背景的“请不要移动”显示不出来。
点击了看到进度条,在移动,但是lblShow中显示的还是之前的信息。
求帮助,谢谢。
[解决办法]

void __fastcall CrnSleep(int nDelay)
{
DWORD dw = ::GetTickCount();

while (::GetTickCount() - dw < 100)
{
Application->ProcessMessages();
}
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
lblShow->Color = clRed;
lblShow->Caption = "请不要移动";
Application->ProcessMessages();

for (int i = 1; i <= 12; i++)
{
CrnSleep(100);

ProgressBar1->Position = i; //进度条
Application->ProcessMessages();
}

lblShow->Color = clLime;
lblShow->Caption = "初始化完毕";
}

读书人网 >C++ Builder

热点推荐