关于BCB中延时函数Sleep()的问题

我的程序大概是这样:
语句1;//改变控件Shape1的Color
Sleep(1000);//延时1秒
语句2;//改变控件Shape2的Color
但是程序运行时,并不是Shape1的颜色先改变,然后延时1秒,最后Shape2的颜色接着改变;而是一运行,程序似乎死了一样,过1秒左右,Shape1和Shape2的颜色同时改变。
为什么得不到预期的结果呢?请高人指点迷津。
[232 byte] By [itbear-Victor] at [2008-4-11]
# 1
语句1;//改变控件Shape1的Color
Application->ProcessMessages();//在你的程序睡觉之前,调用这个等以前的工作都做完。
Sleep(1000);//延时1秒
语句2;//改变控件Shape2的Color
# 2
语句1;//改变控件Shape1的Color
Shape1->Update();
Sleep(1000);//延时1秒
cczlp-不惑 at 2007-10-22 > top of Msdn China Tech,C++ Builder,基础类...
# 3
同意楼上,如果你希望在等待1秒的时间里,还可以点击其它事件,用一楼的!
jiangshx-寻平阳 at 2007-10-22 > top of Msdn China Tech,C++ Builder,基础类...
# 4
Application->ProcessMessages();
让应用程序响应消息
# 5
或者用cczlp(不惑) 的方法,或者用一个变量控制,这样:

static bool sflag = false;

if(!sflag)
语句1;//改变控件Shape1的Color
else
语句2;//改变控件Shape2的Color
Sleep(1000);//延时1秒
shensh at 2007-10-22 > top of Msdn China Tech,C++ Builder,基础类...