首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

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

2013-01-04 
按button1后,在label1提示不要移动,做循环函数后,在label1提示成功。按button1后,在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中显示的还是之前的信息。
求帮助,谢谢。
[解决办法]

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

热点排行