按button1后,在label1揭示不要移动,做循环函数后,在label1提示成功

按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中显示的还是之前的信息。
求帮助,谢谢。

------解决方案--------------------
C/C++ code
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 = "初始化完毕";
}