按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 = "初始化完毕";
}